AWS CLI 检索新创建策略的 ARN

Posted

技术标签:

【中文标题】AWS CLI 检索新创建策略的 ARN【英文标题】:AWS CLI retrieve the ARN of the newly created policy 【发布时间】:2017-08-26 18:51:52 【问题描述】:

我想创建一个 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_nameaccount_id 自己构建policy_arn

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】:

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

【讨论】:

以上是关于AWS CLI 检索新创建策略的 ARN的主要内容,如果未能解决你的问题,请参考以下文章