セキュリティアカウントの設定

続いて、セキュリティアカウントの設定を行います。

KMSの設定

CloudTrailの設定を行う前に、KMSにて顧客管理キー(CMK)を作成します。組織の証跡作成時にCMKを新規作成することも可能ですが、今回は事前にCMKを作成し、そのCMKを指定するという流れによるセットアップを紹介します。

CloudTrailの証跡イベントを暗号化するためのCMKの作成を行います。キーポリシーは下記が必要最低限となります。案件状況に応じて適宜権限の追加を検討ください。

Conditionで指定するCloudTrailのARNに注意が必要です。前述のS3バケットでも記載した通り、指定するARNのアカウントIDは 管理アカウントのAWSアカウントID です。セキュリティアカウントのAWSアカウントIDではありません。

    {
{
 "Version": "2012-10-17",
 "Id": "Key policy for CloudTrail",
 "Statement": [
     {
         "Sid": "Enable IAM User Permissions For Security Account",
         "Effect": "Allow",
         "Principal": {
             "AWS": [
                 "arn:aws:iam::セキュリティアカウントのID:root"
             ]
         },
         "Action": "kms:*",
         "Resource": "*"
     },
     {
         "Sid": "Enable IAM User Permissions For Log Archive Account",
         "Effect": "Allow",
         "Principal": {
             "AWS": [
                 "arn:aws:iam::ログアーカイブアカウントのID:root"
             ]
         },
         "Action": "kms:Decrypt",
         "Resource": "*"
     },
     {
         "Sid": "Allow CloudTrail to encrypt logs",
         "Effect": "Allow",
         "Principal": {
             "Service": "cloudtrail.amazonaws.com"
         },
         "Action": [
             "kms:Decrypt",
             "kms:GenerateDataKey*"
         ],
         "Resource": "*",
         "Condition": {
             "StringLike": {
                 "kms:EncryptionContext:aws:cloudtrail:arn": [
                     "arn:aws:cloudtrail:ap-northeast-1:管理アカウントのID:trail/作成するCloudTrailの名前"
                 ]
             }
         }
     },
     {
         "Sid": "Allow CloudTrail to describe key",
         "Effect": "Allow",
         "Principal": {
             "Service": "cloudtrail.amazonaws.com"
         },
         "Action": "kms:DescribeKey",
         "Resource": "*",
         "Condition": {
             "StringEquals": {
                 "aws:SourceArn": "arn:aws:cloudtrail:ap-northeast-1:管理アカウントのID:trail/作成するCloudTrailの名前"
             }
         }
     }
 ]
}

CloudTrailの設定

最後にCloudTrailの設定を行います。この操作はセキュリティアカウントで行います。

(1)CloudTrailのメニューで「証跡の作成」ボタンをクリックします

(2)S3バケットとしてログアーカイブアカウントのS3バケットを指定し、暗号化キーとしてセキュリティアカウントのCMKを指定し、「次へ」をクリックします。

(3)記録するログイベントの設定を行います。以下の画像ではデータイベントやInsightsイベントにチェックを入れていませんが、以下の記事を参考に必要に応じて設定を検討ください。

(4)確認画面で「証跡の作成」をクリックし、完了します。

課題となりやすいポイント

最後に、CloudtrailをOrganizationsと連携させるにあたり、課題となりやすい個所を紹介します。

(1)複数のアカウントをまたがった操作が多いため、どこで何をすれば良いかがわかりにくいと思いますので、本稿を参考に手順を確認してください。

(2)組織の証跡は特定のAWSアカウントを対象外にすることができないため、Organizations内に既存のAWSアカウントがいる場合、既存のAWSアカウントでは既存の証跡に加えて、組織の証跡が作成され、二重で証跡が取得されることになります。コストや管理面で問題となりますのでご注意ください。

既存の証跡は過去ログがあり、削除も難しいと思いますので、できるだけ既存のAWSアカウントがいない新規のOrganizationsの環境で組織の証跡を利用してください。

(3)上記の課題に関連しますが、管理アカウントのログも対象外にできないため、今回のような構成の場合、ログアーカイブアカウントに管理アカウントのログも集約されます。管理アカウント内の操作ログは見られたくない場合もあると思いますので、そうした場合の利用注意してください。

(4)CloudTrail Lakeと併用する場合、今回のように委任管理者アカウントを利用できないケースがあります。公式ドキュメントにも記載がありますが、CloudTrail Lakeのイベントストアを作成するのオプションとしてイベントデータストアのコピーは委任管理者では対応していません。そのため、CloudTrail Lakeの利用時には注意が必要です。

証跡イベントを組織のイベントデータストアにコピーするには、組織の管理アカウントを使用する必要があります。組織の委任された管理者アカウントを使用して、証跡イベントをコピーすることはできません。

まとめ

今回は、CloudTrailの組織の証跡の作成ステップや組織の証跡を利用時に課題となりやすいポイントについても紹介しました。それほどメジャーな操作ではないため、初めて実施する際は戸惑われたり、手戻りが発生したりするでしょう。本稿がそうした課題の解決の一助になれば幸いです。

次回は、AWS ConfigのOrganizations連携について紹介します。