관리형 쿼리 결과 - Amazon Athena

관리형 쿼리 결과

관리형 쿼리 결과를 사용하면 쿼리 결과 저장소로 사용할 Amazon S3 버킷을 제공하지 않고도 SQL 쿼리를 실행할 수 있습니다. 이렇게 하면 S3 버킷을 자체적으로 프로비저닝, 관리, 액세스 제어 및 정리할 필요가 없습니다. 시작하려면 새 작업 그룹을 생성하거나 기존 작업 그룹을 편집합니다. 쿼리 결과 구성에서 Athena 관리형을 선택합니다.

주요 기능
  • 쿼리 실행 전에 S3 버킷 위치를 선택해야 하는 요구 사항을 제거하여 워크플로를 간소화합니다.

  • 관리형 쿼리 결과 사용 및 쿼리 결과 자동 삭제에 추가 비용이 없어 관리 오버헤드와 별도의 S3 버킷 정리 프로세스의 필요성을 줄여줍니다.

  • 간단하게 시작하기: 새 작업 그룹과 기존 작업 그룹이 관리형 쿼리 결과를 사용하도록 쉽게 구성할 수 있습니다. AWS 계정에서 Athena 관리형 쿼리 결과와 고객 관리형 쿼리 결과를 조합할 수 있습니다.

  • GetQueryResultsGetQueryResultsStream을 개별 작업 그룹으로 연결해 결과 읽기에 액세스할 수 있는 IAM 권한을 간소화했습니다.

  • 쿼리 결과는 선택한 AWS 소유 키 또는 고객 소유 키를 사용해 자동으로 암호화됩니다.

고려 사항 및 제한 사항

  • 쿼리 결과에 대한 액세스는 Athena 작업 그룹 수준에서 관리됩니다. 이를 위해서는 특정 작업 그룹에 GetQueryResultsGetQueryResultsStream IAM 작업에 대한 명시적 권한이 필요합니다. GetQueryResults 작업은 완료된 쿼리 결과를 페이지 매김 형식으로 검색할 수 있는 사용자를 결정하고, GetQueryResultsStream 작업은 완료된 쿼리 결과를 스트리밍할 수 있는 사용자를 결정합니다(보통 Athena 드라이버에서 사용).

  • 콘솔에서는 쿼리 결과 파일이 200MB보다 큰 경우 다운로드할 수 없습니다. 별도로 다운로드할 수 있는 위치에 200MB보다 큰 결과를 쓰려면 UNLOAD 문을 사용합니다.

  • 관리형 쿼리 결과 기능은 쿼리 결과 재사용을 지원하지 않습니다.

  • 쿼리 결과는 24시간 동안 사용할 수 있습니다. 이 기간 동안 쿼리 결과는 무료로 저장됩니다. 이 기간이 지나면 쿼리 결과는 자동으로 삭제됩니다.

관리형 쿼리 결과를 사용하여 작업 그룹 생성 또는 편집

콘솔에서 관리형 쿼리 결과로 작업 그룹을 생성하거나 기존 작업 그룹을 업데이트:

  1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 작업 그룹을 선택합니다.

  3. 작업 그룹 생성을 선택하여 새 작업 그룹을 생성하거나 목록에서 기존 작업 그룹을 편집합니다.

  4. 쿼리 결과 구성에서 Athena 관리형을 선택합니다.

    쿼리 결과 구성 메뉴입니다.
  5. 쿼리 결과 암호화에서 원하는 암호화 옵션을 선택합니다. 자세한 내용은 쿼리 결과 암호화 선택 섹션을 참조하세요.

  6. 기타 모든 필수 세부 정보를 입력하고 변경 사항 저장을 선택합니다.

쿼리 결과 암호화 선택

암호화 구성에는 두 가지 옵션이 있습니다.

  • 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:sourceArnaws: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:GenerateDataKeykms:Decrypt 작업을 수행할 수 있는 권한도 확보해야 합니다. 자세한 내용은 Amazon S3의 암호화 데이터 권한 섹션을 참조하세요.

관리형 쿼리 결과 암호화에 대한 자세한 내용은 관리형 쿼리 결과 암호화 섹션을 참조하세요.