Amazon 的靜態資料加密 DataZone - Amazon DataZone

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon 的靜態資料加密 DataZone

依預設加密靜態資料,有助於降低保護敏感資料所涉及的營運開銷和複雜性。同時,其可讓您建置符合嚴格加密合規性和法規要求的安全應用程式。

Amazon DataZone 使用預設 AWS擁有的金鑰來自動加密靜態資料。您無法檢視、管理或稽核 AWS 擁有金鑰的使用。如需詳細資訊,請參閱AWS 擁有的金鑰

雖然您無法停用此加密層或選取替代加密類型,但您可以在建立 Amazon DataZone 網域時選擇客戶管理的金鑰,在現有 AWS 擁有的加密金鑰上新增第二層加密。Amazon DataZone 支援使用對稱客戶受管金鑰,您可以建立、擁有和管理這些金鑰,以透過現有 AWS 擁有的加密新增第二層加密。由於您可以完全控制此加密層,因此您可以在其中執行下列任務:

  • 建立和維護金鑰政策

  • 建立和維護IAM政策和授予

  • 啟用和停用金鑰政策

  • 輪換金鑰密碼編譯材料

  • 新增標籤

  • 建立金鑰別名

  • 排程要刪除的金鑰

如需詳細資訊,請參閱客戶受管金鑰

注意

Amazon 使用 AWS 自有金鑰 DataZone 自動啟用靜態加密,以免費保護客戶資料。

AWS KMS 使用客戶受管金鑰需付費。如需定價的詳細資訊,請參閱 AWS Key Management Service Pricing。

Amazon 如何在 中使用 DataZone 授予 AWS KMS

Amazon DataZone 需要三個授權才能使用您的客戶受管金鑰。當您建立使用客戶受管金鑰加密的 Amazon DataZone 網域時,Amazon 會透過傳送CreateGrant請求至 來代表您 DataZone 建立授予和子授予 AWS KMS。中的 AWS KMS授予用於讓 Amazon DataZone 存取您帳戶中的KMS金鑰。Amazon DataZone 會建立下列授予,以使用客戶受管金鑰進行下列內部操作:

針對下列操作,授予一次用於加密靜態資料的權限:

  • DescribeKey請求傳送至 AWS KMS ,以驗證建立 Amazon DataZone 網域集合時輸入的對稱客戶受管KMS金鑰 ID 是否有效。

  • GenerateDataKeyrequests 傳送至 AWS KMS 以產生由客戶受管金鑰加密的資料金鑰。

  • 解密請求傳送至 AWS KMS 以解密加密的資料金鑰,以便用來加密您的資料。

  • RetireGrant 在刪除網域時淘汰授予。

搜尋和探索資料的兩項授予:

您可以隨時撤銷授予的存取權,或移除服務對客戶受管金鑰的存取權。如果您這樣做,Amazon DataZone 將無法存取客戶受管金鑰加密的任何資料,這會影響依賴該資料的操作。例如,如果您嘗試取得 Amazon DataZone 無法存取的資料資產詳細資訊,則操作會傳回AccessDeniedException錯誤。

建立客戶受管金鑰

您可以使用 AWS 管理主控台或 AWS KMS 建立對稱客戶受管金鑰APIs。

若要建立對稱客戶受管金鑰,請遵循 AWS 金鑰管理服務開發人員指南中的建立對稱客戶受管金鑰的步驟。

金鑰政策 - 金鑰政策控制對客戶受管金鑰的存取。每個客戶受管金鑰都必須只有一個金鑰政策,其中包含決定誰可以使用金鑰及其使用方式的陳述式。在建立客戶受管金鑰時,可以指定金鑰政策。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的管理對客戶受管金鑰的存取

若要將客戶受管金鑰與 Amazon DataZone 資源搭配使用,金鑰政策中必須允許下列API操作:

以下是您可以為 Amazon 新增的政策陳述式範例 DataZone:

"Statement" : [ { "Sid" : "Allow access to principals authorized to manage Amazon DataZone", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::<account_id>:root" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource" : "arn:aws:kms:region:<account_id>:key/key_ID", } ]
注意

