관리형 쿼리 결과 암호화
Athena는 관리형 쿼리 결과 암호화를 위해 다음의 옵션을 제공합니다.
AWS 소유 키를 사용하여 암호화
관리형 쿼리 결과를 사용할 때의 기본 옵션입니다. 이 옵션은 쿼리 결과를 AWS 소유 키를 사용해 암호화할 것임을 나타냅니다. AWS 소유 키는 AWS 계정에 저장되지 않으며 AWS가 소유한 KMS 키 모음의 일부입니다. AWS 소유 키의 사용에는 요금이 부과되지 않으며, 계정의 AWS KMS 할당량에 포함되지 않습니다.
AWS KMS 고객 관리형 키를 사용하여 암호화
고객 관리형 키는 사용자가 생성, 소유 및 관리하는 AWS 계정의 KMS 키입니다. 사용자는 키 정책 설정 및 관리, IAM 정책, 권한 부여, 해당 권한의 활성화 및 비활성화, 암호화 구성 요소 교체, 태그 추가, 이에 대한 별칭 생성 및 삭제를 위한 KMS 예약 등을 포함해 KMS 키에 대한 완전한 제어 권한을 가집니다. 자세한 내용은 고객 관리형 키를 참조하세요.
Athena가 결과 암호화에 고객 관리형 키를 사용하는 방식
고객 관리형 키를 지정하면 Athena가 이를 사용하여 쿼리 결과가 관리형 쿼리 결과에 저장될 때 암호화합니다. GetQueryResults
를 호출할 때 동일한 키를 사용하여 결과를 복호화합니다. 고객 관리형 키의 상태를 비활성화로 설정하거나 삭제를 예약하면 Athena 및 모든 사용자가 해당 키를 사용하여 결과를 암호화하거나 복호화할 수 없습니다.
Athena는 봉투 암호화 및 키 계층 구조를 사용하여 데이터를 암호화합니다. AWS KMS 암호화 키는 이 키 계층 구조의 루트 키를 생성하고 복호화하는 데 사용됩니다.
각 결과는 암호화할 때 작업 그룹에 구성된 고객 관리형 키를 사용하여 암호화됩니다. 키를 다른 고객 관리형 키 또는 AWS 소유 키로 전환해도 새 키가 기존 결과를 다시 암호화하지 않습니다. 특정 고객 관리형 키를 삭제하고 비활성화하는 것은 해당 키가 암호화한 결과의 복호화에만 영향을 미칩니다.
Athena가 결과를 암호화하고 복호화하기 위해 kms:Decrypt
, kms:GenerateDataKey
및 kms:DescribeKey
작업을 수행하려면 암호화 키에 대한 액세스 권한이 필요합니다. 자세한 내용은 Amazon S3의 암호화 데이터 권한 섹션을 참조하세요.
StartQueryExecution
API를 사용하여 쿼리를 제출하고 GetQueryResults
를 사용해 결과를 읽는 보안 주체는 Athena 및 Amazon S3 권한 외에도 kms:Decrypt
, kms:GenerateDataKey
및 kms:DescribeKey
작업에 대한 고객 관리형 키의 권한도 있어야 합니다. 자세한 내용은 AWS KMS에서 키 정책을 참조하세요.