gpt4 book ai didi

python - boto3 iam 客户端 : get policy by name

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:15 25 4
gpt4 key购买 nike

我正在尝试从 boto3 客户端获取策略,但没有使用策略名称的方法。通过将 create_policy 方法包装在 try-except block 中,我可以检查策略是否存在。除了列出所有策略并对其进行迭代之外,是否有任何方法可以使用 boto3 按名称获取策略-arn。

最佳答案

给定前缀(如果有的话,还有名称),ARN 应该是确定性的。

iam = session.client('iam')
sts = session.client('sts')

# Slow and costly if you have many pages
paginator = iam.get_paginator('list_policies')
all_policies = [policy for page in paginator.paginate() for policy in page['Policies']]
[policy_1] = [p for p in all_policies if p['PolicyName'] == policy_name]

# Fast and direct
account_id = sts.get_caller_identity()['Account']
policy_arn = f'arn:aws:iam::{account_id}:policy/{policy_name}'
policy_2 = iam.get_policy(PolicyArn=policy_arn)['Policy']

# They're equal except with the direct method you'll also get description field
all(policy_1[k] == policy_2[k] for k in policy_1.keys() & policy_2.keys())

关于python - boto3 iam 客户端 : get policy by name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47433414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com