View a markdown version of this page

Amazon Bedrock 資料自動化中的加密 - Amazon Bedrock

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

Amazon Bedrock 資料自動化中的加密

Amazon Bedrock 資料自動化 (BDA) 使用加密來保護靜態資料。這包括藍圖、專案、程式庫,以及由 服務儲存的擷取洞見。BDA 提供兩種加密資料的選項:

  1. AWS 擁有的金鑰 – 根據預設,BDA 會使用 AWS 擁有的金鑰加密您的資料。您無法檢視、管理或使用 AWS 擁有的金鑰,或稽核其使用方式。不過,您不需要採取任何動作或變更任何程式,即可保護加密您資料的金鑰。如需詳細資訊,請參閱 Key Management Service 開發人員指南中的AWS 擁有的金鑰。 AWS

  2. 客戶自管金鑰:您可以選擇使用您自己管理的客戶自管金鑰來加密資料。如需 AWS KMS 金鑰的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的客戶受管金鑰。BDA 不支援在 Amazon Bedrock 主控台中使用的客戶自管金鑰,僅適用於 API 操作。

Amazon Bedrock 資料自動化會免費使用 AWS 擁有的金鑰自動啟用靜態加密。如果您使用客戶受管金鑰,則需支付 AWS KMS 費用。如需定價的詳細資訊,請參閱 AWS KMS 定價

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

如果您在呼叫 invokeDataAutomationAsync 或 CreateDataAutomationLibrary 時指定用於 BDA 加密的客戶受管金鑰,則服務會透過傳送 CreateGrant 請求至 來代表您建立與資源相關聯的授權 AWS KMS。此授予可讓 BDA 存取和使用客戶自管金鑰。如果客戶將詞彙實體擷取到程式庫中,則不會使用 CreateDataAutomationLibrary 建立的授予。

BDA 將此授予用於客戶自管金鑰,來進行下列內部操作:

  • DescribeKey — 將請求傳送至 AWS KMS ,以驗證您提供的對稱客戶受管 AWS KMS 金鑰 ID 是否有效。

  • GenerateDataKey 和 Decrypt — 將請求傳送至 AWS KMS ,以產生由客戶受管金鑰加密的資料金鑰,並解密加密的資料金鑰,以便用來加密您的 資源。

  • CreateGrant — 將請求傳送至 AWS KMS 以建立範圍縮小授權,以非同步執行操作。授予操作因 API 而異:

    • InvokeDataAutomationAsync:DescribeKey、GenerateDataKey、Decrypt

    • CreateDataAutomationLibrary:DescribeKey、GenerateDataKey、Decrypt、CreateGrant

您可以完整存取客戶受管 AWS KMS 金鑰。您可以依照《 AWS KMS 開發人員指南》中淘汰和撤銷授予的步驟來撤銷授予的存取權,或隨時修改金鑰政策來移除服務對客戶自管金鑰的存取權。如果您這樣做,BDA 將無法存取由金鑰加密的資源。

如果您在撤銷授予之後初始化新的 invokeDataAutomationAsync 呼叫,則 BDA 會重新建立授予。

由 invokeDataAutomationAsync 建立的授予會在 30 小時後由 BDA 淘汰。

刪除程式庫時,BDA 會淘汰 CreateDataAutomationLibrary 建立的授予。

建立客戶自管金鑰並連接金鑰政策

若要使用您建立和管理的金鑰加密 BDA 資源,請遵循這些一般步驟:

  1. (先決條件) 確保 IAM 角色具有 CreateKey 動作的許可。

  2. 請依照建立金鑰中的步驟,使用 AWS KMS 主控台或 CreateKey 操作來建立客戶受管金鑰。

  3. 建立金鑰會傳回 ARN,可用於需要使用金鑰 (例如,在 BDA 中建立專案或藍圖時) 的操作,例如 invokeDataAutomationAsync 操作。

  4. 建立金鑰政策並將其連接至具有必要許可的金鑰。若要建立金鑰政策,請遵循《 AWS KMS 開發人員指南》中的建立金鑰政策的步驟。

Amazon Bedrock Data Automation 資源的許可和金鑰政策

建立 AWS KMS 金鑰之後,您可以將金鑰政策連接至該金鑰。下列 AWS KMS 動作會用於加密 BDA 資源的金鑰:

  1. kms:CreateGrant – 允許 BDA 服務透過 InvokeDataAutomationAsync 和 CreateDataAutomationLibrary 所需的授予操作存取指定的 AWS KMS 金鑰,藉此為客戶受管金鑰建立授予。

  2. kms:DescribeKey:提供客戶自管金鑰的詳細資訊,以便 BDA 可以驗證金鑰。

  3. kms:GenerateDataKey:提供客戶自管金鑰詳細資訊,以允許 BDA 驗證使用者存取。

  4. kms:Decrypt – 解密儲存的加密文字,以驗證角色對加密 BDA 資源的 AWS KMS 金鑰具有適當的存取權。

