Elasticsearch 암호화 키 설정 점검

Elasticsearch 도메인의 실제 암호화 상태와 KMS 키 선택이 조직 요구사항에 맞는지 확인하세요.

설명

Elasticsearch 도메인의 저장 시 암호화 활성화 여부와 KMS 키 선택은 함께 확인해야 합니다. 템플릿에 KmsKeyId가 없다는 사실만으로 저장 데이터가 평문이라고 판단할 수는 없습니다. AWS::Elasticsearch::Domain의 CloudFormation 속성 정의는 암호화를 켤 때 키를 명시하도록 요구합니다.

고객 관리형 키는 조직이 키 정책과 수명 주기를 직접 통제해야 할 때 선택하세요. 암호화된 도메인에 고객 관리형 키가 없다는 이유만으로 데이터가 공개되는 것은 아닙니다.

잠재적 영향

키 선택과 권한이 조직의 요구사항에 맞지 않으면 감사·권한 분리 기준을 충족하지 못할 수 있습니다. 사용 중인 키를 비활성화하거나 삭제하면 도메인 데이터에 접근하지 못할 수 있습니다.

해결 방법

실제 도메인의 암호화 상태와 키를 확인하고 적절한 대칭 KMS 키를 EncryptionAtRestOptions.KmsKeyId에 지정하세요. 서비스에 필요한 권한을 부여하면서 키 관리 권한은 제한하세요. 암호화한 도메인의 키를 다른 키로 바꾸는 작업은 지원되지 않으므로, 필요한 경우 새 도메인으로의 이전을 계획하세요. 키 삭제 방지와 데이터 복구도 검증하세요.

예시

첫 예시는 키 지정이 빠진 불완전한 CloudFormation 설정이며 평문 저장을 증명하는 예시는 아닙니다. 두 번째는 승인된 실제 키 ID 또는 ARN을 입력합니다. 해당 인스턴스 유형과 암호화를 지원하는 Elasticsearch 버전을 지정하고 접근 정책·네트워크 통제는 별도로 구성하세요.

키 지정이 빠진 설정

yaml
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

키를 명시한 설정

yaml
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

참조