AWS CLI检索新创建的策略的ARN

时间:2017-08-26 18:51:52

标签: amazon-web-services amazon-iam aws-cli

我想创建一个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_arnpolicy_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?

1 个答案:

答案 0 :(得分:5)

如果您将--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