本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Bedrock資料自動化中的加密
Amazon BedrockData Automation (BDA) 使用加密來保護靜態資料。這包括此服務存放的藍圖、專案和擷取的洞見。BDA 提供兩種加密資料的選項:
AWS擁有的金鑰 – 根據預設,BDA 會使用AWS擁有的金鑰加密您的資料。您無法檢視、管理或使用AWS擁有的金鑰,或稽核其使用方式。不過,您不需要採取任何動作或變更任何程式,即可保護加密您資料的金鑰。如需詳細資訊,請參閱 Key Management Service 開發人員指南中的AWS擁有的金鑰。AWS
客戶自管金鑰:您可以選擇使用您自己管理的客戶自管金鑰來加密資料。如需AWS KMS金鑰的詳細資訊,請參閱 AWSKey Management Service 開發人員指南中的客戶受管金鑰。BDA 不支援在 Amazon Bedrock 主控台中使用的客戶自管金鑰,僅適用於 API 操作。
Amazon Bedrock資料自動化會使用AWS擁有的金鑰自動啟用靜態加密,無需付費。如果您使用客戶受管金鑰,則需支付 AWS KMS費用。如需定價的詳細資訊,請參閱 AWS KMS定價
如何在 中使用Amazon Bedrock授予AWS KMS
如果您在呼叫 invokeDataAutomationAsync 時指定用於 BDA 加密的客戶受管金鑰,服務會透過傳送 CreateGrant 請求至 來建立與您的資源相關聯的授權AWS KMS。此授予可讓 BDA 存取和使用客戶自管金鑰。
BDA 將此授予用於客戶自管金鑰,來進行下列內部操作:
DescribeKey — 將請求傳送至 AWS KMS,以驗證您提供的對稱客戶受管AWS KMS金鑰 ID 是否有效。
GenerateDataKey 和 Decrypt — 將請求傳送至 AWS KMS,以產生由客戶受管金鑰加密的資料金鑰,並解密加密的資料金鑰,以便用來加密您的 資源。
CreateGrant — 將請求傳送至 AWS KMS,以使用上述操作的子集 (DescribeKey、GenerateDataKey、Decrypt) 建立範圍縮小授權,以非同步執行操作。
您可以完整存取客戶受管AWS KMS金鑰。您可以依照《AWS KMS 開發人員指南》中淘汰和撤銷授予的步驟來撤銷授予的存取權,或隨時修改金鑰政策來移除服務對客戶自管金鑰的存取權。如果您這樣做,BDA 將無法存取由金鑰加密的資源。
如果您在撤銷授予之後初始化新的 invokeDataAutomationAsync 呼叫,則 BDA 會重新建立授予。BDA 會在 30 小時後淘汰授予。
建立客戶自管金鑰並連接金鑰政策
若要使用您建立和管理的金鑰加密 BDA 資源,請遵循這些一般步驟:
Amazon BedrockData Automation 資源的許可和金鑰政策
建立AWS KMS金鑰之後,您可以將金鑰政策連接至該金鑰。下列 AWS KMS 動作會用於加密 BDA 資源的金鑰:
-
kms:CreateGrant – 允許 BDA 服務透過 InvokeDataAutomationAsync 所需的授予操作存取指定的AWS KMS金鑰,為客戶受管金鑰建立授予。
-
kms:DescribeKey:提供客戶自管金鑰的詳細資訊,以便 BDA 可以驗證金鑰。
-
kms:GenerateDataKey:提供客戶自管金鑰詳細資訊,以允許 BDA 驗證使用者存取。
-
kms:Decrypt – 解密儲存的加密文字,以驗證角色對加密 BDA 資源的AWS KMS金鑰具有適當的存取權。
Amazon Bedrock Data Automation 的金鑰政策
若要使用客戶自管金鑰加密 BDA 資源,請在金鑰政策中包含下列陳述式,並將 ${account-id}、${region} 和 ${key-id} 取代為特定值:
IAM 角色許可
用於與 BDA 互動的 IAM 角色AWS KMS應具有下列許可,請將 ${region}、 ${account-id}和 取代${key-id}為您的特定值:
Amazon Bedrock Automation 加密內容
BDA 在所有AWS KMS密碼編譯操作中使用相同的加密內容,其中金鑰為 aws:bedrock:data-automation-customer-account-id,值為AWS您的帳戶 ID。加密內容的範例如下。
"encryptionContext": { "bedrock:data-automation-customer-account-id": "account id" }
使用加密內容進行監控
當您使用對稱的客戶自管金鑰加密資料時,您也可以在稽核記錄和日誌中使用加密內容,以指出客戶自管金鑰的使用方式。加密內容也會出現在 AWS CloudTrail或 Amazon CloudWatch Logs 產生的日誌中。
使用加密內容控制對客戶受管金鑰的存取
您也可以在金鑰政策和 IAM 政策中,使用加密內容來控制對對稱客戶受管金鑰的存取。您也可以在授予中使用加密內容條件。BDA 會在授予中使用加密內容限制,以控制對帳戶和區域中客戶自管金鑰的存取。授予條件會要求授予允許的操作使用指定的加密內容。
以下是授予特定加密內容之客戶受管金鑰存取權的金鑰政策陳述式範例。此政策陳述式中的條件會要求具有指定加密內容的加密內容條件。
[ { "Sid": "Enable DescribeKey, Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": ["kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey"], "Resource": "*" }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333" }, "StringEquals": { "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey"] } } } ]
監控Amazon Bedrock資料自動化的加密金鑰
當您搭配 Amazon BedrockData Automation 資源使用AWS KMS客戶受管金鑰時,您可以使用 AWS CloudTrail或 Amazon CloudWatch 來追蹤Amazon Bedrock資料自動化傳送的請求AWS KMS。以下是 CreateGrant 監控 Amazon BedrockData 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" }