首页 > 解决方案 > 如何以编程方式获取 GCP 审核日志状态

问题描述

我正在尝试使用 Golang API 获取与 Google 控制台页面(IAM/审核日志)中显示的内容类似的审核日志列表,GetIamPolicy如下所述:

https://cloud.google.com/resource-manager/reference/rest/v1/projects/getIamPolicy

如果一项服务至少设置了一种日志类型(数据读取、数据写入或管理员读取),GetIamPolicy将返回它,但如果它没有任何设置,则从响应中省略该服务。

例如,如果我的项目有三个服务 A、B 和 C,并且 A 启用了数据读取,B 启用了管理员读取,而 C 没有启用任何内容,GetIamPolicy则只会返回 A 和 B。

GetIamPolicyRequeststruct 似乎有为这种情况设计的字段(NullFieldsForceSendFields),但我无法让它工作。例子:

    rb := &cloudresourcemanager.GetIamPolicyRequest{}
    rb.ForceSendFields = []string{"LogType"}
    rb.NullFields = []string{"LogType"}
    policyOptions := &cloudresourcemanager.GetPolicyOptions{}
    policyOptions.ForceSendFields = []string{"LogType"}
    policyOptions.NullFields = []string{"LogType"}
    policyOptions.RequestedPolicyVersion = 3
    rb.Options = policyOptions

关于如何检索丢失的服务的任何想法?

标签: gogoogle-cloud-platformgoogle-cloud-iam

解决方案


推荐阅读