AWS CLI извлекает ARN недавно созданной политики

Я хочу создать политику IAM и прикрепить ее к какой-либо роли IAM с помощью интерфейса командной строки AWS.

Создать политику довольно просто:

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_arn я использую policy_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)

Однако это кажется довольно хакерским.

Есть ли лучший способ узнать 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

Вы также можете попробовать это

      POLICY_ARN=$(aws iam create-policy --policy-name xxx --policy-document file://xxx.json --output text --query Policy.Arn)
Другие вопросы по тегам