Skip to content

Instantly share code, notes, and snippets.

@sasasin
Created March 14, 2023 09:55
Show Gist options
  • Save sasasin/9ab912ff6410f74c498856a3b32e8911 to your computer and use it in GitHub Desktop.
Save sasasin/9ab912ff6410f74c498856a3b32e8911 to your computer and use it in GitHub Desktop.
IAMポリシードキュメントをダウンロードするやつ
#!/bin/bash
IAM_POLICY_ARN="$1"
IAM_POLICY_NAME=$(echo "${IAM_POLICY_ARN}" | awk 'BEGIN{FS="/"}{print $NF}')
aws iam get-policy-version \
--policy-arn "${IAM_POLICY_ARN}" \
--version-id $(\
aws iam get-policy \
--policy-arn ${IAM_POLICY_ARN} \
| jq -r '.Policy.DefaultVersionId'
) \
| jq -r '.PolicyVersion.Document' \
> "${IAM_POLICY_NAME}".json
@sasasin
Copy link
Author

sasasin commented Mar 14, 2023

このように使う。

IAMポリシーのARNの全リストを入手する

aws iam list-policies | jq -r '.[][].Arn' | sort > aws-iam-policy-arn.list

たとえばカスタマー管理ポリシーに絞るならこのように

cat aws-iam-policy-arn.list | grep -v 'arn:aws:iam::aws:policy/' > aws-iam-policy-arn.my-policy.list

IAMポリシードキュメントをダウンロードするやつで、ガーーーッと取ってくる

cat aws-iam-policy-arn.my-policy.list | xargs -L1 -P10 ./aws-iam-get-policy-document.sh

カレントディレクトリに IAMポリシードキュメント名.json が転がってるので、よきように活用してください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment