適用於 Amazon 的靜態資料加密 DataZone - Amazon DataZone

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

適用於 Amazon 的靜態資料加密 DataZone

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

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

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

  • 建立和維護關鍵政策

  • 建立和維護IAM政策和補助

  • 啟用和停用金鑰原則

  • 旋轉密鑰加密材料

  • 新增標籤

  • 建立金鑰別名

  • 要刪除的排程關鍵字

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

注意

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

AWS KMS使用客戶管理的金鑰需支付費用。如需有關定價的詳細資訊,請參閱AWS 金鑰管理服務定價

Amazon 如何 DataZone 使用贈款 AWS KMS

Amazon DataZone 需要三次授權才能使用您的客戶受管金鑰。當您建立使用客戶受管金鑰加密的 Amazon DataZone 網域時,Amazon DataZone 會將CreateGrant 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 管理客戶受管理金鑰的存取權限。

若要將客戶受管金鑰與 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 金鑰管理服務開發人員指南。

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

為 Amazon 指定客戶受管金鑰 DataZone

Amazon DataZone 加密環境

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

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

Amazon DataZone 使用以下加密上下文:

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

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

使用加密內容來控制對客戶管理金鑰的存取-您可以使用金鑰政策和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

當您將 AWS KMS客戶受管金鑰與 Amazon DataZone 資源搭配使用時,您可AWS CloudTrail以使用追蹤 Amazon DataZone 傳送到的請求 AWS KMS。下列範例是 Amazon DataZone 呼叫以存取由客戶管理金鑰加密之資料所呼叫的Decrypt、、和DescribeKey監控KMS操作的 AWS CloudTrail 事件。CreateGrant GenerateDataKey當您使用 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 目錄的資料湖環境

在進階使用案例中,當您使用已加密的 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