本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以在 Amazon Athena 中,針對同一區域和有限數量區域的 Simple Storage Service (Amazon S3) 中的加密資料執行查詢。您也可以加密 Amazon S3 中的查詢結果和 AWS Glue 資料目錄中的資料。
您可以加密 Athena 中的以下資產:
-
Simple Storage Service (Amazon S3) 中所有查詢的結果,Athena 會將其存放在稱為 Simple Storage Service (Amazon S3) 結果位置的位置。您可以加密存放在 Simple Storage Service (Amazon S3) 中的查詢結果,而不論 Simple Storage Service (Amazon S3) 中的基礎資料集是否加密。如需相關資訊,請參閱加密存放在 Amazon S3 中的 Athena 查詢結果。
-
Data Catalog 中的 AWS Glue 資料。如需相關資訊,請參閱AWS Glue Data Catalog 內加密中繼資料的許可。
注意
當您使用 Athena 讀取加密的資料表時,Athena 會使用為資料表資料指定的加密選項,而不是查詢結果的加密選項。如果針對查詢結果和資料表資料設定了不同的加密方法或金鑰,Athena 會讀取資料表資料,而不使用加密選項和用於加密或解密查詢結果的金鑰。
不過,如果您使用 Athena 將資料插入已加密資料的資料表,Athena 會使用為查詢結果指定的加密組態來加密插入的資料。例如,如果您為查詢結果指定CSE_KMS
加密,Athena 會使用您用於查詢結果加密的相同 AWS KMS 金鑰 ID,以使用 加密插入的資料表資料CSE_KMS
。
主題
支援的 Amazon S3 加密選項
Athena 支援下列 Simple Storage Service (Amazon S3) 中資料集和查詢結果的加密選項。
加密類型 | 描述 | 跨區域支援 |
---|---|---|
SSE-S3 (SSE-S3) | 使用 Simple Storage Service (Amazon S3) 受管金鑰的伺服器端加密 (SSE)。 | 是 |
SSE-KMS (建議) | 使用 AWS Key Management Service 客戶受管金鑰的伺服器端加密 (SSE)。 | 是 |
CSE-KMS |
具有 AWS KMS 客戶受管金鑰的用戶端加密 (CSE)。在 Athena 中,此選項要求您使用 |
否 |
如需使用 Amazon S3 AWS KMS 加密的詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的什麼是 AWS Key Management Service Amazon Simple Storage Service (Amazon S3) 以及如何使用 AWS KMS 。如需有關搭配 Athena 使用 SSE-KMS 或 CSE-KMS 的詳細資訊,請參閱 AWS 大數據部落格的啟動:Amazon Athena 新增對查詢加密資料的支援
加密建議
當您使用客戶管理的 KMS 金鑰加密和解密資料表資料和查詢結果時,我們建議您透過 SSE-S3 或 CSE-KMS 加密方法使用 SSE-KMS 加密。SSE-KMS 提供控制、簡單性和效能的平衡,可讓您在使用受管 KMS 金鑰進行資料加密時,將其視為建議的方法。
SSE-KMS 相較於 SSE-S3 的優點
-
SSE-KMS 可讓您指定和管理自己的金鑰,提供更好的控制。您可以定義金鑰政策、監督金鑰生命週期,以及監控金鑰用量。
SSE-KMS 相較於 CSE-KMS 的優點
-
與需要持續維護 S3 加密用戶端的 CSE-KMS 不同,SSE-KMS 不需要額外的基礎設施來加密和解密資料。
-
由於 SSE-KMS 避免的加密演算法不斷演進,CSE-KMS 可能會遇到較新和較舊 S3 加密用戶端之間的相容性問題。
-
SSE-KMS 在加密和解密程序期間對 KMS 服務進行較少的 API 呼叫,以便擷取金鑰,因此相較於 CSE-KMS,效能更佳。
不支援的選項
不支援下列加密選項:
-
使用客戶提供金鑰的 SSE (SSE-C)。
-
使用用戶端受管金鑰的用戶端加密。
-
非對稱金鑰。
若要比較 Amazon S3 加密選項,請參閱《Amazon Simple Storage Service 使用者指南》中的使用加密保護資料。
用戶端加密工具
對於用戶端加密,請注意有兩種工具可用:
-
Amazon S3 加密用戶端 – 這只會為 Amazon S3 加密資料,並由 Athena 支援。
-
AWS Encryption SDK – 開發套件可用於加密跨任何地方的資料, AWS 但 Athena 不支援。
這些工具不相容,使用一個工具加密的資料無法由另一個工具解密。Athena 僅直接支援 Simple Storage Service (Amazon S3) 加密用戶端。如果您使用軟體開發套件來加密資料,您可以從 Athena 執行查詢,但資料會以加密文字傳回。
如果您想要使用 Athena 來查詢已使用 AWS Encryption 軟體開發套件加密的資料,您必須先下載並解密資料,然後使用 Simple Storage Service (Amazon S3) 加密用戶端再次加密資料。
Amazon S3 中加密資料的許可
根據您在 Amazon S3 中使用的加密類型,您可能需要將許可,也稱為「允許」動作新增至 Athena 中使用的政策:
-
SSE-S3 – 如果您使用 SSE-S3 進行加密,Athena 使用者在他們的政策中不需要額外的許可。有適當 Simple Storage Service (Amazon S3) 位置和 Athena 動作的適當 Simple Storage Service (Amazon S3) 許可即已足夠。如需有關允許適當 Athena 和 Simple Storage Service (Amazon S3) 許可的政策的詳細資訊,請參閱AWS Amazon Athena 的 受管政策和從 Athena 控制對 Amazon S3 的存取。
-
AWS KMS – 如果您使用 AWS KMS 進行加密,除了 Athena 和 Amazon S3 許可之外,還必須允許 Athena 使用者執行特定 AWS KMS 動作。您可以編輯用於加密 Amazon S3 中資料的 AWS KMS 客戶受管 CMKs 的金鑰政策,以允許這些動作。若要將金鑰使用者新增至適當的 AWS KMS 金鑰政策,您可以使用 AWS KMS 主控台,網址為 https://https://console.aws.amazon.com/kms
。如需有關如何將使用者新增至 AWS KMS 金鑰政策的資訊,請參閱《 AWS Key Management Service 開發人員指南》中的允許金鑰使用者使用 CMK。 注意
進階金鑰政策管理員可以調整金鑰政策。
kms:Decrypt
是允許 Athena 使用者使用加密的資料集的最低允許動作。若要使用加密的查詢結果,允許的最低動作為kms:GenerateDataKey
和kms:Decrypt
。使用 Athena 查詢 Amazon S3 中具有大量物件的資料集時 AWS KMS, AWS KMS 可能會調節查詢結果。當存在大量小型物件時,這種情況更有可能發生。Athena 會退回重試請求,但仍可能發生調節錯誤。如果您正在使用大量加密物件且遭遇此問題,一個方法是啟用 Simple Storage Service (Amazon S3) 儲存貯體金鑰以減少對 KMS 的呼叫次數。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本。另一種方式是提高您 AWS KMS的服務配額。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的配額。
如需有關搭配 Athena 使用 Simple Storage Service (Amazon S3) 時許可的疑難排解資訊,請參閱對 Athena 中的問題進行故障診斷 主題的 許可 一節。
AWS Glue
Data Catalog 內加密中繼資料的許可
如果您在 中加密中繼資料 AWS Glue Data Catalog,則必須將 "kms:GenerateDataKey"
、 "kms:Decrypt"
和 "kms:Encrypt"
動作新增至您用於存取 Athena 的政策。如需相關資訊,請參閱在 中設定從 Athena 到加密中繼資料的存取權 AWS Glue Data Catalog。