みなさん、こんにちは。サニービュー事業部の小寺です。
今週は雨の日が多いですね。

今日はAWS Configのアグリゲーターの設定について、解説します。
みなさんは、AWS Config使っていますか?AWS Configとは、AWSのリソースの設定を記録して評価をしてくれるというとても便利なサービスです。一通り知っている前提でお話を進めます。

■アグリゲーターを使うと便利なこと

アグリゲータは、AWS Configで収集しているリソースや、Configルールのチェック結果を収集することができます。以下の3パターンで活用ができます。

1)複数のアカウントと複数のリージョン。
2)単一のアカウントと複数のリージョン。
3)AWS Organizations 内の組織と、AWS Config が有効になっている組織内のすべてのアカウント。

https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/aggregate-data.htmlより引用

組織に所属していないAWSアカウントや、組織に所属していたとしても、特定のAWSアカウント(複数)に対して、一括管理ができるのは効率的ですね。

■アグリゲータを設定してみよう

今回は1) 複数のアカウントと複数のリージョンのパターンで設定してみました。

1) アグリゲータを追加する

データを収集するアカウント(以後、アグリゲータアカウント)でアグリゲータを追加します。
AWS Conigより「アグリゲータ」を選び、「アグリゲータを作成」をクリックします。

「アグリゲータを作成」画面で、まずは「AWS Config がソースアカウントからアグリゲータアカウントにデータをレプリケートすることを許可します。」にチェックを入れます。「アグリゲータ名」を入力します。

ソースアカウントは今回は「個々のアカウント ID を追加する」とし、コンソールに追加するAWSアカウントIDを入力しました。

リージョンは「ap-northeast-1」を選択し、「アグリゲータを作成」ボタンをクリックします。すぐにアグリゲータが作成されます。

2)アグリゲータアカウントにログを集約するため、S3バケットポリシーを追加

「AWSアカウントID」の列を追加します。

 {
     "Version": "2012-10-17",
     "Statement": [
         {
             "Sid": "AWSConfigBucketPermissionsCheck",
             "Effect": "Allow",
             "Principal": {
                 "Service": "config.amazonaws.com"
             },
             "Action": "s3:GetBucketAcl",
             "Resource": "arn:aws:s3:::config-bucket-XXXXXXXXXXXX"
         },
         {
             "Sid": "AWSConfigBucketDelivery",
             "Effect": "Allow",
             "Principal": {
                 "Service": "config.amazonaws.com"
             },
             "Action": "s3:PutObject",
             "Resource": [
"arn:aws:s3:::config-bucket-XXXXXXXXXXXX/AWSLogs/XXXXXXXXXXXX/Config/", "arn:aws:s3:::config-bucket-XXXXXXXXXXXX/AWSLogs/AWSアカウントID/Config/"
             ],
             "Condition": {
                 "StringEquals": {
                     "s3:x-amz-acl": "bucket-owner-full-control"
                 }
             }
         }
     ]
 }

3) ソースアカウントを承認

今回はAWS Organizationsを利用せず、ソースアカウントが個別のアカウントであるため、 この手順が必要です。ソースアカウントがAWS Organizationsの場合は、不要です。

ソースアカウントとして、追加したAWSアカウントでConfigの承認を行います。まずは、マネジメントコンソールよりConfigサービスを選びます。
設定ではは、「配信方法」より「別のアカウントからバケットを選択」し、アグリゲータアカウントで設定済のS3を入力します。

「アグリゲータ」より「認証」をクリックします。

アカウントIDをチェックした状態で、「承認」をクリックし、確認画面が表示されるので、「Authorize」を入力し、「承認」をクリックします。

4) アグリゲータアカウントでの確認

まずは、S3バケットに書き込みができているかを確認しましょう。
アグリゲータのS3バケットで指定したAWSアカウントID配下に書き込み確認用のファイルが生成されていればOKです。

■まとめ

いかがでしたでしょうか。
今日はアグリゲータの設定について、お伝えしました。
実際のルールや運用方法は改めてアップします。

▼「無料相談」受付中です。AWSに関することは、どんなことでもお気軽にご相談ください。
https://www.sunnycloud.jp/contact-us/