LoginSignup
8
4

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-10-20

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

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 "finished"
  • describe-regionsでとってきた各regionに対してresourcegroupstaggingapi get-resources してます。
  • 最初にdescribe-regionsするのはどのリージョンに対してでもOKだと思うので、とりあえずus-west-1にしています。
  • IAMなどのグローバルリソースはresourcegroupstaggingapiではとれないので「iam list-users」と「iam list-roles」を個別に記述しました。

前提条件

利用イメージ

実行

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

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4