はじめに
以前にAWS CLIで所望のEC2インスタンスを探す方法という記事でec2 describe-instances
コマンドを紹介しましたが、これはあくまでもEC2インスタンスを検索するためのコマンドとなります。
今回はEC2に限らず、AWSアカウント内の全リソースから「所望のタグの付いたリソース」を探す方法を記事としてまとめてみました。
概要
- AWS CLIの
resourcegroupstaggingapi
のget-resources
コマンドを利用します。 - AWS CLI上で複数の認証情報(プロファイル)を利用している場合、以下のいずれかの方法で利用するプロファイルを切り替えておきます。
- 事前に
~/.aws/config
ファイル中のdefault
を開いて、所望のAWSアカウントの情報に書き換える。 -
get-resources
コマンド実行時に-profile {configファイル中の所望のプロファイル名}
とオプションを追加して、所望のAWSアカウントを指定する。
- 事前に
実行するコマンド
-
--tag-filters
オプションを指定することで、所望のタグの付いたリソースを探すことが出来ます。- 「タグの値」はカンマ区切りで複数指定できるようです。
- ここでのバッククォート(`)はPowerShellの文法によるもので、AWS CLIのコマンドとは全く関係ありません。
- 「行末にバッククォートを入れると改行文字を無視して複数行にコマンドを記述することができる」という機能を利用して、コマンドを少し見やすくしています。
コマンドの基本形
aws resourcegroupstaggingapi get-resources `
--tag-filters Key={タグ名},Values={タグの値} `
- 以下のように
--profile
オプションを指定すれば、所望のAWSアカウントを指定した上でリソースを探すことが可能です。
profileを指定したコマンド
aws resourcegroupstaggingapi get-resources `
--tag-filters Key={タグ名},Values={タグの値} `
--profile {configのプロファイル名}
-
--region
オプションを指定すれば、所望のリージョンに絞り込んだ上でリソースを探すことが可能です。
regionを指定したコマンド
aws resourcegroupstaggingapi get-resources `
--tag-filters Key={タグ名},Values={タグの値} `
--region {リージョン名}