2017-08-26 3 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を取得しますか?

今私は自分自身がpolicy_nameaccount_idを使用してpolicy_arnをconstrucingよ:

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

create-policy--output textを追加すると、ARNが印刷されます。

aws iam create-policy --policy-name "${policy_name}" --policy-document file://policy.json --output text 

あなたは、ポリシーとそのARN得ることができます。

aws iam list-policies --query 'Policies[?PolicyName==`FullAccess`].Arn' --output text 

出力:

arn:aws:iam::aws:policy/FullAccess 
ちょうど1ポリシーのARNを取得するには

aws iam list-policies --query 'Policies[*].[PolicyName, Arn]' --output text 

関連する問題