ElastiCache에서 저장 시 암호화 - 아마존 포 ElastiCache 레디스용

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ElastiCache에서 저장 시 암호화

데이터를 안전하게 보관하기 위해 Amazon ElastiCache 및 Amazon S3에서는 캐시의 데이터에 대한 액세스를 제한하는 다른 방식을 제공합니다. 자세한 정보는 Amazon VPC 및 ElastiCache 보안Amazon ElastiCache의 Identity and Access Management 섹션을 참조하십시오.

ElastiCache의 저장 시 암호화는 디스크의 데이터를 암호화해 데이터 보안을 강화하는 기능입니다. 이 기능은 서버리스 캐시에서 항상 활성화되어 있습니다. 이 기능이 활성화되어 있으면 다음과 같은 항목이 암호화됩니다.

  • 동기화, 백업 및 스왑 작업 중 디스크

  • Amazon S3에 저장된 백업

데이터 계층화가 활성화된 클러스터의 SSD(Solid-State Drive)에 저장된 데이터는 항상 암호화됩니다.

ElastiCache는 기본(서비스 관리형) 저장 시 암호화와 더불어 AWS Key Management Service(KMS)에서 자체 대칭 고객 관리형 AWS KMS 키를 사용할 수 있는 기능을 제공합니다. 캐시가 백업되면 암호화 옵션에서 기본 암호화 키를 사용할지 또는 고객 관리 키를 사용할지 선택합니다. 자세한 내용은 저장 데이터 암호화 활성화 섹션을 참조하세요.

참고

GovCloud(미국) 리전에서 사용할 수 있는 유일한 옵션은 기본(서비스 관리형) 암호화입니다.

중요

기존 자체 설계된 Redis 클러스터에서 저장 시 암호화를 활성화하려면 복제 그룹에서 백업 및 복원을 실행한 기존 복제 그룹을 삭제해야 합니다.

저장 시 암호화는 캐시를 생성할 때만 캐시에 대해 활성화할 수 있습니다. 데이터를 암호화 및 해독하기 위해 몇 가지 처리가 필요하기 때문에 미사용 데이터 암호화를 활성화하면 이러한 작업 중 성능에 영향이 있을 수 있습니다. 사용 사례에 대한 성능 영향을 파악하기 위해서는 미사용 데이터 암호화를 사용한 상태와 사용하지 않은 상태에서 데이터를 벤치마크해야 합니다.

미사용 데이터 암호화 조건

ElastiCache의 미사용 데이터 암호화를 구현하기 위해 계획하는 경우에는 ElastiCache의 미사용 데이터 암호화에 대한 다음 제약을 염두에 둬야 합니다.

  • 저장 중 암호화는 Redis 버전(3.2.6, EOL 예정, Redis 버전 수명 종료 일정 참조) 4.0.10 이후에서 실행 중인 복제 그룹에서 지원됩니다.

  • 미사용 데이터 암호화는 Amazon VPC에서 실행 중인 복제 그룹에 대해서만 지원됩니다.

  • 유휴 데이터 암호화는 다음 노드 유형을 실행하는 복제 그룹에 대해서만 지원됩니다.

    • R6gd, R6g, R5, R4, R3

    • M6g, M5, M4, M3

    • T4g,T3, T2

    자세한 내용은 지원되는 노드 유형 섹션 참조

  • 미사용 데이터 암호화는 AtRestEncryptionEnabled 파라미터를 명시적으로 true로 설정해 활성화합니다.

  • 복제 그룹을 생성하는 경우에만 복제 그룹에 대해 미사용 데이터 암호화를 활성화할 수 있습니다. 복제 그룹을 수정하는 방법으로는 미사용 데이터 암호화 켜기 또는 끄기로 전환할 수 없습니다. 기존 복제 그룹에 대해 미사용 데이터 암호화를 구현하는 방법에 대한 자세한 내용은 저장 데이터 암호화 활성화 섹션을 참조하세요.

  • 클러스터가 r6gd 패밀리의 노드 유형을 사용하는 경우 미사용 데이터 암호화가 활성화되었는지 여부에 관계없이 SSD에 저장된 데이터가 암호화됩니다.

  • AWS GovCloud(us-gov-east-1 및 us-gov-west-1) 리전에서는 저장된 데이터 암호화를 위한 고객 관리형 키를 사용할 수 없습니다.

  • 클러스터가 r6gd 패밀리의 노드 유형을 사용하는 경우 SSD에 저장된 데이터는 선택한 고객 관리형 AWS KMS 키(또는 AWS GovCloud 리전의 서비스 관리형 암호화)를 통해 암호화됩니다.

