我想创建一个IAM策略,并使用AWS命令行界面将其附加到某些IAM角色。
创建策略非常简单:
aws iam create-policy --policy-name "${policy_name}" --policy-document file://policy.json
但是要将新创建的策略附加到目标角色,我必须知道该策略的ARN:
aws iam attach-role-policy --role-name "${role_name}" --policy-arn "${policy_arn}"
检索新创建的策略的ARN的正确方法是什么?
现在我正在使用
policy_arn
和policy_name
自己构造account_id
:policy_arn=arn:aws:iam::"${account_id}":policy/"${policy_name}"
这就是我检索
account_id
的方式:account_id=$(aws ec2 describe-security-groups --query 'SecurityGroups[0].OwnerId' --output text)
但是,这感觉很hacky。
有没有更好的方法来找出所创建策略的ARN?
最佳答案
如果将--output text
添加到create-policy
,它将打印ARN。
aws iam create-policy --policy-name "${policy_name}" --policy-document file://policy.json --output text
您可以获取策略及其ARN:
aws iam list-policies --query 'Policies[*].[PolicyName, Arn]' --output text
要仅通过一项政策获得ARN:
aws iam list-policies --query 'Policies[?PolicyName==`FullAccess`].Arn' --output text
输出:
arn:aws:iam::aws:policy/FullAccess
关于amazon-web-services - AWS CLI检索新创建的策略的ARN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45898665/