各リージョンの各サービスを個別に確認しなくても、全てのリソースをリストアップすることができます。

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
  • describe-regionsでとってきた各regionに対してresourcegroupstaggingapi get-resources してます。
  • 最初にdescribe-regionsするのはどのリージョンに対してでもOKだと思うので、とりあえずus-west-1にしています。

前提条件

利用イメージ

実行

export AWS_PROFILE=xxxx # デフォルトプロファイルを常に設定しているなら不要
sh get-resources.sh 

出力

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",
〜
...

留意点

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
リソースのリストアップで利用

元記事はこちら

AWS 全リージョンの (ほぼ)全リソースをリストアップするシェルスクリプト