AWS マネージドキーで暗号化された Secrets Manager シークレット

Secrets Manager の AWS マネージドキーが組織のキー管理要件に適しているか確認してください。

説明

AWS マネージドキー aws/secretsmanager も、KMS を使用してシークレット値を暗号化します。このキーを使うことだけで、暗号化が弱い、またはシークレットが公開されているとはいえません。

ただし、AWS マネージドキーのキーポリシーは直接変更できません。組織がキーポリシーやライフサイクルを直接管理する必要がある環境では、カスタマー管理 KMS キーが必要になる場合があります。

想定される影響

組織のキー管理基準を満たせない場合があります。カスタマー管理キーを使用しても、過剰なシークレット読み取り権限は別途制限する必要があります。また、キー権限を誤って変更すると、アプリケーションがシークレットを取得できなくなる可能性があります。

対処方法

  • 組織の要件に応じてカスタマー管理の対称暗号化 KMS キーを選び、kms_key_id に ARN またはエイリアスを指定してください。
  • シークレットポリシー、IAM 権限、キーポリシーを併せて確認し、必要なプリンシパルだけに読み取りとキー使用の権限を付与してください。
  • キー変更後に、必要なシークレットバージョンを実際に読み取れることを確認してください。既存バージョンに必要な以前のキーへのアクセス権限を早まって削除しないでください。

例

以下はシークレットリソースのキー選択だけを示しています。シークレット値は別途管理します。

AWS マネージドキー

hcl
resource "aws_secretsmanager_secret" "example" {
  name       = "test-cloudrail-1"
  kms_key_id = "alias/aws/secretsmanager"
}

AWS が管理するキーポリシーでシークレット値を暗号化します。

カスタマー管理キー

hcl
resource "aws_secretsmanager_secret" "example" {
  name       = "test-cloudrail-1"
  kms_key_id = "alias/MyAlias"
}

alias/MyAlias を同じリージョンの実際のカスタマー管理キーのエイリアスに置き換え、呼び出し元のキー権限を確認してください。キーの種類を変えるだけでは、シークレットへのアクセス権限は制限されません。

参考資料