boto3 list_role_policies возвращает пустой массив, или как мне просто отсоединить все политики? - PullRequest
1 голос
/ 02 апреля 2020

Я пытаюсь написать скрипт, чтобы получить все политики в одной роли и отсоединить все политики.

, что привело меня к использованию list_role_policies для каждой роли, вызов был успешно выполнен, но он всегда показывает:

{'PolicyNames': [], 'IsTruncated': False, 'ResponseMetadata': {'RequestId': 'xxx', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'xxx', 'content-type': 'text/xml', 'content-length': '323', 'date': 'Thu, 02 Apr 2020 18:49:35 GMT'}, 'RetryAttempts': 0}}

Когда я просматривал IAM через консоль, определенно были прикреплены политики, некоторые встроенные политики, но в основном управляемые политики, поэтому они не отображаются?

Также в конечном счете, я на самом деле не слишком беспокоюсь об именах политик, если они не требуются, могут ли быть какие-то другие способы просто отключить все политики?

Спасибо!

1 Ответ

1 голос
/ 02 апреля 2020

list_role_policies перечислит только встроенные политики, прикрепленные к роли.

Из ответа видно, что к роли не прикреплены никакие встроенные политики.

Вы должны сделать два разных запроса API, один для получения списка встроенных политик, а другой для управляемых политик.

Получить все встроенные PolicyNames для роли, используя list_role_policies() и удалите их из роли, используя метод delete_role_policy().

Аналогично, получите все управляемые PolicyArns для роли, используя list_attached_role_policies() и отсоедините их, используя detach_role_policy().

...