説明
Elasticsearch ドメインでは、保存時の暗号化と KMS キーの選択を併せて確認する必要があります。テンプレートに KmsKeyId がないだけで、平文で保存されているとは判断できません。AWS::Elasticsearch::Domain の CloudFormation プロパティ定義では、暗号化を有効にする場合にキーの指定が必要です。
キーポリシーとライフサイクルを直接管理する必要がある場合は、カスタマーマネージドキーを選択してください。暗号化したドメインにカスタマーマネージドキーがないだけで、データが公開されるわけではありません。
想定される影響
キーの選択や権限が組織の要件に合わないと、監査や職務分離の基準を満たせない場合があります。使用中のキーを無効化・削除すると、ドメインのデータにアクセスできなくなるおそれがあります。
対処方法
実際のドメインの暗号化状態とキーを確認し、適切な対称 KMS キーを EncryptionAtRestOptions.KmsKeyId に指定してください。サービスに必要な権限を与え、キーの管理権限は制限してください。暗号化したドメインのキーを別のキーへ変更することはできないため、必要に応じて新しいドメインへの移行を計画してください。キーの削除防止とデータ復旧も検証してください。
例
最初の例はキーの指定がない不完全な CloudFormation 設定であり、平文保存を示すものではありません。二つ目では、承認された実際のキー ID または ARN を入力します。インスタンスタイプと暗号化に対応した Elasticsearch バージョンを指定し、アクセスポリシーとネットワーク制御は別途設定してください。
キーを省略した設定
Parameters:
ElasticsearchVersion:
Type: String
Resources:
ElasticsearchDomain:
Type: AWS::Elasticsearch::Domain
Properties:
DomainName: test
ElasticsearchVersion: !Ref ElasticsearchVersion
ElasticsearchClusterConfig:
InstanceType: t3.small.elasticsearch
EncryptionAtRestOptions:
Enabled: true
EBSOptions:
EBSEnabled: true
VolumeSize: 20
VolumeType: gp2
キーを指定した設定
Parameters:
ElasticsearchVersion:
Type: String
EncryptionKeyId:
Type: String
Resources:
ElasticsearchDomain:
Type: AWS::Elasticsearch::Domain
Properties:
DomainName: test
ElasticsearchVersion: !Ref ElasticsearchVersion
ElasticsearchClusterConfig:
InstanceType: t3.small.elasticsearch
EncryptionAtRestOptions:
Enabled: true
KmsKeyId: !Ref EncryptionKeyId
EBSOptions:
EBSEnabled: true
VolumeSize: 20
VolumeType: gp2