미사용 데이터 암호화를 구현하면 백업 및 노드 동기화 작업 중 성능이 저하될 수 있습니다. 이러한 암호화가 구현 성능에 미치는 영향을 확인하려면 미사용 데이터 암호화와 데이터를 암호화하지 않은 경우를 비교해 벤치마크하세요.

AWS KMS에서 고객 관리형 키 사용

ElastiCache는 저장 시 암호화에 대한 대칭 고객 관리형 AWS KMS 키(KMS 키)를 지원합니다. 고객 관리형 KMS 키는 사용자가 생성, 소유 및 관리하는 AWS 계정의 암호화 키입니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 AWS KMS 키를 참조하세요. ElastiCache와 함께 사용하기 전에 AWS KMS에서 키를 생성해야 합니다.

AWS KMS 루트 키 생성 방법을 알아보려면 AWS Key Management Service 개발자 안내서에서 키 생성을 참조하세요.

ElastiCache를 사용하면 AWS KMS와 통합할 수 있습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서권한 부여 사용을 참조하세요. Amazon ElastiCache와 AWS KMS의 통합을 활성화하기 위해 고객이 별도로 취해야 할 조치는 없습니다.

kms:ViaService 조건 키는 AWS KMS 키(KMS 키)의 사용을 지정된 AWS 서비스로부터의 요청으로 제한합니다. ElastiCache에서 kms:ViaService를 사용하려면 조건 키 elasticache.AWS_region.amazonaws.comdax.AWS_region.amazonaws.com 모두에 ViaService 이름을 포함시켜야 합니다. 자세한 내용은 kms:ViaService 섹션을 참조하세요.

AWS CloudTrail을 사용하여 Amazon ElastiCache가 사용자 대신 AWS Key Management Service에 전송하는 요청을 추적할 수 있습니다. 고객 관리형 키와 관련된 AWS Key Management Service에 대한 모든 API 호출에는 해당 CloudTrail 로그가 있습니다. ListGlants KMS API 호출을 통해 ElastiCache가 생성하는 그랜트를 볼 수도 있습니다.

고객 관리형 키를 사용하여 복제 그룹을 암호화하면 복제 그룹에 대한 모든 백업이 다음과 같이 암호화됩니다.

  • 자동 일일 백업은 클러스터와 연결된 고객 관리형 키를 사용하여 암호화됩니다.

  • 복제 그룹을 삭제할 때 생성된 최종 백업은 복제 그룹에 연결된 고객 관리형 키를 사용하여 암호화됩니다.

  • 수동으로 생성한 백업은 복제 그룹에 연결된 KMS 키를 사용하기 위해 기본적으로 암호화됩니다. 다른 고객 관리형 키를 선택하여 이를 재정의할 수 있습니다.

  • 백업 복사는 기본적으로 소스 백업과 연결된 고객 관리형 키를 사용합니다. 다른 고객 관리형 키를 선택하여 이를 재정의할 수 있습니다.

참고
  • 선택한 Amazon S3 버킷으로 백업을 내보낼 때 고객 관리형 키를 사용할 수 없습니다. 그러나 Amazon S3으로 내보낸 모든 백업은 서버 측 암호화를 사용하여 암호화됩니다. 백업 파일을 새 S3 개체로 복사하고 고객 관리형 KMS 키를 사용하여 암호화하거나, KMS 키를 사용하여 기본 암호화로 설정된 다른 S3 버킷에 파일을 복사하거나, 파일 자체에서 암호화 옵션을 변경할 수 있습니다.

  • 또한 고객 관리형 키를 사용하여 암호화에 고객 관리형 키를 사용하지 않는 복제 그룹에 대해 수동으로 생성한 백업을 암호화할 수도 있습니다. 이 옵션을 사용하면 원래 복제 그룹에서 데이터가 암호화되지 않더라도 KMS 키를 사용하여 Amazon S3에 저장된 백업 파일이 암호화됩니다.

