KMS キーポリシーのプリンシパル制限を確認

KMS キーを管理・使用できる主体を必要な範囲に限定します。

説明

KMS キーポリシーで Principal: "*" を許可し、適切な制限条件も設けていないと、キーにアクセスできる主体の範囲が広すぎるおそれがあります。

想定される影響

許可された操作によっては、想定外の主体がキーを使用したり、管理設定を変更したりできるおそれがあります。

対処方法

必要なプリンシパルと条件を明示し、キーの管理権限と使用権限を分けてください。ポリシー変更後も必要な管理権限が維持されることを確認してください。

例

変更後の例は、特定アカウントの IAM ポリシーによる権限委任を有効にします。root ARN はルートユーザーだけに制限する意味ではありません。キーポリシーの Resource: "*" は、このキーを指します。

変更前

yaml
AWSTemplateFormatVersion: 2010-09-09
Description: A sample template
Resources:
  myKey:
    Type: AWS::KMS::Key
    Properties:
      Description: An example symmetric CMK
      KeyPolicy:
        Version: "2012-10-17"
        Id: key-default-1
        Statement:
          - Sid: Enable IAM User Permissions
            Effect: Allow
            Principal: "*"
            Action: kms:*
            Resource: "*"

変更後

yaml
AWSTemplateFormatVersion: 2010-09-09
Description: A sample template
Resources:
  myKey:
    Type: AWS::KMS::Key
    Properties:
      Description: An example symmetric CMK
      KeyPolicy:
        Version: "2012-10-17"
        Id: key-default-1
        Statement:
          - Sid: Enable IAM User Permissions
            Effect: Allow
            Principal:
              AWS: arn:aws:iam::111122223333:root
            Action: kms:*
            Resource: "*"

参考資料