2017-08-26 46 views
1

我想創建IAM策略並使用AWS命令行界面將其附加到某個IAM角色。AWS CLI檢索新創建的策略的ARN

創建策略很簡單:

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?

現在我construcing自己使用policy_namepolicy_arnaccount_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) 

但是這種感覺相當哈克。

有沒有更好的方法找出創建的策略的ARN?

回答

2

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