Amazon Redshift에서 AWS KMS 사용 방법 - AWS Key Management Service

Amazon Redshift에서 AWS KMS 사용 방법

이 주제에서는 Amazon Redshift가 AWS KMS를 사용하여 데이터를 암호화하는 방법에 대해 설명합니다.

Amazon Redshift 암호화

Amazon Redshift 데이터 웨어하우스는 노드라는 컴퓨팅 리소스의 모음으로, 노드는 클러스터라는 그룹을 구성합니다. 각 클러스터는 Amazon Redshift 엔진을 실행하며, 하나 이상의 데이터베이스를 포함합니다.

Amazon Redshift는 암호화를 위해 4개 티어, 키 기반 계층 구조를 사용합니다. 이 계층 구조는 데이터 암호화 키, 데이터베이스 키, 클러스터 키, 루트 키로 구성됩니다. AWS KMS key를 루트 키로 사용할 수 있습니다.

데이터 암호화 키는 클러스터의 데이터 블록을 암호화합니다. 각 데이터 블록은 임의로 생성된 AES-256에 할당됩니다. 이러한 키는 클러스터에 대한 데이터베이스 키를 사용해 암호화됩니다.

데이터베이스 키는 클러스터의 데이터 암호화 키를 암호화합니다. 데이터베이스 키는 임의로 생성된 AES-256 키입니다. 이 키는 Amazon Redshift 클러스터와 분리된 네트워크의 디스크에 저장되며 보안 채널을 통해 클러스터로 전달됩니다.

클러스터 키는 Amazon Redshift 클러스터에 대한 데이터베이스 키를 암호화합니다. AWS KMS, AWS CloudHSM 또는 외부 하드웨어 보안 모듈(HSM)을 이용해 클러스터 키를 관리할 수 있습니다. 자세한 내용은 Amazon Redshift 데이터베이스 암호화 문서를 참조하십시오.

Amazon Redshift 콘솔에서 해당 확인란을 선택하여 암호화를 요청할 수 있습니다. 암호화 상자 아래에 표시되는 목록에서 하나를 선택해 사용할 고객 관리형 키를 지정할 수 있습니다. 고객 관리형 키를 지정하지 않으면 Amazon Redshift는 계정에서 Amazon Redshift용 AWS 관리형 키를 사용합니다.

중요

Amazon Redshift는 대칭 암호화 KMS 키만 지원합니다. Amazon Redshift 암호화 워크플로에서 비대칭 KMS 키를 사용할 수 없습니다. KMS 키가 대칭 또는 비대칭인지 여부를 확인하는 방법은 비대칭 KMS 키 식별 단원을 참조하세요.

암호화 컨텍스트

AWS KMS와 통합된 각 서비스는 데이터 키 요청, 암호화, 암호화 해제 시 암호화 컨텍스트를 지정합니다. 암호화 컨텍스트는 데이터 무결성 확인을 위해 AWS KMS에서 사용하는 추가 인증 데이터(AAD)입니다. 즉 암호화 작업에 대해 암호화 컨텍스트가 지정되면 서비스가 해독 작업에 대해서도 이를 지정합니다. 그렇지 않으면 해독이 실패하게 됩니다. Amazon Redshift는 암호화 컨텍스트에 대해 클러스터 ID와 생성 시간을 사용합니다. CloudTrail 로그 파일의 requestParameters 필드에 암호화 컨텍스트가 이와 비슷하게 표시됩니다.

"encryptionContext": { "aws:redshift:arn": "arn:aws:redshift:region:account_ID:cluster:cluster_name", "aws:redshift:createtime": "20150206T1832Z" },

CloudTrail 로그에서 클러스터 이름을 검색하여 AWS KMS key(KMS 키)를 사용하여 수행한 작업을 확인할 수 있습니다. 이러한 작업으로는 클러스터 암호화, 클러스터 해독, 데이터 키 생성 등이 있습니다.