Amazon Bedrock Data Automation 的金鑰政策

若要使用客戶自管金鑰加密 BDA 資源,請在金鑰政策中包含下列陳述式,並將 ${account-id}${region}${key-id} 取代為特定值:

{ "Version": "2012-10-17", "Id": "KMS key policy for a key to encrypt data for BDA resource", "Statement": [ { "Sid": "Enable DescribeKey, Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Role" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock.us-east-1.amazonaws.com" } } }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Role" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "CreateGrant", "GenerateDataKey", "Decrypt", "DescribeKey" ] } } } ] }

IAM 角色許可

用來與 BDA 互動的 IAM 角色 AWS KMS 應具有下列許可,請將 ${region}${account-id}和 取代${key-id}為您的特定值:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.us-east-1.amazonaws.com" ] } } } ] }

Amazon Bedrock 資料自動化加密內容

對於包括 InvokeDataAutomationLibraryIngestionJob 在內的所有 DataAutomationLibrary 操作,BDA 會在所有 AWS KMS 密碼編譯操作中使用下列加密內容,其中金鑰為 aws:bedrock:data-automation-library-arn ,值為 libraryArn

"encryptionContext": { "aws:bedrock:data-automation-library-arn": "<LibraryArn>" }

對於 DataAutomationProject 操作,BDA 使用以下加密內容:

"encryptionContext": { "DataAutomationProjectArn": "<DataAutomationProjectArn>" }

對於藍圖操作,BDA 使用以下加密內容:

"encryptionContext": { "BlueprintArn": "<BlueprintArn>" }

對於所有其他操作,BDA 使用以下加密內容:

"encryptionContext": { "aws:bedrock:data-automation-customer-account-id": "111122223333" }
使用加密內容進行監控

當您使用對稱的客戶自管金鑰加密資料時,您也可以在稽核記錄和日誌中使用加密內容,以指出客戶自管金鑰的使用方式。加密內容也會出現在 AWS CloudTrail 或 Amazon CloudWatch Logs 產生的日誌中。

使用加密內容控制對客戶受管金鑰的存取

您也可以在金鑰政策和 IAM 政策中,使用加密內容來控制對對稱客戶受管金鑰的存取。您也可以在授予中使用加密內容條件。BDA 會在授予中使用加密內容限制,以控制對帳戶和區域中客戶自管金鑰的存取。授予條件會要求授予允許的操作使用指定的加密內容。

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

[ { "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": ["kms:DescribeKey"], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }, { "Sid": "Enable Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ], "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333" } } }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ], "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333" }, "StringEquals": { "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey"] } } } ]

呼叫 時CreateDataAutomationLibrary,請連接下列政策,以授予 BDA 存取客戶受管金鑰的必要許可。

[ { "Sid": "Enable CreateGrant for CreateDataAutomationLibrary", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] }, "StringEquals": { "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey", "CreateGrant"] } } } ]

監控 Amazon Bedrock 資料自動化的加密金鑰

當您搭配 Amazon Bedrock Data Automation 資源使用 AWS KMS 客戶受管金鑰時,您可以使用 AWS CloudTrailAmazon CloudWatch 來追蹤 Amazon Bedrock 資料自動化傳送給 的請求 AWS KMS。以下是 CreateGrant 監控 Amazon Bedrock Data Automation 呼叫 AWS KMS 的操作以建立主要授權的範例 AWS CloudTrail 事件:

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01", "arn": "arn:aws:sts::111122223333:assumed-role/RoleForDataAutomation/SampleUser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/RoleForDataAutomation", "accountId": "111122223333", "userName": "RoleForDataAutomation" }, "attributes": { "creationDate": "2024-05-07T21:46:28Z", "mfaAuthenticated": "false" } }, "invokedBy": "bedrock.amazonaws.com" }, "eventTime": "2024-05-07T21:49:44Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "bedrock.amazonaws.com", "userAgent": "bedrock.amazonaws.com", "requestParameters": { "granteePrincipal": "bedrock.amazonaws.com", "retiringPrincipal": "bedrock.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "constraints": { "encryptionContextSubset": { "aws:bedrock:data-automation-customer-account-id": "000000000000" } }, "operations": [ "Decrypt", "CreateGrant", "GenerateDataKey", "DescribeKey" ] }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-east-1: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-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }