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_name
和account_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的主要内容,如果未能解决你的问题,请参考以下文章