説明
DocumentDB のストレージ暗号化を有効にし、kms_key_id を省略すると、サービスの既定の AWS マネージド KMS キーを使用します。キー識別子の省略は、KMS 暗号化がないことを意味しません。
組織で独自のキーポリシーやライフサイクルを管理する必要がある場合は、カスタマーマネージドキーを指定してください。どのキーを使う場合も、必要な権限と実際の暗号化状態を確認してください。
想定される影響
既定のキーでは組織のキー管理要件を満たせない場合があります。必要な権限を削除したりキーを使用できなくしたりすると、データへのアクセスや復旧が停止するおそれがあります。
対処方法
- 新規クラスターには
storage_encrypted = trueと、必要なカスタマーマネージドkms_key_idを指定してください。組織の基準を満たす場合は既定のキーも使用できます。 - 同じリージョンの使用可能なキーを選択し、キーの権限を必要な範囲に制限してください。
- 既存クラスターのキーは直接変更できません。必要なキーで暗号化したスナップショットのコピーを新しいクラスターに復元する手順と、Terraform の置き換え計画を検討してください。
例
作成設定の抜粋です。パスワードは安全に供給して Terraform の状態を保護してください。インスタンス、ネットワーク、バックアップは別途構成し、例の skip_final_snapshot = true も運用要件に合わせて検討してください。
既定の AWS マネージドキー
hcl
resource "aws_docdb_cluster" "docdb_cluster" {
cluster_identifier = "my-docdb-cluster"
engine = "docdb"
master_username = "foo"
master_password = var.docdb_password
backup_retention_period = 5
preferred_backup_window = "07:00-09:00"
skip_final_snapshot = true
storage_encrypted = true
}
暗号化を有効にして既定の KMS キーを使用します。独自のキー管理が必要か確認してください。
カスタマーマネージドキーの指定
hcl
resource "aws_docdb_cluster" "docdb_cluster" {
cluster_identifier = "my-docdb-cluster"
engine = "docdb"
master_username = "foo"
master_password = var.docdb_password
backup_retention_period = 5
preferred_backup_window = "07:00-09:00"
skip_final_snapshot = true
storage_encrypted = true
kms_key_id = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
例の ARN を実際に承認されたキー ARN に置き換えてください。この設定だけで既存クラスターが新しいキーへ移行するわけではありません。