Amazon S3의 암호화된 데이터세트에 기반한 테이블 생성
테이블을 만들 때 Amazon S3의 데이터 세트가 암호화되어 있음을 Athena에 표시합니다. SSE-KMS 사용 시에는 필요하지 않습니다. SSE-S3 및 AWS KMS 암호화 모두 Athena가 데이터 세트를 복호화하고 테이블을 생성하는 방식을 결정할 수 있으므로 키 정보를 제공할 필요가 없습니다.
이번 주제 앞 부분에서 설명했듯이, 테이블을 만드는 사용자를 포함해 쿼리를 실행하는 사용자는 앞서 설명한 권한을 가지고 있어야 합니다.
중요
Amazon EMR을 EMRFS와 함께 사용해 암호화된 Parquet 파일을 업로드한다면, fs.s3n.multipart.uploads.enabled
를 false
로 설정해 멀티파트 업로드를 비활성화해야 합니다. 이 작업을 하지 않으면, 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) 옵션을 선택합니다.
Athena 콘솔 테이블 목록에서 암호화된 테이블은 키 모양 아이콘을 표시합니다.