[アップデート] クエリ一発で全アカウント、全リージョンの情報取得!AWS Config でマルチアカウント、マルチリージョンに対しての高度なクエリがサポートされました

マルチリージョン、マルチアカウントでの「Advanced query」めちゃ便利やん
2020.03.03

先日、AWS Config の管理コンソールを新バージョンにすると Advanced query のサンプルクエリ数が 16 から 58 に増えて便利ですよ! という記事を書きました。

記事のなかで、「Aggregate 機能を使うことで複数のリージョン、複数のアカウントのリソースを取得できるので非常に便利です!」と、さらっと書いていたのですが、どうやら機能アップデートだったようです。本日のアップデートリリースが流れてきて気づきました。

ということで、あらためてマルチアカウント、マルチリージョンでの Advanced query についてシェアしたいと思います。

何が嬉しいのか

AWS Config としてのマルチアカウント、マルチリージョンでのデータ集約(Aggregate)機能は以前から利用可能でしたが、Aggregator に対しての Adevanced query は対応していませんでした。(先ほど知ったばかりですが。。)

今回、Aggregator への Advanced query がサポートされたことで、クエリ一発で AWS Config を集中管理しているアカウントから管理対象のアカウントおよび、すべてのリージョンに対するリソース情報を取得することが出来るようになりました。非常に便利ですね!

注意点

クエリ取得できるのは AWS Config で管理しているリソースのみです。設定で対象リソースを限定していたり、そもそも AWS Config でサポートされていないリソース情報は取得できません。

やってみる

それでは早速やってみましょう。

Aggregator の作成

何も設定していない場合、AWS Config の管理コンソールで参照できる情報は単一アカウント、単一リージョンのみです。これらをマルチアカウント、マルチリージョンに対応させるには Aggregator の作成が必要となります。

新コンソールだと Aggregator の作成が出来ない?

執筆時点においては、AWS Config の新コンソールだと Aggregator の作成メニューを見つけることが出来ませんでした。(知っている方おられましたら教えてください。)今回は、旧コンソールに戻して設定しています。戻したい場合は管理コンソール上部の switch back のリンクをクリックしてください。

個別アカウントでの Aggregator の作成

[Aggregated view] - [Aggregators] を開き、[Add aggregator] をクリックします。

Aggregator の追加メニューで以下のように設定します。

  • Allow data replication にチェック
  • 任意の Aggregator 名を入力
  • Add individual account IDs を選択し、集約対象のアカウントIDを入力(カンマ区切りで複数指定 or ファイル読み込み)
  • 集約対象のリージョンを指定
    • 将来的にリージョンで AWS Config が有効化されたときに自動的に集約対象として追加したい場合は、include future AWS regions にチェック

注意点としては、単一アカウントでマルチリージョンを集約したい場合も自身のアカウントも Add source accounts で指定する必要があります。

ターゲットアカウントでの承認

中央のアカウントから集約対象に指定されたアカウント側では、Aggregator に登録されることを承認する必要があります。

ターゲット側の AWS Config 管理コンソールを開き、[認証] を開くと以下のように承認リクエストが届いていますので [承認] をクリックします。

注意点としては、個別アカウントの承認処理は各リージョン毎に行う必要があるようです。ターゲットのアカウントで、各リージョンで AWS Config を有効化する都度、承認待ちになっていました。

これで Aggregator の作成は完了です。

Organization 環境の場合

個別アカウントの場合、先述のとおり承認処理が必要となりますが、 Organization 環境で行う場合は承認処理は必要ありません。Organization 環境での Aggregator 作成についてか過去のエントリーを参照ください。

Aggregator への Advanced query

それでは作成した Aggregator に Advanced query を投げてみましょう。

[Advanced queries] - [New query] をクリック。[Query scope] の指定ができますので、先ほど作成した Aggregator を指定します。あとは任意のクエリを実行します。(今回は EIP の一覧を表示するだけの単純なクエリです)

accountId の列を見るとマルチアカウントで結果が返っていることが判ります。また、awsRegion の列を見るとマルチリージョンで結果が返っていることも判りますね!

検証は以上です!

さいごに

前回の記事ではサラッと流してしまいましたが、マルチアカウント、マルチリージョンのリソースに対してクエリ一発で情報取得できるのは非常に便利ですね!

AWS Config としては設定項目ごとに $0.003 の利用料金が掛かりますが、Advanced query は追加費用なしで利用できます!すでに AWS Config をお使いであれば、使わない手はないと思いますので是非ご活用ください!

以上!大阪オフィスの丸毛(@marumo1981)でした!