KMS 키 정책의 권한 점검 필요

KMS 키 사용·관리 권한을 필요한 범위로 제한하고 향후 정책을 관리할 경로를 유지하세요.

설명

KMS 키에 불필요한 사용·관리 권한을 부여하면 키를 사용하는 데이터나 서비스에 영향을 줄 수 있습니다. 실제 키 정책, IAM 권한과 KMS 권한 부여를 함께 확인하세요. 키 정책의 Resource: "*"는 그 정책이 연결된 키를 뜻하며, 기본 소유 계정 위임이나 정책 생략 자체가 공개 접근을 의미하지는 않습니다.

잠재적 영향

불필요한 서명·복호화나 관리 작업이 실제로 허용되면 데이터의 신뢰성 또는 서비스 가용성에 영향을 줄 수 있습니다. 가능한 작업은 키의 용도와 실제 권한에 달려 있습니다.

해결 방법

  • 키를 사용할 주체와 관리할 주체를 구분하고 필요한 작업·유효한 조건으로 권한을 제한하세요.
  • 향후 kms:PutKeyPolicy를 사용할 관리 경로를 보존하고 잠금 방지 검사를 우회하지 마세요. 필요한 사용과 관리 작업이 유지되고 원치 않는 요청은 거부되는지 확인하세요.

예시

서명·검증용 RSA 키의 예시이며 복호화용 키가 아닙니다. SigningRoleArn은 실제 서명 역할 ARN으로 제공하세요. 변경 후의 소유 계정 문은 IAM을 통한 관리 위임을 유지하므로 배포·관리 주체에 필요한 IAM 권한도 있어야 합니다.

변경 전

yaml
Resources:
  RSASigningKey:
    Type: AWS::KMS::Key
    Properties:
      Description: RSA-3072 asymmetric CMK for signing and verification
      KeySpec: RSA_3072
      KeyUsage: SIGN_VERIFY
      KeyPolicy:
        Version: "2012-10-17"
        Id: key-default-1
        Statement:
          - Sid: Enable IAM User Permissions
            Effect: Allow
            Principal:
              AWS: "*"
            Action: kms:*
            Resource: "*"

주체와 KMS 작업을 넓게 허용합니다. 실제 유효한 통제와 필요한 권한 범위를 함께 검토하세요.

변경 후

yaml
Parameters:
  SigningRoleArn:
    Type: String
Resources:
  RSASigningKey:
    Type: AWS::KMS::Key
    Properties:
      Description: RSA-3072 asymmetric CMK for signing and verification
      KeySpec: RSA_3072
      KeyUsage: SIGN_VERIFY
      KeyPolicy:
        Version: "2012-10-17"
        Id: key-default-1
        Statement:
          - Sid: EnableIAMUserPermissions
            Effect: Allow
            Principal:
              AWS: !Sub 'arn:${AWS::Partition}:iam::${AWS::AccountId}:root'
            Action: kms:*
            Resource: "*"
          - Sid: Allow use of the key
            Effect: Allow
            Principal:
              AWS: !Ref SigningRoleArn
            Action:
              - kms:Sign
              - kms:Verify
              - kms:DescribeKey
            Resource: "*"

소유 계정 위임을 유지하고 지정 역할에는 서명·검증·키 설명 권한을 부여합니다. 다른 정책이나 권한 부여까지 포함해 실제 접근을 확인하세요.

참조