관리형 쿼리 결과
관리형 쿼리 결과를 사용하면 쿼리 결과 저장소로 사용할 Amazon S3 버킷을 제공하지 않고도 SQL 쿼리를 실행할 수 있습니다. 이렇게 하면 S3 버킷을 자체적으로 프로비저닝, 관리, 액세스 제어 및 정리할 필요가 없습니다. 시작하려면 새 작업 그룹을 생성하거나 기존 작업 그룹을 편집합니다. 쿼리 결과 구성에서 Athena 관리형을 선택합니다.
주요 기능
-
쿼리 실행 전에 S3 버킷 위치를 선택해야 하는 요구 사항을 제거하여 워크플로를 간소화합니다.
-
관리형 쿼리 결과 사용 및 쿼리 결과 자동 삭제에 추가 비용이 없어 관리 오버헤드와 별도의 S3 버킷 정리 프로세스의 필요성을 줄여줍니다.
-
간단하게 시작하기: 새 작업 그룹과 기존 작업 그룹이 관리형 쿼리 결과를 사용하도록 쉽게 구성할 수 있습니다. AWS 계정에서 Athena 관리형 쿼리 결과와 고객 관리형 쿼리 결과를 조합할 수 있습니다.
-
GetQueryResults
와GetQueryResultsStream
을 개별 작업 그룹으로 연결해 결과 읽기에 액세스할 수 있는 IAM 권한을 간소화했습니다. -
쿼리 결과는 선택한 AWS 소유 키 또는 고객 소유 키를 사용해 자동으로 암호화됩니다.
고려 사항 및 제한 사항
-
쿼리 결과에 대한 액세스는 Athena 작업 그룹 수준에서 관리됩니다. 이를 위해서는 특정 작업 그룹에
GetQueryResults
및GetQueryResultsStream
IAM 작업에 대한 명시적 권한이 필요합니다.GetQueryResults
작업은 완료된 쿼리 결과를 페이지 매김 형식으로 검색할 수 있는 사용자를 결정하고,GetQueryResultsStream
작업은 완료된 쿼리 결과를 스트리밍할 수 있는 사용자를 결정합니다(보통 Athena 드라이버에서 사용). 콘솔에서는 쿼리 결과 파일이 200MB보다 큰 경우 다운로드할 수 없습니다. 별도로 다운로드할 수 있는 위치에 200MB보다 큰 결과를 쓰려면
UNLOAD
문을 사용합니다.-
관리형 쿼리 결과 기능은 쿼리 결과 재사용을 지원하지 않습니다.
-
쿼리 결과는 24시간 동안 사용할 수 있습니다. 이 기간 동안 쿼리 결과는 무료로 저장됩니다. 이 기간이 지나면 쿼리 결과는 자동으로 삭제됩니다.
관리형 쿼리 결과를 사용하여 작업 그룹 생성 또는 편집
콘솔에서 관리형 쿼리 결과로 작업 그룹을 생성하거나 기존 작업 그룹을 업데이트:
-
https://console.aws.amazon.com/athena/
에서 Athena 콘솔을 엽니다. 왼쪽 탐색 창에서 작업 그룹을 선택합니다.
작업 그룹 생성을 선택하여 새 작업 그룹을 생성하거나 목록에서 기존 작업 그룹을 편집합니다.
-
쿼리 결과 구성에서 Athena 관리형을 선택합니다.
-
쿼리 결과 암호화에서 원하는 암호화 옵션을 선택합니다. 자세한 내용은 쿼리 결과 암호화 선택 섹션을 참조하세요.
-
기타 모든 필수 세부 정보를 입력하고 변경 사항 저장을 선택합니다.
쿼리 결과 암호화 선택
암호화 구성에는 두 가지 옵션이 있습니다.
-
AWS 소유 키를 사용하여 암호화 - 관리형 쿼리 결과를 사용할 때 기본 옵션입니다. 쿼리 결과를 AWS 소유 키로 암호화하려면 이 옵션을 선택합니다.
-
고객 관리형 키를 사용하여 암호화 - 고객 관리형 키로 쿼리 결과를 암호화하고 복호화하려면 이 옵션을 선택합니다. 고객 관리형 키를 사용하려면 키 정책 섹션의 보안 주체 요소에 Athena 서비스를 추가합니다. 자세한 내용은 관리형 쿼리 결과에 대한 AWS KMS 키 정책 설정 섹션을 참조하세요. 쿼리를 성공적으로 실행하려면 쿼리를 실행하는 사용자기 AWS KMS 키에 액세스할 수 있는 권한이 필요합니다.
관리형 쿼리 결과에 대한 AWS KMS 키 정책 설정
키 정책에 대한 Principal
섹션은 이 키를 사용할 수 있는 사용자를 지정합니다. 관리형 쿼리 결과 기능은 Principal
섹션에서 지정해야 하는 보안 주체 encryption.athena.amazonaws.com
를 소개합니다. 이 서비스 보안 주체는 특히 Athena가 소유하지 않은 키에 액세스하는 용도로 사용합니다. 또한 관리형 결과에 액세스하는 데 사용하는 키 정책에 kms:Decrypt
, kms:GenerateDataKey
, 및 kms:DescribeKey
작업을 추가해야 합니다. 이 세 가지 작업이 최소한 허용되는 작업입니다.
관리형 쿼리 결과는 암호화 컨텍스트에 사용자의 작업 그룹 ARN을 사용합니다. Principal
섹션이 AWS 서비스이므로 키 정책 조건에 aws:sourceArn
및 aws:sourceAccount
도 추가해야 합니다. 다음 예제에서는 단일 작업 그룹에 대해 최소 권한을 보유한 AWS KMS 키 정책을 보여줍니다.
{ "Sid": "Allow athena service principal to use the key", "Effect": "Allow", "Principal": { "Service": "encryption.athena.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:{
account-id
}:key/{key-id
}", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:athena:arn": "arn:aws:athena:us-east-1:{account-id
}:workgroup/{workgroup-name
}", "aws:SourceArn": "arn:aws:athena:us-east-1:{account-id
}:workgroup/{workgroup-name
}" }, "StringEquals": { "aws:SourceAccount": "{account-id
}" } }
다음 예제 AWS KMS 키 정책은 동일한 계정 account-id
내의 모든 작업 그룹이 동일한 AWS KMS 키를 사용하도록 허용합니다.
{ "Sid": "Allow athena service principal to use the key", "Effect": "Allow", "Principal": { "Service": "encryption.athena.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:
account-id
:key/{key-id
}", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:athena:arn": "arn:aws:athena:us-east-1:account-id
:workgroup/*", "aws:SourceArn": "arn:aws:athena:us-east-1:account-id
:workgroup/*" }, "StringEquals": { "aws:SourceAccount": "account-id
" } } }
Athena 및 Amazon S3 권한 외에도 kms:GenerateDataKey
및 kms:Decrypt
작업을 수행할 수 있는 권한도 확보해야 합니다. 자세한 내용은 Amazon S3의 암호화 데이터 권한 섹션을 참조하세요.
관리형 쿼리 결과 암호화에 대한 자세한 내용은 관리형 쿼리 결과 암호화 섹션을 참조하세요.