如何在 python boto3 中获取 iam 用户的 aws 托管策略的策略文档?
How to get policy document for aws managed policy of a iam user in python boto3?
我能够通过“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 管理策略的策略文档?
提前致谢。
您可以使用以下 link 获取附加到用户的所有策略。
fetch users and policies
然后获取您可以使用的所有保单文件
我创建了一个名为 test1 的用户并附加了 IAMReadOnlyAccess 和 PowerUserAccess。关键在于 AWS 托管策略和客户托管策略的 ARN 差异。 For more info.
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'}
我能够通过“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 管理策略的策略文档?
提前致谢。
您可以使用以下 link 获取附加到用户的所有策略。 fetch users and policies
然后获取您可以使用的所有保单文件
我创建了一个名为 test1 的用户并附加了 IAMReadOnlyAccess 和 PowerUserAccess。关键在于 AWS 托管策略和客户托管策略的 ARN 差异。 For more info.
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'}