各リージョンの各サービスを個別に確認しなくても、全てのリソースをリストアップすることができます。
AWSアカウント解約時に、不要なアクティブリソースが残っていないかの確認にも役立つかもしれません。
AWS アカウントを解約したときに、アクティブなリソースがすべて自動的に終了されるとは限りません。アカウントを解約する前に、アクティブなリソースがあるかどうかを確認し、それらを終了することがベストプラクティスです。
スクリプト
get-resources.sh
for region in `aws ec2 describe-regions --query 'Regions[].RegionName' --region us-west-1 --output text`
do
echo "region = ${region}"
aws resourcegroupstaggingapi get-resources --region ${region} --query 'ResourceTagMappingList[].ResourceARN';
done
echo "global"
echo "IAM"
aws iam list-users --query 'Users[].Arn'
aws iam list-roles --query 'Roles[].Arn'
echo "S3"
aws s3 ls
echo "finished"
- describe-regionsでとってきた各regionに対してresourcegroupstaggingapi get-resources してます。
- 最初にdescribe-regionsするのはどのリージョンに対してでもOKだと思うので、とりあえずus-west-1にしています。
- IAMなどのグローバルリソースはresourcegroupstaggingapiではとれないので「iam list-users」と「iam list-roles」を個別に記述しました。
前提条件
- aws cli が入っていること
利用イメージ
実行
export AWS_PROFILE=xxxx # デフォルトプロファイルを常に設定しているなら不要
sh get-resources.sh
プロファイルを指定する以外に、権限を持っているユーザーでマネコンにログインしてCloudShellから打つという使い方もできます。
出力
region = eu-north-1
[]
region = ap-south-1
[]
region = eu-west-3
[]
region = eu-west-2
[]
region = eu-west-1
[]
region = ap-northeast-2
[]
region = ap-northeast-1
[
"arn:aws:apigateway:ap-northeast-1::/restapis/〜/stages/devA",
"arn:aws:apigateway:ap-northeast-1::/restapis/〜/stages/devB",
〜
"arn:aws:ec2:ap-northeast-1:111111111111:vpc/vpc-1111111a",
"arn:aws:ec2:ap-northeast-1:111111111111:vpc/vpc-1111111b",
〜
"arn:aws:lambda:ap-northeast-1:111111111111:function:xxxx-checker",
"arn:aws:lambda:ap-northeast-1:111111111111:function:xxxx-deleter",
〜
global
IAM
[
"arn:aws:iam::111111111111:user/xxxxxxx"
]
[
"arn:aws:iam::111111111111:role/xxxxxx/yyyyy",
"arn:aws:iam::111111111111:role/xxxxxx/zzzzz",
〜
]
finished
...
留意点
resourcegroupstaggingapiが対応していないサービスがもしあれば、それはリストアップされてこない。
このため補助的に利用ください。
参考
ec2/describe-regions
https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-regions.html
リージョンのリストアップで利用
resourcegroupstaggingapi/get-resources
https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html
リソースのリストアップで利用