https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html
ロググループのデータは常に CloudWatch Logs で暗号化されます。
この暗号化には、オプションで AWS Key Management Service を使用できます。
その場合、暗号化は AWS KMS カスタマーマネージドキーを使用して行われます。
AWS KMS を使用した暗号化は、ロググループの作成時または作成後に、キーとロググループを関連付けることにより、ロググループレベルで有効になります。
前提: CloudWatch エージェントのロググループを対象とする
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 2. AWS KMS カスタマーマネージドキーを作成する
aws kms create-key
aws kms list-keys | grep KeyId | wc -l
-- 3. カスタマーマネージドキーのアクセス許可を設定する
aws kms get-key-policy \
--key-id 11111111-2222-3333-4444-555555555555 \
--policy-name default \
--output text > ./policy01.json
{
"Version": "2012-10-17",
"Id": "key-default-1",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::999999999999:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": [
"kms:Encrypt*",
"kms:Decrypt*",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:Describe*"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:ap-northeast-1:999999999999:log-group:amazon-cloudwatch-agent.log"
}
}
}
]
}
aws kms put-key-policy \
--key-id 11111111-2222-3333-4444-555555555555 \
--policy-name default \
--policy file://policy01.json
-- 4. ロググループをカスタマーマネージドキーに関連付ける
aws logs describe-log-groups \
--log-group-name-prefix "amazon-cloudwatch-agent.log"
aws logs associate-kms-key \
--log-group-name amazon-cloudwatch-agent.log \
--kms-key-id "arn:aws:kms:ap-northeast-1:999999999999:key/11111111-2222-3333-4444-555555555555"
-- 5. ロググループを CMK の関連付けから解除する
aws logs describe-log-groups \
--log-group-name-prefix "amazon-cloudwatch-agent.log"
aws logs disassociate-kms-key \
--log-group-name amazon-cloudwatch-agent.log
-- 6. クリーンアップ
-- ロググループの削除
aws logs describe-log-groups --log-group-name-prefix amazon-cloudwatch-agent.log
aws logs delete-log-group --log-group-name amazon-cloudwatch-agent.log
-- KMSキーの削除
aws kms list-keys
aws kms schedule-key-deletion \
--key-id arn:aws:kms:ap-northeast-1:999999999999:key/11111111-2222-3333-4444-555555555555 \
--pending-window-in-days 7