模型自訂工作和人工因素的加密 - Amazon Bedrock

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

模型自訂工作和人工因素的加密

Amazon 基岩會將訓練資料與CreateModelCustomizationJob動作搭配使用,或透過主控台來建立自訂模型,該模型是 Amazon 基礎模型的精細調校版本。您的自訂模型由管理和儲存 AWS。

Amazon 基岩只會使用您提供的微調資料來微調 Amazon 基礎模型。Amazon 基岩不會將微調數據用於任何其他目的。您的訓練資料不會用於訓練基礎Titan模型或分發給第三方。其他使用數據(例如使用時間戳記,登錄帳戶IDs以及服務記錄的其他信息)也不會用於訓練模型。

一旦微調任務完成,Amazon 基岩就不會儲存您提供用於微調的訓練或驗證資料。

請注意,微調的模型可以在產生完成時重播某些微調資料。如果您的應用程式不應公開任何形式的微調資料,則應先從訓練資料中篩選出機密資料。如果您已經錯誤地使用機密資料建立了自訂模型,您可以刪除該自訂模型、從訓練資料中篩選出機密資訊,然後建立新模型。

對於加密自訂模型 (包括複製的模型),Amazon 基岩提供兩個選項:

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

  2. 客戶管理金鑰 — 您可以選擇使用自己管理的客戶管理金鑰來加密自訂模型。如需詳細資訊 AWS KMS keys,請參閱AWS Key Management Service 開發人員指南中的客戶管理金鑰

注意

Amazon 基岩可免費自動啟用 AWS 擁有的金鑰 靜態加密。如果您使用客戶管理的金鑰,則需要 AWS KMS 支付費用。如需定價的詳細資訊,請參閱 AWS Key Management Service 定價

如需詳細資訊 AWS KMS,請參閱AWS Key Management Service 開發人員指南

Amazon 基岩如何使用贈款 AWS KMS

如果您指定客戶受管金鑰來加密模型以進行模型自訂或模型複製任務的自訂模型,Amazon Bedrock 會將CreateGrant請求傳送至,代表您建立與自訂模型相關聯的主要KMS授權。 AWS KMS此授權允許 Amazon 基岩存取和使用您的客戶受管金鑰。中的贈款 AWS KMS 用於授予 Amazon 基岩訪問客戶帳戶中的KMS密鑰。

Amazon 基岩需要主要授權,才能在下列內部操作中使用客戶受管金鑰:

  • 傳送DescribeKey要求, AWS KMS 以確認您在建立工作時輸入的對稱客戶管理KMS金鑰 ID 是否有效。

  • 傳送GenerateDataKey解密 AWS KMS 要求,以產生由客戶管理金鑰加密的資料金鑰,並解密加密的資料金鑰,以便將其用於加密模型成品。

  • CreateGrant要求傳送AWSKMS至以建立範圍向下的次要授權,其中包含上述作業子集 (DescribeKeyGenerateDataKeyDecrypt),以非同步執行模型自訂、模型複製或佈建輸送量建立。

  • Amazon 基岩會在建立授權期間指定退休的主體,因此服務可以傳送請求。RetireGrant

您可以完整存取您的客戶管理 AWS KMS 金鑰。您可以按照AWS Key Management Service 開發人員指南中的「淘汰和撤銷授權」中的步驟撤銷授權,或者透過修改金鑰政策,隨時移除服務對客戶管理金的存取權。如果您這樣做,Amazon 基岩將無法存取您的金鑰加密的自訂模型。

自訂模型的主要和次要授權的生命週期

  • 要相關的自訂模型仍在使用中,主要授權的使用壽命很長,並保持作用中狀態。刪除自訂模型時,對應的主要授權會自動淘汰。

  • 次要補助金是短暫的。一旦 Amazon Bdrock 代表客戶執行的操作完成,它們就會自動淘汰。例如,模型複製任務完成後,允許 Amazon Bedrock 加密複製的自訂模型的次要授權將立即淘汰。

