本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在資料表儲存貯體中使用伺服器端加密與 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 managed 金鑰搭配使用。
-
您必須授予特定角色 AWS 和服務主體存取 AWS KMS 金鑰的許可。如需詳細資訊,請參閱S3 Tables SSE-KMS 加密的許可要求。這包括將存取權授予:
-
S3 維護主體 – 用於對加密資料表執行資料表維護
-
您的 S3 Tables 整合角色 – 用於在 AWS 分析服務中使用加密的資料表
-
您的用戶端存取角色 – 用於從Apache Iceberg用戶端直接存取加密的資料表
-
S3 中繼資料主體 – 用於更新加密的 S3 中繼資料表
-
-
加密的資料表使用資料表層級金鑰,可將對 提出的請求數量降至最低 AWS KMS ,讓使用 SSE-KMS 加密的資料表更具成本效益。
- 資料表儲存貯體的 SSE-KMS 加密
-
建立資料表儲存貯體時,您可以選擇 SSE-KMS 做為預設加密類型,然後選取將用於加密的特定 KMS 金鑰。在該儲存貯體內建立的任何資料表都會自動從其資料表儲存貯體繼承這些加密設定。您可以隨時使用 AWS CLI、S3 API 或 AWS SDKs 來修改或移除資料表儲存貯體上的預設加密設定。當您修改資料表儲存貯體上的加密設定時,這些設定僅適用於在該儲存貯體中建立的新資料表。預先存在資料表的加密設定不會變更。如需詳細資訊,請參閱指定資料表儲存貯體的加密。
- 資料表的 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 資料表和資料表儲存貯體的加密組態請求。CloudTrail 日誌使用下列 API 事件名稱:
-
s3tables:PutTableBucketEncryption
-
s3tables:GetTableBucketEncryption
-
s3tables:DeleteTableBucketEncryption
-
s3tables:GetTableEncryption
-
s3tables:CreateTable
-
s3tables:CreateTableBucket
注意
資料表儲存貯體不支援 EventBridge。