本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
受管查詢結果
使用受管查詢結果,您可以執行 SQL 查詢,而無需提供查詢結果儲存的 Amazon S3 儲存貯體。這可讓您不必佈建、管理、控制存取和清除自己的 S3 儲存貯體。若要開始使用,請建立新的工作群組或編輯現有的工作群組。在查詢結果組態下,選取 Athena 受管。
主要功能
-
執行查詢之前,請先移除選擇 S3 儲存貯體位置的需求,以簡化您的工作流程。
-
使用受管查詢結果和自動刪除查詢結果無需額外費用,可降低管理開銷,也不需要單獨的 S3 儲存貯體清除程序。
-
簡單入門:可以輕鬆設定新的和預先存在的工作群組,以使用受管查詢結果。您可以在 AWS 帳戶中混合使用 Athena 受管和客戶受管查詢結果。
-
簡化 IAM 許可,具有讀取結果
GetQueryResults
並GetQueryResultsStream
繫結至個別工作群組的存取權。 -
查詢結果會使用您選擇的 AWS 擁有金鑰或客戶擁有的金鑰自動加密。
考量與限制
-
查詢結果的存取權是在 Athena 的工作群組層級管理。因此,您需要特定工作群組上
GetQueryResults
和GetQueryResultsStream
IAM 動作的明確許可。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 金鑰政策允許相同帳戶 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 中加密資料的許可。
如需受管查詢結果加密的詳細資訊,請參閱 加密受管查詢結果。