백업에서 복원하면 새 복제 그룹을 생성할 때 사용할 수 있는 암호화 옵션과 유사한 암호화 옵션을 선택할 수 있습니다.

  • 캐시를 암호화하는 데 사용한 키에 대해 키를 삭제하거나, 키를 비활성화하거나, 권한 부여를 취소하면 캐시를 복구할 수 없게 됩니다. 즉, 하드웨어 장애 후 이를 수정하거나 복구할 수 없습니다. AWS KMS에서는 최소 7일 이상의 대기 기간이 지난 후에만 루트 키를 삭제합니다. 키를 삭제한 후 다른 고객 관리형 키를 사용하여 보관용 백업을 생성할 수 있습니다.

  • 자동 키 교체 기능은 AWS KMS 루트 키의 속성을 그대로 보존하기 때문에 키가 교체되더라도 ElastiCache 데이터에 대한 액세스 권한에는 아무런 영향도 끼치지 않습니다. 암호화된 Amazon ElastiCache 캐시는 새로운 루트 키 생성 및 기존 키에 대한 모든 참조를 업데이트하는 수동 키 교체를 지원하지 않습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 AWS KMS 키 교체를 참조하세요.

  • KMS 키를 사용하여 ElastiCache 캐시를 암호화하려면 캐시당 1개의 권한이 필요합니다. 이 권한은 캐시의 수명 기간 동안 사용됩니다. 또한 백업 생성 중에는 백업당 하나의 권한이 사용됩니다. 이 권한은 백업이 생성되면 폐기됩니다.

  • AWS KMS 그랜트 및 제한에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서에서 제한을 참조하세요.

저장 데이터 암호화 활성화

모든 서버리스 캐시에는 저장 시 암호화가 활성화되어 있습니다.

자체 설계된 클러스터를 생성할 때 AtRestEncryptionEnabled 파라미터를 true로 설정하여 저장 시 암호화를 활성화할 수 있습니다. 기존 복제 그룹에 대해서는 미사용 데이터 암호화를 설정할 수 없습니다.

ElastiCache 캐시를 생성할 때 저장 시 암호화를 활성화할 수 있습니다. AWS Management Console, AWS CLI 또는 ElastiCache API를 사용해 이 작업을 수행할 수 있습니다.

캐시를 생성할 때 다음 옵션 중 하나를 선택할 수 있습니다.

  • 기본값 – 이 옵션은 저장된 서비스 관리 암호화를 사용합니다.

  • 고객 관리형 키 – 이 옵션을 통해 저장된 데이터 암호화에 대한 AWS KMS의 키 ID/ARN을 제공합니다.

AWS KMS 루트 키 생성 방법을 알아보려면 AWS Key Management Service 개발자 안내서에서 키 생성을 참조하세요.

Redis 복제 그룹을 생성할 때에만 미사용 데이터 암호화를 활성화할 수 있습니다. 미사용 데이터 암호화를 활성화하려는 기존 복제 그룹이 있으면 다음 작업을 수행하세요.

기존 복제 그룹에 대해 미사용 데이터 암호화를 활성화하려면
  1. 기존 복제 그룹의 백업을 수동으로 생성합니다. 자세한 내용은 수동 백업 지원을 참조하세요.

  2. 백업에서 복원하여 새 복제 그룹을 생성합니다. 새 복제 그룹에 대해 미사용 데이터 암호화를 활성화합니다. 자세한 내용은 백업에서 새 캐시로 복원을 참조하세요.

  3. 새 복제 그룹을 가리키도록 애플리케이션에서 엔드포인트를 업데이트합니다.

  4. 이전 복제 그룹을 삭제합니다. 자세한 내용은 클러스터 삭제 또는 복제 그룹 삭제 섹션을 참조하세요.

AWS Management Console를 사용하여 미사용 데이터 암호화 활성화

모든 서버리스 캐시에는 저장 시 암호화가 활성화되어 있습니다. 기본적으로 AWS 소유의 KMS 키가 데이터를 암호화하는 데 사용됩니다. 자체 AWS KMS 키를 선택하려면 다음과 같이 진행합니다.

  • 기본 설정 섹션을 펼칩합니다.

  • 기본 설정 섹션에서 기본 설정 사용자 지정을 선택합니다.

  • 보안 섹션에서 보안 설정 사용자 지정을 선택합니다.

  • 암호화 키 설정에서 고객 관리형 CMK를 선택합니다.

  • AWS KMS 키 설정에서 키를 선택합니다.

