🐡

AWS CloudWatch Logs グループを AWS KMS キーで暗号化する

2024/06/23に公開

はじめに

AWS CloudWatch Logsは、AWS リソースからのログデータを収集、モニタリングするためのツールです。セキュリティポリシーに準拠するために、ログデータを暗号化することは非常に重要です。AWS Key Management Service(AWS KMS)を使用すると、ログデータを安全に暗号化できます。本記事では、既存の CloudWatch Logsグループに対して AWS KMSキーを使用して暗号化を設定する方法について説明します。

AWS KMSキーを使用したログデータの暗号化の必要性

AWS KMSキーを使用してログデータを暗号化することで、以下のメリットがあります。

  • セキュリティの強化
    重要なログデータを保護し、アクセス制御を強化する。
  • コンプライアンス準拠
    多くの業界規制や企業の内部ポリシーに適合する。
  • 統合管理
    KMSキーの管理と使用を一元化し、他のAWSサービスとのスムーズな連携ができる。

必要な前提条件

設定を進める前に、以下の準備が必要です。

  • AWS アカウント
  • AWS CLIがインストールされ、適切に設定されていること
  • CloudWatch Logsグループがすでに存在していること

AWS KMSキーの作成

まず、AWS KMSコンソールを使用して新しいKMSキーを作成します。

  • AWS KMSコンソールにログイン

    • AWS マネジメントコンソールで AWS KMSサービスに移動します。
  • KMS キーの作成

    • 「キーの作成」ボタンをクリックし、ガイドに従って新しいKMSキーを作成します。
    • 必要なポリシーやタグを設定し、キーを作成します。

KMSキーのARNを取得

作成した KMSキーのARNをメモします。このARNは次のコマンドで使用します。

AWS CLIを使用してロググループにKMSキーを関連付け

AWS CLIを使用して、既存のCloudWatch LogsグループにKMSキーを関連付けます。
以下のコマンドを実行して、ロググループにKMSキーを関連付けます。

aws logs associate-kms-key --log-group-name <log-group-name> --kms-key-id <kms-key-arn>
  • <log-group-name> は、暗号化を有効にしたいロググループの名前に置き換えます。
  • <kms-key-arn> は、作成または取得したKMSキーのARNに置き換えます。

アクセス許可を確認

もし以下のようなエラーが出た場合、アクセス許可が設定されていない可能性があります。

An error occurred (AccessDeniedException) when calling the AssociateKmsKey operation: The specified KMS key does not exist or is not allowed to be used with Arn 'arn:aws:logs:ap-northeast-1:123456789:log-group:/aws/lambda/test'

KMSキーのポリシーに以下のようなステートメントを追加してください。

{
  "Sid": "AllowCloudWatchLogs",
  "Effect": "Allow",
  "Principal": {
    "Service": "logs.<region>.amazonaws.com"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}

確認手順

コマンドの実行後、CloudWatch Logsコンソールに移動し、対象のロググループの設定を確認します。
または、以下のCLIコマンドで設定を確認できます。

aws logs describe-log-groups

まとめ

AWS CLIのaws logs associate-kms-keyコマンドを使用することで、既存の CloudWatch Logsグループに対してAWS KMSキーを使用した暗号化を簡単に有効にできます。AWS KMSキーを利用することで、重要なログデータを安全に保護し、データセキュリティを強化することができます。
このガイドが、AWS KMSキーを使用して CloudWatch Logsを暗号化する際の参考になれば幸いです。

Discussion