AWS CloudWatch Logs グループを AWS KMS キーで暗号化する
はじめに
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