KMS 拒絕政策不適用於透過 Amazon DataZone 資料入口網站存取的資源。

如需在政策 中指定許可的詳細資訊,請參閱 AWS Key Management Service 開發人員指南。

如需對金鑰存取 進行疑難排解的詳細資訊,請參閱 AWS 金鑰管理服務開發人員指南。

指定 Amazon 的客戶受管金鑰 DataZone

Amazon DataZone 加密內容

加密內容是一組選用的金鑰值對,包含資料的其他相關內容資訊。

AWS KMS 使用加密內容作為額外的已驗證資料,以支援已驗證的加密。當您在加密資料的請求中包含加密內容時, AWS KMS 會將加密內容繫結到加密的資料。若要解密資料,您必須在請求中包含相同的加密內容。

Amazon DataZone 使用以下加密內容:

"encryptionContextSubset": { "aws:datazone:domainId": "{root-domain-uuid}" }

使用加密內容進行監控 - 當您使用對稱客戶受管金鑰來加密 Amazon 時 DataZone,您也可以在稽核記錄和日誌中使用加密內容來識別客戶受管金鑰的使用方式。加密內容也會出現在 AWS CloudTrail 或 Amazon CloudWatch Logs 產生的日誌中。

使用加密內容來控制對客戶受管金鑰的存取 - 您可以使用金鑰政策和IAM政策中的加密內容作為條件,以控制對對稱客戶受管金鑰的存取。您也可以在授予中使用加密內容條件。

Amazon 在授予中使用 DataZone 加密內容限制,以控制對帳戶或區域中客戶受管金鑰的存取。授予條件會要求授予允許的操作使用指定的加密內容。

以下是授予特定加密內容之客戶受管金鑰存取權的金鑰政策陳述式範例。此政策陳述式中的條件會要求具有指定加密內容的加密內容條件。

{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" },{ "Sid": "Enable Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:datazone:domainId": "{root-domain-uuid}" } } }

監控 Amazon 的加密金鑰 DataZone

當您搭配 Amazon DataZone 資源使用 AWS KMS客戶受管金鑰時,您可以使用 AWS CloudTrail 來追蹤 Amazon DataZone 傳送給 的請求 AWS KMS。下列範例是 CreateGrantDecryptGenerateDataKey和 AWS CloudTrail 的事件DescribeKey,用於監控 Amazon 呼叫KMS的操作 DataZone ,以存取客戶受管金鑰加密的資料。當您使用 AWS KMS客戶受管金鑰來加密 Amazon DataZone 網域時,Amazon 會代表您 DataZone 傳送存取 AWS 帳戶中KMS金鑰的CreateGrant請求。Amazon DataZone 建立的授予是與客戶受管金鑰相關聯的資源特有的 AWS KMS。此外,Amazon 會在您刪除網域時, DataZone 使用 RetireGrant操作移除授予。下面的範例事件會記錄 CreateGrant 操作:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-22T17:02:00Z" } }, "invokedBy": "datazone.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:datazone:domainId": "SAMPLE-root-domain-uuid" } }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "operations": [ "Decrypt", "GenerateDataKey", "RetireGrant", "DescribeKey" ], "granteePrincipal": "datazone.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

建立涉及加密 AWS Glue 目錄的 Data Lake 環境

在進階使用案例中,當您使用加密的 AWS Glue 目錄時,您必須授予 Amazon DataZone 服務的存取權,才能使用客戶管理的KMS金鑰。您可以更新自訂KMS政策,並將標籤新增至 金鑰來達成此目的。若要授予 Amazon DataZone 服務的存取權,以使用加密 AWS Glue 目錄中的資料,請完成下列步驟:

  • 將下列政策新增至您的自訂KMS金鑰。如需詳細資訊,請參閱變更金鑰政策

    { "Sid": "Allow datazone environment roles to use the key", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Decrypt", "kms:Describe*", "kms:Get*" ], "Resource": "*", "Condition": { "StringLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/*datazone_usr*" } } }
  • 將下列標籤新增至自訂KMS金鑰。如需詳細資訊,請參閱使用標籤控制對KMS金鑰 的存取

    key: AmazonDataZoneEnvironment value: all