자체 캐시를 설계할 때 '간편한 생성' 메서드를 사용하는 '개발 및 테스트' 및 '프로덕션' 구성에서는 기본 키를 사용하여 저장 시 암호화가 활성화됩니다. 구성을 직접 선택할 때 다음과 같이 진행합니다.

  • 엔진 버전으로 버전 3.2.6, 4.0.10 또는 이후 버전을 선택합니다.

  • 저장 시 암호화활성화 옵션 옆에서 확인란을 클릭합니다.

  • 기본 키 또는 고객 관리형 CMK를 선택합니다.

단계별 절차의 경우 다음을 참조하세요.

AWS CLI를 사용하여 미사용 데이터 암호화 활성화

AWS CLI를 사용하여 Redis 클러스터를 생성하는 경우 미사용 데이터 암호화를 활성화하려면 복제 그룹을 생성할 때 --at-rest-encryption-enabled 파라미터를 사용합니다.

다음 작업은 세 개의 노드(--num-cache-clusters) 즉, 기본 한 개와 읽기 전용 복제본 두 개가 있는 Redis(클러스터 모드 비활성화됨) 복제 그룹 my-classic-rg를 생성합니다. 미사용 데이터 암호화가 이 복제 그룹에 대해 활성화되어 있습니다(--at-rest-encryption-enabled).

다음 파라미터와 해당 값은 복제 그룹에 대한 암호화를 활성화하는 데 필요합니다.

키 파라미터
  • --engine - 반드시 redis여야 합니다.

  • --engine-version - 3.2.6, 4.0.10 또는 이상이어야 합니다.

  • --at-rest-encryption-enabled - 미사용 데이터 암호화를 활성화하기 위해 필요합니다.

예 1: 복제본이 있는 Redis(클러스터 모드 비활성화됨) 클러스터

Linux, macOS, Unix의 경우:

aws elasticache create-replication-group \ --replication-group-id my-classic-rg \ --replication-group-description "3 node replication group" \ --cache-node-type cache.m4.large \ --engine redis \ --at-rest-encryption-enabled \ --num-cache-clusters 3

Windows의 경우:

aws elasticache create-replication-group ^ --replication-group-id my-classic-rg ^ --replication-group-description "3 node replication group" ^ --cache-node-type cache.m4.large ^ --engine redis ^ --at-rest-encryption-enabled ^ --num-cache-clusters 3 ^

추가 정보는 다음을 참조하세요.

 

다음 작업은 3개의 노드 그룹 또는 샤드(--num-node-groups)가 있는 Redis(클러스터 모드 활성화됨) 복제 그룹 my-clustered-rg를 생성합니다. 각 복제 그룹에는 기본 복제본 한 개와 읽기 전용 복제본 두 개, 이렇게 세 개의 노드가 있습니다(--replicas-per-node-group). 미사용 데이터 암호화가 이 복제 그룹에 대해 활성화되어 있습니다(--at-rest-encryption-enabled).

다음 파라미터와 해당 값은 복제 그룹에 대한 암호화를 활성화하는 데 필요합니다.

키 파라미터
  • --engine - 반드시 redis여야 합니다.

  • --engine-version - 4.0.10 이상이어야 합니다.

  • --at-rest-encryption-enabled - 미사용 데이터 암호화를 활성화하기 위해 필요합니다.

  • --cache-parameter-group - 이 클러스터 모드가 활성화된 복제 그룹을 만들려면 default-redis4.0.cluster.on 또는 이 클러스터에서 파생된 클러스터여야 합니다.

예 2: Redis(클러스터 모드 활성화됨) 클러스터

Linux, macOS, Unix의 경우:

aws elasticache create-replication-group \ --replication-group-id my-clustered-rg \ --replication-group-description "redis clustered cluster" \ --cache-node-type cache.m3.large \ --num-node-groups 3 \ --replicas-per-node-group 2 \ --engine redis \ --engine-version 6.2 \ --at-rest-encryption-enabled \ --cache-parameter-group default.redis6.x.cluster.on

Windows의 경우:

aws elasticache create-replication-group ^ --replication-group-id my-clustered-rg ^ --replication-group-description "redis clustered cluster" ^ --cache-node-type cache.m3.large ^ --num-node-groups 3 ^ --replicas-per-node-group 2 ^ --engine redis ^ --engine-version 6.2 ^ --at-rest-encryption-enabled ^ --cache-parameter-group default.redis6.x.cluster.on

추가 정보는 다음을 참조하세요.

참고