
SSE-KMS暗号化したCloudTrailログをSumo Logicに送信する
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
今回はAWSとSumo Logicとのログ連携の中で、SSE-KMS暗号化したCloudTrailログをSumo Logicに送信したいと思います。
構成としては以下のようになります。

Sumo LogicのCloudTrailソースの設定だけでは権限エラーになる
通常 S3 に保存したログを Sumo Logic に連携したい場合、下記のような手順で AWS に Sumo Logic からアクセスするためのロールを作成して、Sumo Logic からログをポーリングします。
※CloudTrail の場合、実際には AWS CloudTrail Source を設定する必要がありますが、下記の記事内での Source の選択を変えていただくだけでその他はほぼ同様の手順です。
ただし、SSE-KMSで CloudTrail のログを暗号化している場合、Collectionの設定でソースがエラーとなってしまい、ログを収集することができません。

エラーメッセージを確認するには、上記の画面の「Error」の部分をクリックして、詳細を確認していくことができます。

Health Events の画面でエラーの詳細を確認することができ、KMSキーのポリシーが原因かはメッセージだけではわかりませんがアクセス権限エラーとなっていることが分かります。

KMSキーポリシーでSumo Logicがアクセスするためのロールを許可する
KMSキーで CloudTrail 証跡を暗号化している場合、KMSキーポリシーにSumo Logicがアクセスするためのロールを許可してあげます。
公式ドキュメントでも、 こちらに記載されているので、参照して必要な設定を入れていきます。
AWSのKMSにログインして、CMSキーのキーポリシーを編集して以下のポリシーを追加します。
{
      "Sid": "Enable Sumo Logic S3 kms decrypt",
      "Effect": "Allow",
      "Principal": {
            "AWS": "<Sumo Logic がアクセスするためのロールのARN>"
      },
      "Action": "kms:decrypt",
      "Resource": "*"
}
「<Sumo Logic がアクセスするためのロールのARN>」は、前のCloudTrailソースの設定で作成されたロールを指定して上げる必要があります。
IAMから確認することも可能ですが、Sumo Logic コンソール内のCloudTrailソースの編集画面でARNを確認するのが簡単です。


Control Towerやマルチアカウント構成でSumo LogicがアクセスするためのロールとKMSがクロスアカウントのとき
下記のような構成の場合、KMSキーポリシーの設定に加え、S3アクセス用のロールでKMSキーのアクセス許可が必要です。(下記はControl Towerでのイメージです)

AWSのIAMにログインして、先程確認したS3アクセス用のロールに対して、KMSキーのアクセス許可を追加します。
{
      "Sid": "AllowUseOfKey",
      "Effect": "Allow",
      "Action": [
          "kms:Encrypt",
          "kms:Decrypt",
          "kms:ReEncrypt*",
          "kms:GenerateDataKey*",
          "kms:DescribeKey"
      ],
      "Resource": "<マスターアカウントのKMSキーのARN>"
}
下記参考:ステップ 2: 外部アカウントに IAM ポリシーを追加する
ログ収集の確認
ここまで設定してしばらくした後、再度Sumo LogicのCollectionを確認すると、ソースのヘルスチェックが緑色のHelthyになっていることが確認できます。

またその隣のボタンをクリックすると、ログ検索クエリが開き、CloudTrailのログが収集できていることも確認できました。

まとめ
SSE-KMSキーでCloudTrailの証跡を暗号化している場合、追加の設定が必要になります。
もし今回のようなエラーが出ていたら確認してみてください。











