在資料表儲存貯體中搭配 AWS KMS 金鑰(SSE-KMS) 使用伺服器端加密
主題
資料表儲存貯體具有預設加密組態,該組態使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密,以自動對資料表進行加密。此加密免費適用於 S3 資料表儲存貯體中的所有資料表。
若您需要對加密金鑰進行更多控制,例如管理金鑰輪換和授予存取政策,您可以將資料表儲存貯體設定為搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 使用伺服器端加密。AWS KMS 中的安全控制可以協助您符合加密相關合規要求。如需 SSE-KMS 的詳細資訊,請參閱「搭配 AWS KMS 金鑰 (SSE-KMS) 使用伺服器端加密」。
如何將 SSE-KMS 用於資料表和資料表儲存貯體
具資料表儲存貯體的 SSE-KMS 與一般用途儲存貯體中的 SSE-KMS 不同,如下所示:
-
您可以指定用於資料表儲存貯體和個別資料表的加密設定。
-
您只能搭配 SSE-KMS 使用客戶自管金鑰。不支援 AWS 受管金鑰。
-
您必須授予特定角色和 AWS 服務主體存取您的 AWS KMS 金鑰的權限。如需更多詳細資訊,請參閱 S3 Tables SSE-KMS 加密的許可要求。這包括將存取權授予:
-
S3 維護主體 – 用於對加密的資料表執行資料表維護
-
您的 S3 Tables 整合角色 – 用於在 AWS 分析服務中使用加密的資料表
-
您的用戶端存取角色 – 用於從 Apache Iceberg 用戶端直接存取加密的資料表
-
S3 Metadata 主體 – 用於更新加密的 S3 Metadata 資料表
-
-
加密的資料表使用資料表層級金鑰,將對 AWS KMS 提出的請求數量降至最低,讓使用 SSE-KMS 加密的資料表成本效益更高。
- 資料表儲存貯體的 SSE-KMS 加密
-
建立資料表儲存貯體時,您可以選擇 SSE-KMS 做為預設加密類型,然後選取將用於加密的特定 KMS 金鑰。在該儲存貯體中建立的任何資料表,都會自動從其資料表儲存貯體繼承這些加密設定。您可以使用 AWS CLI、S3 API 或 AWS SDK 隨時修改或移除資料表儲存貯體上的預設加密設定。當您修改資料表儲存貯體上的加密設定時,這些設定僅適用於在該儲存貯體中建立的新資料表。預先存在資料表的加密設定不會變更。如需更多詳細資訊,請參閱 指定資料表儲存貯體的加密。
- 資料表的 SSE-KMS 加密
-
您也可以選擇使用不同的 KMS 金鑰來加密個別資料表,無論儲存貯體的預設加密組態為何。若要設定個別資料表的加密,您必須在建立資料表時,指定所需的加密金鑰。如果您想要變更現有資料表的加密,您需要使用所需的金鑰建立資料表,並將資料從舊資料表複製到新資料表。如需更多詳細資訊,請參閱 指定資料表加密。
使用 AWS KMS 加密時,S3 Tables 會自動建立唯一的資料表層級資料金鑰,以用於為與每個資料表相關聯的新物件加密。這些金鑰會在有限的期間內使用,如此即可在加密過程中盡可能減少對其他 AWS KMS 請求的需求,並可降低加密成本。此類似於 適用於 SSE-KMS 的 S3 儲存貯體金鑰。
監控和稽核資料表和資料表儲存貯體的 SSE-KMS 加密
若要稽核對 SSE-KMS 加密資料使用 AWS KMS 金鑰的情況,您可以使用 AWS CloudTrail 日誌。您可以深入了解密碼編譯操作,例如 GenerateDataKey 和 Decrypt。CloudTrail 支援多種屬性值來篩選搜尋,包括事件名稱、使用者名稱和事件來源。
您可以使用 CloudTrail 事件追蹤 Amazon S3 Tables 和資料表儲存貯體的加密組態請求。CloudTrail 日誌使用下列 API 事件名稱:
-
s3tables:PutTableBucketEncryption -
s3tables:GetTableBucketEncryption -
s3tables:DeleteTableBucketEncryption -
s3tables:GetTableEncryption -
s3tables:CreateTable -
s3tables:CreateTableBucket
注意
資料表儲存貯體不支援 EventBridge。