저장 중 암호화 - Amazon Athena

저장 중 암호화

동일한 리전 및 제한된 수의 리전에 있는 Amazon S3의 암호화된 데이터에 대해 Amazon Athena에서 쿼리를 실행할 수 있습니다. Amazon S3의 쿼리 결과와 AWS Glue 데이터 카탈로그의 데이터를 암호화할 수도 있습니다.

다음과 같은 Athena의 자산을 암호화할 수 있습니다.

참고

Athena를 사용하여 암호화된 테이블을 읽을 때 Athena는 쿼리 결과에 대한 암호화 옵션이 아니라 테이블 데이터에 지정된 암호화 옵션을 사용합니다. 쿼리 결과 및 테이블 데이터에 대해 별도의 암호화 방법 또는 키가 구성된 경우 Athena는 쿼리 결과를 암호화하거나 해독하는 데 사용되는 암호화 옵션 및 키를 사용하지 않고 테이블 데이터를 읽습니다.

하지만 Athena를 사용하여 암호화된 데이터가 있는 테이블에 데이터를 삽입하는 경우 Athena는 쿼리 결과에 지정된 암호화 구성을 사용하여 삽입된 데이터를 암호화합니다. 예를 들어 쿼리 결과에 CSE_KMS 암호화를 지정하는 경우 Athena는 쿼리 결과 암호화에 사용한 것과 동일한 AWS KMS 키 ID를 사용하여 CSE_KMS와 함께 삽입된 테이블 데이터를 암호화합니다.

지원되는 Amazon S3 암호화 옵션

Athena에서는 Amazon S3의 데이터 세트 및 쿼리 결과에 대해 다음과 같은 암호화 옵션을 지원합니다.

암호화 유형 설명 리전 간 지원
SSE-S3 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE).
SSE-KMS AWS Key Management Service 고객 관리형 키를 사용한 서버 측 암호화(SSE).
참고

이 암호화 유형을 사용하면 테이블을 생성할 때 Athena에서 데이터 암호화 표시를 요구하지 않습니다.

CSE-KMS

AWS KMS 고객 관리형 키를 사용한 클라이언트 측 암호화(CSE) Athena에서 이 옵션을 적용하려면 CREATE TABLE 문과, 'has_encrypted_data'='true'를 지정하는 TBLPROPERTIES 절을 사용해야 합니다. 자세한 내용은 Amazon S3의 암호화된 데이터세트에 기반한 테이블 생성 단원을 참조하세요.

아니요

Amazon S3를 사용한 AWS KMS 암호화에 관한 자세한 내용은 AWS Key Management Service 개발자 안내서에서 AWS Key Management Service란 무엇인가?Amazon Simple Storage Service(Amazon S3)의 AWS KMS 사용 방법을 참조하세요. Athena에 SSE-KMS 또는 CSE-KMS를 사용하는 방법에 대한 자세한 내용은 AWS Big Data BlogLaunch: Amazon Athena adds support for querying encrypted data를 참조하세요.

지원되지 않는 옵션

다음 암호화 옵션은 지원되지 않습니다.

  • 고객 제공 키가 있는 SSE(SSE-C).

  • 클라이언트 측 관리형 키를 사용한 클라이언트 측 암호화.

  • 비대칭 키.

Amazon S3 암호화 옵션을 비교하려면 Amazon Simple Storage Service 사용 설명서암호화를 사용한 데이터 보호를 참조하세요.

클라이언트 측 암호화를 위한 도구

클라이언트 측 암호화를 위해 다음 두 가지 도구를 사용할 수 있습니다.

이러한 도구는 호환되지 않으며 한 도구를 사용하여 암호화된 데이터는 다른 도구에서 복호화할 수 없습니다. Athena는 Amazon S3 암호화 클라이언트만 직접적으로 지원합니다. SDK를 사용하여 데이터를 암호화하면 Athena에서 쿼리를 실행할 수 있지만 데이터가 암호화된 텍스트로 반환됩니다.

Athena를 사용하여 AWS 암호화 SDK로 암호화된 데이터를 쿼리하려면 데이터를 다운로드하고 복호화한 다음 Amazon S3 암호화 클라이언트를 사용하여 데이터를 다시 암호화해야 합니다.

Amazon S3의 암호화 데이터 권한

Amazon S3에서 사용한 암호화 유형에 따라, Athena에서 사용한 정책에 "허용" 작업이라고 하는 권한을 추가해야 할 수도 있습니다.

  • SSE-S3 – 암호화에 SSE-S3를 사용하면 Athena 사용자는 정책에 추가 권한이 필요하지 않습니다. 적절한 Amazon S3 위치(및 Athena 작업)에 대해 적절한 Amazon S3 권한을 갖는 것으로 충분합니다. 적절한 Athena 및 Amazon S3 권한을 허용하는 정책에 대한 자세한 내용은 Amazon Athena의 AWS 관리형 정책Athena에서 Amazon S3에 대한 액세스 제어 단원을 참조하세요.

  • AWS KMS – 암호화에 AWS KMS를 사용한다면, Athena 및 Amazon S3 권한 외에 특정 AWS KMS 작업을 수행할 수 있는 권한을 Athena 사용자에게 허용해야 합니다. Amazon S3에서 데이터를 암호화하는 데 사용되는 AWS KMS 고객 관리형 CMK의 주요 정책을 편집하여 이러한 작업을 허용합니다. 키 사용자를 적절한 AWS KMS 키 정책에 추가하기 위해 AWS KMS 콘솔을 사용할 수 있습니다(https://console.aws.amazon.com/kms). AWS KMS 키 정책에 사용자를 추가하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서키 사용자가 CMK를 사용하도록 허용을 참조하세요.

    참고

    고급 키 정책 관리자는 키 정책을 세부적으로 조정할 수 있습니다. kms:Decrypt는 Athena 사용자가 암호화된 데이터 세트로 작업할 때 허용되는 최소 작업입니다. 암호화된 쿼리 결과로 작업할 때 허용되는 최소 작업은 kms:GenerateDataKeykms:Decrypt입니다.

    AWS KMS로 암호화된 객체가 다수 포함되어 있는 Amazon S3에서 Athena를 사용해 데이터 세트를 쿼리한다면 AWS KMS가 쿼리 결과를 제한할 수 있습니다. 다수의 작은 객체가 있는 경우 이런 현상이 발생할 가능성이 높습니다. Athena가 재시도 요청을 취소해도 제한 오류가 계속 발생할 수 있습니다. 많은 수의 암호화된 객체로 작업하고 이 문제가 발생하는 경우 Amazon S3 버킷 키를 활성화하여 KMS에 대한 호출 수를 줄이는 것이 한 가지 방법입니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서Amazon S3 버킷 키를 사용하여 SSE-KMS 비용 절감을 참조하세요. 또 다른 옵션은 AWS KMS에 대한 서비스 할당량을 늘리는 것입니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 할당량을 참조하세요.

Amazon S3와 Athena 사용 시 권한에 대한 문제 해결 정보는 권한 주제의 Athena의 문제 해결 단원을 참조하세요.

AWS Glue 데이터 카탈로그에 저장된 암호화된 메타데이터 권한

AWS Glue Data Catalog의 메타데이터를 암호화한다면, Athena 액세스에 사용한 정책에 "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" 작업을 추가해야 합니다. 자세한 내용은 Athena에서 AWS Glue Data Catalog의 암호화된 메타데이터에 대한 액세스 구성을 참조하세요.