はじめに
8/13にAWS Resource Explorerのアップデートがありました。
AWS Resource Explorer now Supports Filtering for Multiple Values
この複数の値でのフィルタリングと、AWS Organizetionとの連携を少しみてみます。
試してみる
複数値検索(マネコン)
マネコン上では、以下のようにGUIで簡単に条件指定可能です。
こんな感じでDynamoDBかつタグ未設定、みたいな複数条件指定も簡単です。
GUIで作った条件はクエリをコピーでコピーできるようになっており、CLIで指定するときに便利です!
なお、今回の場合は、service:dynamodb tag:noneでした。
複数値検索(CLI)
次にCLIで検索してみます。
似たような役割である、searchとlist-resources確認してみます。
aws resource-explorer-2 search
[cloudshell-user@ip-10-131-59-207 ~]$ aws resource-explorer-2 search --query-string="service:dynamodb tag:none" | jq -r '.Resources[].Arn'
arn:aws:dynamodb:ap-northeast-1:853835738220:table/stream_test
arn:aws:dynamodb:ap-northeast-1:853835738220:table/stream_test_restore_2
arn:aws:dynamodb:ap-northeast-1:853835738220:table/tenant_data
arn:aws:dynamodb:ap-northeast-1:853835738220:table/PetTable2
arn:aws:dynamodb:ap-northeast-1:853835738220:table/xray_test
aws resource-explorer-2 list-resources
[cloudshell-user@ip-10-131-59-207 ~]$ aws resource-explorer-2 list-resources --filters FilterString="service:dynamodb tag:none" | jq -r '.Resources[].Arn'
arn:aws:dynamodb:ap-northeast-1:853835738220:table/stream_test
arn:aws:dynamodb:ap-northeast-1:853835738220:table/stream_test_restore_2
arn:aws:dynamodb:ap-northeast-1:853835738220:table/tenant_data
arn:aws:dynamodb:ap-northeast-1:853835738220:table/PetTable2
arn:aws:dynamodb:ap-northeast-1:853835738220:table/xray_test
マネコンで作ったクエリがそのまま使えるので便利!
マルチアカウントの検索
次にマルチアカウントでの検索をしてみます。
設定は組織から。

組織でResource Explorerを設定
設定画面に遷移すると、以下の案内が出ますので、組織でResource Explorerを設定を選択します。
次の画面で、信頼されたアクセスの有効化と、委任された管理者の設定しておきます。
設定が完了すると、設定画面に戻り、以下の案内が出ます。
上2つは設定済みなので、残り二つを設定していきます。
- マルチアカウント検索用のResource Exploerの設定
- マルチアカウントビューの設定
マルチアカウント検索用のResource Exploerの設定
今回はQuick Setupで実施してみます。
アグリゲータ、ターゲットを設置します。
とりあえず、ap-northeast-1にアグリゲータを設定し、組織全体を全体をターゲットにしました。
あとは待つだけ。
マルチアカウントビューの設定
ビューの設定を最後にします。
ビューはデフォルトで一つありますが、アカウントスコープのところにこのアカウントとある通り、自身のアカウントしか見られません。
同画面右上にあるビューの作成から作っていきます。
今回は全ての組織を対象に、フィルタなしで設定しています。
あらかじめ検索目的がある場合などは設定しておくといいかもですね。
ビューができました。
デフォルト設定をしておくと、マネコン・CLIの検索時に明示的にビューを指定する必要がありません。
検索してみる(マネコン)
表示のところを先程作ったビューに変更すると、アカウントIDのところの他のアカウントが出るようになってました!
検索してみる(CLI)
list-resourcesで、別アカウントのリソースを検索してみます。
先ほど作ったビューがデフォルト設定になっていないので、検索できませんね。
~ $ aws resource-explorer-2 list-resources --filters FilterString="accountid:123456789012" | jq -r '.Resources[].Arn'
~ $
--view-arnオプションで先ほど作ったビューのArnを指定すれば動きました!
~ $ aws resource-explorer-2 list-resources --filters FilterString="accountid:123456789012" --view-arn "arn:aws:resource-explorer-2:ap-northeast-1:98765432101:view/OrganizationsView/49b43bae-3b5b-4196-bad0-5d6ab7ace54c" | jq -r '.Resources[].Arn'
arn:aws:cloudformation:ap-northeast-2:123456789012:stack/StackSet-AWS-QuickSetup-ResourceExplorer-TA-ya8fo-9a6f6320-e894-4e17-969d-c990e372bf0d/5ebadee0-82b2-11f0-b3f0-02d6337d0eff
arn:aws:iam::123456789012:role/AWSServiceRoleForAmazonSSM
arn:aws:athena:eu-west-3:123456789012:datacatalog/AwsDataCatalog
arn:aws:iam::123456789012:role/AWS-QuickSetup-ResourceExplorerRole-ya8fo-eu-west-1
arn:aws:ec2:ap-northeast-2:390402571922:route-table/rtb-04c591f52d31d0089
まとめ
必要なタグが設定されていないリソースを横断的に検索するときなど、複数のサービスを跨いでリソースを検索するときに便利だなーって思いました。
これまで軽く触ったくらいだったので、理解深まりました。












