LoginSignup
2
0

More than 1 year has passed since last update.

AWS CloudWatchロググループで、KMSのARNを指定して作成したときにエラーが出た場合

Last updated at Posted at 2021-09-05

概要

ClouddWatchのロググループ作成時に、暗号化のためKMS key ARN - optionalにKMSのARNを入力してもエラーになってしまう。

スクリーンショット 2021-09-05 19.07.06.png

諦めかけていたところに、CloudWatch LogsのログデータをKMSで暗号化するに書いてあった以下のことを試してみました。

AWS KMSの運用では

鍵の管理者
鍵の利用者
の2種類のポリシーが必要です。

CW Logsの暗号化では鍵の利用者向けポリシーが該当します。

このポリシーの Principal に "Service": "logs.AWS-REGION.amazonaws.com" を>追加します。リージョンを含める必要がある点に注意ください。

試しにKMSのキーポリシーに、"AWS": "arn:aws:iam::1234567890:user/udemy"の1行を追加してから、再度ロググループ作成のところで、先ほど指定した同じKMS Key ARNを
設定してロググループを作成したら、エラーが表示されずにロググループを作成できました。

        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.ap-northeast-1.amazonaws.com",
                "AWS": "arn:aws:iam::1234567890:user/udemy"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }

公式ドキュメントにもそれらしき記載がありました。

AWS Key Management Service を使用して CloudWatch Logs のログデータを暗号化する

ステップ 2: CMK で許可を設定する

デフォルトでは、すべての AWS KMS CMK はプライベートです。リソースの所有者のみがその CMK を使用してデータを暗号化および復号できます。ただし、リソース所有者は、他のユーザーとリソースに CMK へのアクセス権限を付与することができます。このステップでは、CloudWatch サービスプリンシパルに、CMK を使用するアクセス権限を付与します。このサービスプリンシパルは、CMK が保存されているのと同じ AWS リージョンにある必要があります。

要するに、CMKを使用する権限を与えてなかったからエラーになったんですね。

The specified KMS key does not exist or is not allowed to be used with LogGroup 'arn:aws:logs:ap-northeast-1:1234567890:log-group:session_log_test'

エラーメッセージにも「is not allowed to be used with LogGroup」と書いてあるので、権限周りを疑うべきでした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0