了解如何建立客戶管理的金鑰,以及如何將金鑰政策附加至該金鑰

若要使用您建立和管理的金鑰加密 AWS 資源,請執行下列一般步驟:

  1. (先決條件) 確定您的IAM角色具有CreateKey動作的權限。

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

  3. 建立金鑰會傳回可用Arn於需要使用金鑰之作業的金鑰 (例如,提交模型自訂工作執行模型推論時)。

  4. 建立金鑰原則,並將其附加至具有所需權限的金鑰。若要建立金鑰政策,請依照 AWS Key Management Service 開發人員指南中「建立金鑰政策」中的步驟進行。

自訂和複製模型的權限和關鍵原則

建立KMS金鑰之後,您可以將金鑰原則附加至該金鑰。關鍵原則是您附加至客戶管理金鑰以控制存取權的資源型政策。每個客戶受管金鑰都必須只有一個金鑰政策,其中包含決定誰可以使用金鑰及其使用方式的陳述式。您可以在建立客戶管理金鑰時指定金鑰政策。您可以隨時修改金鑰原則,但在整個變更之前,可能會有短暫的延遲 AWS KMS。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》https://docs.aws.amazon.com/kms/latest/developerguide/中的管理客戶受管金鑰的存取

下列KMS動作用於加密自訂和複製模型的金鑰:

  1. kms:CreateGrant— 允許 Amazon 基岩服務主體透過授權作業存取指定金鑰,為客戶受管金KMS鑰建立授權。如需有關贈款的詳細資訊,請參閱AWS Key Management Service 開發人員指南 AWS KMS中的贈款

    注意

    Amazon 基岩還設置了一個已退休的本金,並在不再需要該授予後自動退休。

  2. kms:DescribeKey— 提供客戶受管金鑰詳細資料,以允許 Amazon 基岩驗證金鑰。

  3. kms:GenerateDataKey— 提供客戶受管金鑰詳細資料,以允許 Amazon 基岩驗證使用者存取權限。Amazon 基岩會將產生的密文與自訂模型一起儲存,以用作針對自訂模型使用者的額外驗證檢查。

  4. KMS: Decrypt — 解密儲存的加密文字,以驗證角色是否具有對加密自訂模型之KMS金鑰的適當存取權。

作為最佳安全實務,我們建議您加入 kms: ViaService 條件金鑰,以限制對 Amazon 基岩服務金鑰的存取。

雖然您只能將一個金鑰原則附加至金鑰,但您可以在原則Statement欄位的清單中新增狀態,將多個陳述式附加至金鑰原則。

下列陳述式與加密自訂和複製模型有關:

若要使用客戶管理的金鑰來加密自訂或複製的模型,請在金鑰政策中包含下列陳述式,以允許模型加密。在Principal欄位中新增您要允許加密的帳號,並將金鑰解密至AWS分欄對應的清單。如果使用kms:ViaService條件鍵,則可以為每個區域添加一行,也可以使用 * 代替 ${region} 允許所有支持 Amazon 基岩的區域。

