AWS Configを活用すると、複数アカウント・複数リージョンにまたがるリソース情報を一元管理できます。本記事では、前提条件の確認からアグリゲータの作成、集約リソースの閲覧、CSV出力、そしてトラブルシュートまでをステップバイステップで解説します。
前提条件
- AWS Configの有効化
- AWSマネジメントコンソールでAWS ConfigがONになっていること。
- Configuration recorderで「すべてのリソースを記録」がON。
- 少なくとも現在のアカウント内のリソースがAWS Configに記録されている状態。
- IAM権限
アグリゲータ作成とクエリ実行に必要なポリシー:config:PutConfigurationAggregator
config:DescribeConfigurationAggregators
config:SelectAggregateResourceConfig
config:ListAggregateDiscoveredResources
config:ExportAggregateData
※必要に応じて、S3へCSVを直接保存する場合はs3:PutObject
、s3:ListBucket
も付与。 - マルチアカウント集約の承認
他アカウントをソースにする場合は、事前に集約元での許可を設定済みであること。
1. アグリゲータの作成
- AWS Configコンソールを開く
- AWS管理コンソールにサインイン(例: アカウントID
123456789012
)。 - 検索バーに「Config」と入力し、AWS Configサービスを選択。
- AWS管理コンソールにサインイン(例: アカウントID
- アグリゲータ画面へ移動
- 左ペインの「アグリゲータ」をクリック。
- 右上の「アグリゲータの追加(Add aggregator)」ボタンを押下。
- 基本情報の入力
- Aggregator名: 任意の識別名(例:
MultiAccountAggregator
)。 - ソースタイプ: 「アカウントとリージョン」を選択。
- Aggregator名: 任意の識別名(例:
- ソースアカウントとリージョンの設定
- アカウントID: 自アカウント(
123456789012
)または他アカウントIDを入力。 - IAMロールARN: AWS Config用ロールのARN(例:
arn:aws:iam::123456789012:role/AWSConfigRole
)。- このロールには最低限
config:BatchGetResourceConfig
が必要。
- このロールには最低限
- リージョン: 集約対象リージョンを選択(全リージョンを集約する場合は「すべてのAWSリージョン」をチェック)。
- アカウントID: 自アカウント(
- タグ付けと作成
- 必要に応じてタグを設定(例:
Environment=Audit
)。 - 「作成(Create)」ボタンをクリック。
- 必要に応じてタグを設定(例:
- ステータス確認
- 作成後、一覧に追加されたアグリゲータのステータスが「Creating」→「ACTIVE」に遷移するまで待機。
- 作成後、一覧に追加されたアグリゲータのステータスが「Creating」→「ACTIVE」に遷移するまで待機。
2. 集約リソース一覧の確認
- AWS Config → アグリゲータ → 作成した
MultiAccountAggregator
を選択。 - 詳細画面内の「リソース(Aggregated resources)」タブを開く。
- テーブル上部の「Last synced at」で最終同期日時を確認し、数分以内であればOK。
- 列には
ResourceType
、ResourceId
、ResourceName
、SourceAccountId
、SourceRegion
、Tags
などが表示。
3. CSV出力(高度なクエリエディタ経由)
AWS Configの最新UIでは、テーブル直下にCSVボタンがないため、Advanced Queryを使ってCSV出力します。
- 高度なクエリエディタを開く
- 「リソース」タブ上部のリンク「高度なクエリエディタ」をクリック。
- クエリ実行
次のクエリを入力し、「Run query」をクリック:SELECT
accountId,
awsRegion,
resourceType,
resourceName,
resourceId,
tags
FROM
句は不要。- 必要に応じて
tags
を除外して列数を減らせます。
- CSVエクスポート
- 結果テーブル右上の「Export results」→「CSV」を選択し、「Export」。
- ブラウザで
ConfigQueryResults_<タイムスタンプ>.csv
がダウンロードされる。 - ExcelやGoogleスプレッドシートで開き、各列を確認。
4. トラブルシュート
- クエリ結果がゼロ件
- 【原因】同期がまだ完了していない。
- 【対処】「Last synced at」を確認し、数分後にページ更新。
- 高度なクエリエディタが表示されない
- 【原因】作成リージョンと閲覧リージョンが異なる。
- 【対処】画面右上のリージョンをアグリゲータ作成リージョン(例:
ap-northeast-1
)に切替。
- Export resultsボタンがない
- 【原因】クエリ未実行、または権限不足。
- 【対処】クエリを実行してテーブルを表示、IAMポリシーを再確認。
まとめ
本手順に従えば、AWS Config アグリゲータでマルチアカウント・マルチリージョンのリソース情報を一元集約し、CSV形式で簡単にエクスポートできます。
定期的に最新データを取得したい場合は、同様の手順で再度クエリとエクスポートを実行してください。
また、さらに自動化が必要な場合は、CLIやAWS SDKを使ってS3へ直接出力する方法も検討してみてください。