Amazon S3의 암호화된 데이터세트에 기반한 테이블 생성 - Amazon Athena

Amazon S3의 암호화된 데이터세트에 기반한 테이블 생성

테이블을 만들 때 Amazon S3의 데이터 세트가 암호화되어 있음을 Athena에 표시합니다. SSE-KMS 사용 시에는 필요하지 않습니다. SSE-S3 및 AWS KMS 암호화 모두 Athena가 데이터 세트를 복호화하고 테이블을 생성하는 방식을 결정할 수 있으므로 키 정보를 제공할 필요가 없습니다.

이번 주제 앞 부분에서 설명했듯이, 테이블을 만드는 사용자를 포함해 쿼리를 실행하는 사용자는 앞서 설명한 권한을 가지고 있어야 합니다.

중요

Amazon EMR을 EMRFS와 함께 사용해 암호화된 Parquet 파일을 업로드한다면, fs.s3n.multipart.uploads.enabledfalse로 설정해 멀티파트 업로드를 비활성화해야 합니다. 이 작업을 하지 않으면, Athena는 Parquet 파일 길이를 확인하지 못하며 HIVE_CANNOT_OPEN_SPLIT 오류가 발생합니다. 자세한 내용은 Amazon EMR 관리 안내서Amazon S3에 대한 멀티파트 업로드 구성을 참조하세요.

Amazon S3에서 데이터 세트가 암호화되는지 표시하려면 다음 단계 중 하나를 수행합니다. SSE-KMS를 사용한다면 이 단계는 필요하지 않습니다.

  • 다음 예제처럼 CREATE TABLE 문에서 'has_encrypted_data'='true'를 지정하는 TBLPROPERTIES 절을 사용합니다.

    CREATE EXTERNAL TABLE 'my_encrypted_data' ( `n_nationkey` int, `n_name` string, `n_regionkey` int, `n_comment` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder_with_my_encrypted_data/' TBLPROPERTIES ( 'has_encrypted_data'='true')
  • statement.executeQuery()를 사용해 CREATE TABLE 문을 실행하는 경우 JDBC 드라이버를 사용해 이전 예제처럼 TBLPROPERTIES 값을 설정합니다.

  • Athena 콘솔을 사용하여 양식을 사용하여 테이블을 생성하고 테이블 위치를 지정할 때 암호화된 데이터 세트(Encrypted data set) 옵션을 선택합니다.

    테이블 추가 양식에서 암호화된 데이터 세트(Encrypted data set)을 선택합니다.

Athena 콘솔 테이블 목록에서 암호화된 테이블은 키 모양 아이콘을 표시합니다.

암호화 테이블 아이콘