{ "Sid": "PermissionsEncryptDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }

若要允許存取已使用金鑰加密的模型,請在KMS金鑰原則中包含下列陳述式,以允許解密金鑰。在Principal欄位中,新增您要允許解密金鑰的帳號至AWS分欄對應的清單。如果使用kms:ViaService條件鍵,則可以為每個區域添加一行,也可以使用 * 代替 ${region} 允許所有支持 Amazon 基岩的區域。

{ "Sid": "PermissionsDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }

若要瞭解您需要建立的主要原則,請展開與您使用案例對應的區段:

如果您打算加密使用金鑰自訂的模型,KMS金鑰的金鑰原則將取決於您的使用案例。展開與您的使用案例對應的區段:

如果將叫用自訂模型的角色與將自訂模型的角色相同,您只需要中的陳述式加密模型。在以下策略範本的Principal欄位中,新增您要允許自訂的帳號,並呼叫AWS分欄對應的清單中的自訂模型。

{ "Version": "2012-10-17", "Id": "PermissionsCustomModelKey", "Statement": [ { "Sid": "PermissionsEncryptCustomModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

如果將叫用自訂模型的角色與將自訂模型的角色不同,則需要來自加密模型和的陳述式允許存取加密模型。修改下列原則範本中的陳述式,如下所示:

  1. 第一個語句允許密鑰的加密和解密。在Principal欄位中,將您要允許自訂自訂模型的帳號新增至AWS分欄對應的清單中。

  2. 第二個語句只允許密鑰的解密。在Principal欄位中,將您只允許叫用自訂模型的帳號新增至AWS分欄對應的清單。

{ "Version": "2012-10-17", "Id": "PermissionsCustomModelKey", "Statement": [ { "Sid": "PermissionsEncryptCustomModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }, { "Sid": "PermissionsDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

當您複製自己擁有或已與您共用的模型時,您可能需要管理最多兩個關鍵原則:

如果您打算使用KMS金鑰來加密複製的模型,金鑰的金鑰原則將取決於您的使用案例。展開與您的使用案例對應的區段:

如果將叫用複製模型的角色與將建立模型副本的角色相同,您只需要中的陳述式加密模型。在以下策略範本的Principal欄位中,新增您要允許複製的帳號,並將複製的模型叫用至AWS分欄對應的清單:

{ "Version": "2012-10-17", "Id": "PermissionsCopiedModelKey", "Statement": [ { "Sid": "PermissionsEncryptCopiedModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

如果將叫用複製模型的角色與將建立模型副本的角色不同,則需要來自加密模型和的陳述式允許存取加密模型。修改下列原則範本中的陳述式,如下所示:

  1. 第一個語句允許密鑰的加密和解密。在Principal欄位中,將您要允許建立複製模型的帳號新增至AWS分欄對應的清單中。

  2. 第二個語句只允許密鑰的解密。在Principal欄位中,新增您只允許叫用複製模型的帳號至AWS分欄對映的清單。

{ "Version": "2012-10-17", "Id": "PermissionsCopiedModelKey", "Statement": [ { "Sid": "PermissionsEncryptCopiedModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }, { "Sid": "PermissionsDecryptCopiedModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

如果您要複製的來源模型使用KMS金鑰加密,請將陳述式附加允許存取加密模型到加密來源模型之金鑰的金鑰原則。此戳記可讓模型複製角色解密加密來源模型的金鑰。在以下策略範本的Principal欄位中,新增您要允許將來源模型複製到AWS分欄對應的清單中的帳號:

{ "Version": "2012-10-17", "Id": "PermissionsSourceModelKey", "Statement": [ { "Sid": "PermissionsDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

監控 Amazon 基岩服務的加密金鑰

當您將 AWS KMS 客戶受管金鑰與 Amazon 基岩資源搭配使用時,您可以使用AWS CloudTrailAmazon CloudWatch 日誌來追蹤 Amazon 基岩傳送到的請求。 AWS KMS

以下是用於CreateGrant監控 Amazon 基岩呼叫的KMS操作以建立主要授權的範例 AWS CloudTrail 事件:

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01", "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelCopy/SampleUser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/RoleForModelCopy", "accountId": "111122223333", "userName": "RoleForModelCopy" }, "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", "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" }

加密訓練、驗證和輸出資料

當您使用 Amazon 基岩執行模型自訂任務時,您會將輸入檔案存放在 Amazon S3 儲存貯體中。任務完成後,Amazon Bdrock 會將輸出指標檔案存放在您在建立任務時指定的 S3 儲存貯體,並將產生的自訂模型成品存放在由控制的 S3 儲存貯體中。 AWS

輸出檔案會使用 S3 儲存貯體的加密組態加密。視您設定 SSES3 儲存貯體的方式而定,這些資料會使用AWS KMS SSE-S3 伺服器端KMS加密或使用-加密加密