python-3.x - 如何在 python boto3 中获取 iam 用户的 aws 托管策略的策略文档?
问题描述
我可以通过“get_user_policy()”客户端检索内联策略的策略文档。有什么方法可以检索 IAM 用户的 AWS 托管策略的策略文档..?
import boto3
client = boto3.client('iam')
policy = iam.get_user_policy(UserName="<string>",PolicyName = "<string>")
doc = dict((k,response[k]) for k in ['PolicyDocument']if k in policy)
print(doc)
似乎我们可以使用它的 arn 来获取托管策略的策略文档。但我不确定如何获取附加到特定 IAM 用户的所有托管策略的 arn。
那么,如何在 python中获取iam 用户的 aws 托管策略的策略文档?
提前致谢。
解决方案
我创建了一个名为 test1 的用户并附加了 IAMReadOnlyAccess 和 PowerUserAccess。问题是 AWS 托管策略和客户托管策略的 ARN 差异。了解更多信息。
import boto3
iam_res = boto3.resource('iam')
user = iam_res.User('test1')
policy_iterator = user.attached_policies.all()
for each in policy_iterator:
if each.arn.startswith('arn:aws:iam::aws'):
print(each.default_version.document)
这是输出。
{'Statement': [{'Action': ['iam:GenerateCredentialReport',
'iam:GenerateServiceLastAccessedDetails',
'iam:Get*',
'iam:List*',
'iam:SimulateCustomPolicy',
'iam:SimulatePrincipalPolicy'],
'Effect': 'Allow',
'Resource': '*'}],
'Version': '2012-10-17'}
{'Statement': [{'Effect': 'Allow',
'NotAction': ['iam:*', 'organizations:*', 'account:*'],
'Resource': '*'},
{'Action': ['iam:CreateServiceLinkedRole',
'iam:DeleteServiceLinkedRole',
'iam:ListRoles',
'organizations:DescribeOrganization',
'account:ListRegions'],
'Effect': 'Allow',
'Resource': '*'}],
'Version': '2012-10-17'}
推荐阅读
- java - Spring Webflux:如何使用不同的线程进行请求和响应
- listview - Xamarin 将网格绑定到 ListView 中的 ViewCell
- html - 如何让 Quasar q-page-container 孩子使用其祖父母的全高?
- php - 如何将值保留在 php 文件上传的表单中
- c# - 用于更快执行的 Lambda 表达式查询
- c# - 网站上的 PHP 攻击
- abap - RFC 导入/导出参数中的字符串和嵌套结构
- java - 总和存储在哪里?
- java - 如何为在一个模拟器中作为 RandomWaypoint 移动运行的节点组设置不同的区域
- django - 如何获取当前用户的 slug?