Secrets Manager の暗号化キーを確認

Secrets Manager の既定の暗号化と、独自のキーポリシーやクロスアカウント要件を区別します。

説明

Secrets Manager は KmsKeyId を省略すると、AWS マネージドキー aws/secretsmanager でシークレット値を暗号化します。省略しても暗号化が無効になるわけではありません。キーポリシーとライフサイクルの直接管理や、別アカウントからのシークレットへのアクセスには、カスタマーマネージドキーが必要です。

想定される影響

既定のキーでは、独自のキー管理やクロスアカウントアクセスの要件を満たせない場合があります。キー権限を誤ると、必要なシークレットの取得に失敗することがあります。

対処方法

必要に応じて、実際のカスタマーマネージドキー ARN を KmsKeyId に指定してください。シークレットのアクセスポリシーと KMS キーポリシーを併せて確認し、必要な主体と操作だけを許可して、変更後もアプリケーションが値を取得できるか確認してください。

例

暗号化キーの選択を比較する抜粋です。どちらも値を生成・入力しないため、空のシークレットを作成します。実際の値は、別途適切な生成・保存手順で管理してください。

変更前

yaml
Resources:
  MySecret:
    Type: AWS::SecretsManager::Secret
    Properties:
      Description: secret description

値を保存するときに既定の aws/secretsmanager キーを使います。

変更後

yaml
Resources:
  MySecret:
    Type: AWS::SecretsManager::Secret
    Properties:
      Description: secret description
      KmsKeyId: !Ref SecretKeyArn

SecretKeyArn で指定したカスタマーマネージドキーを使います。キーの指定だけでシークレットへの過剰なアクセス権がなくなるわけではありません。

参考資料