受管查詢結果
利用受管查詢結果,您可以執行 SQL 查詢,而無需提供用於儲存查詢結果的 Amazon S3 儲存貯體。這樣,您就無需佈建、管理、控制存取和清除自己的 S3 儲存貯體。若要開始使用,請建立新的工作群組或編輯現有的工作群組。在查詢結果組態下,選取 Athena 受管。
主要功能
-
為簡化工作流程,執行查詢前,請先移除選擇 S3 儲存貯體位置的需求。
-
使用受管查詢結果無需額外付費,自動刪除查詢結果則可降低管理開銷,而且也不需要單獨的 S3 儲存貯體清除程序。
-
簡單入門:可以輕鬆設定新的和既有的工作群組,以使用受管查詢結果。您可以在 AWS 帳戶中混合使用 Athena 受管和客戶受管查詢結果。
-
簡化了 IAM 許可,允許透過繫結至個別工作群組的
GetQueryResults和GetQueryResultsStream讀取結果。 -
查詢結果會使用您選擇的 AWS 擁有的金鑰或客戶擁有的金鑰自動進行加密。
考量與限制
-
在 Athena 中,對查詢結果的存取權會在工作群組級別進行管理。因此,對於特定工作群組,您需要
GetQueryResults和GetQueryResultsStreamIAM 動作的明確許可。GetQueryResults動作將決定誰能以分頁格式擷取已完成查詢的結果,而GetQueryResultsStream動作將決定誰可以串流已完成查詢的結果 (通常由 Athena 驅動器使用)。 您無法從主控台下載大於 200 MB 的查詢結果檔案。使用
UNLOAD陳述式,將大於 200 MB 的結果寫入您可以單獨下載的位置。-
受管查詢結果功能不支援查詢結果重複使用。
-
查詢結果可以保留 24 小時。在此期間,可免費存放查詢結果。在此期間之後,查詢結果會自動刪除。
建立或編輯具有受管查詢結果的工作群組
若要從主控台建立工作群組或更新具有受管查詢結果的現有工作群組:
-
前往 https://console.aws.amazon.com/athena/
開啟 Athena 主控台。 從左側導覽窗格,選擇工作群組。
選擇建立工作群組以建立新的工作群組,或從清單中編輯現有工作群組。
-
在查詢結果組態下,選擇 Athena 受管。
-
對於加密查詢結果,選擇您想要的加密選項。如需更多詳細資訊,請參閱 選擇查詢結果加密。
-
填寫所有其他必要的詳細資訊,然後選擇儲存變更。
選擇查詢結果加密
加密組態時有兩種選項:
-
使用 AWS 擁有的金鑰加密 – 當您使用受管查詢結果時,此為預設選項。如果您想要使用 AWS 擁有的金鑰加密查詢結果,請選擇此選項。
-
使用客戶受管金鑰加密 – 如果您想要使用客戶受管金鑰對查詢結果進行加密和解密,請選擇此選項。若要使用客戶受管金鑰,請在金鑰政策區段的主體元素中新增 Athena 服務。如需更多詳細資訊,請參閱 為受管查詢結果設定 AWS KMS 金鑰政策。若要成功執行查詢,執行查詢的使用者需要存取 AWS KMS 金鑰的許可。
為受管查詢結果設定 AWS KMS 金鑰政策
金鑰政策的 Principal 區段指定誰可以使用此金鑰。受管查詢結果功能引入了主體 encryption.athena.amazonaws.com,而您必須在 Principal 區段中指定該主體。此服務主體專門用於存取非 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 中加密資料的許可。
如需有關受管查詢結果加密的詳細資訊,請參閱 加密受管查詢結果。