Я пытаюсь получить список журналов аудита, аналогичный тому, который отображается на странице консоли Google (IAM / Audit Logs) с использованием Golang API GetIamPolicy
, как описано здесь:
https://cloud.google.com/resource-manager/reference/rest/v1/projects/getIamPolicy
Если для одной службы задан хотя бы один из типов журналов (чтение данных, запись данных или чтение с правами администратора), GetIamPolicy
вернет его, но если у него нет установить, то служба в ответе не указывается.
Например, если в моем проекте три службы A, B и C, а для A включена функция чтения данных, для B включена функция чтения с правами администратора, а для C нет. ничего не включено, GetIamPolicy
вернет только A и B.
GetIamPolicyRequest
struct, кажется, имеет поля, предназначенные для этого сценария (NullFields
и ForceSendFields
), но я не мог сделать это работает. Пример:
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
Есть какие-нибудь идеи о том, как восстановить отсутствующие службы?