本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
模型自訂任務和成品的加密
Amazon Bedrock 使用訓練資料搭配 CreateModelCustomizationJob動作或 主控台來建立自訂模型,這是 Amazon Bedrock 基礎模型的微調版本。您的自訂模型由 管理和存放 AWS。
Amazon Bedrock 使用您提供的微調資料,僅用於微調 Amazon Bedrock 基礎模型。Amazon Bedrock 不會將微調資料用於任何其他用途。您的訓練資料不會用於訓練基礎 Titan 模型或分發給第三方。其他用量資料,例如用量時間戳記IDs、記錄的帳戶,以及服務記錄的其他資訊,也不會用於訓練模型。
一旦微調任務完成,Amazon Bedrock 不會儲存您為微調提供的任何訓練或驗證資料。
請注意,微調後的模型可以在產生完成時重新播放一些微調資料。如果您的應用程式不應以任何形式公開微調資料,則您應該先從訓練資料篩選掉機密資料。如果您已錯誤地使用機密資料建立自訂模型,您可以刪除該自訂模型、篩選訓練資料中的機密資訊,然後建立新的模型。
對於加密自訂模型 (包括複製的模型),Amazon Bedrock 為您提供兩個選項:
注意
Amazon Bedrock 會 AWS 擁有的金鑰 免費使用 自動啟用靜態加密。如果您使用客戶受管金鑰,則需支付 AWS KMS 費用。如需定價的詳細資訊,請參閱 AWS Key Management Service 定價
如需詳細資訊 AWS KMS,請參閱 AWS Key Management Service 開發人員指南。
主題
Amazon Bedrock 如何在 中使用授予 AWS KMS
如果您指定客戶受管金鑰來加密模型自訂或模型複製任務的自訂模型,Amazon Bedrock 會透過傳送CreateGrant請求至 來代表您建立與自訂模型相關聯的主要KMS授權 AWS KMS。此授與可讓 Amazon Bedrock 存取和使用您的客戶受管金鑰。中的授予 AWS KMS 用於授予 Amazon Bedrock 存取客戶帳戶中的KMS金鑰。
Amazon Bedrock 需要主要授權,才能將客戶受管金鑰用於下列內部操作:
-
傳送DescribeKey請求至 AWS KMS ,以確認您在建立任務時輸入的對稱客戶受管KMS金鑰 ID 是否有效。
-
傳送GenerateDataKey和解密請求至 AWS KMS ,以產生由客戶受管金鑰加密的資料金鑰,並解密加密的資料金鑰,以便用來加密模型成品。
-
傳送CreateGrant請求至 AWSKMS,以使用上述操作的子集 (
DescribeKey
、GenerateDataKey
、Decrypt
) 建立範圍縮減次要授予,以非同步執行模型自訂、模型複製或佈建輸送量建立。 -
Amazon Bedrock 會在建立授予期間指定淘汰委託人,以便服務可以傳送RetireGrant請求。
您可以完整存取客戶受管 AWS KMS 金鑰。您可以依照 AWS Key Management Service 開發人員指南中的淘汰和撤銷授予的步驟來撤銷授予的存取權,也可以隨時修改金鑰政策來移除服務對客戶受管金鑰的存取權。如果您這樣做,Amazon Bedrock 將無法存取由金鑰加密的自訂模型。
自訂模型主要和次要授予的生命週期
-
只要相關聯的自訂模型仍在使用中,主要授與的生命週期很長,並且會保持作用中狀態。刪除自訂模型時,會自動淘汰對應的主要授予。
-
次要授予是短期的。一旦 Amazon Bedrock 代表客戶執行的操作完成,它們就會自動淘汰。例如,模型複製任務完成後,允許 Amazon Bedrock 加密複製自訂模型的次要授予將立即淘汰。
了解如何建立客戶受管金鑰,以及如何將金鑰政策連接至該金鑰
若要使用您建立和管理的金鑰來加密 AWS 資源,請執行下列一般步驟:
自訂和複製模型的許可和金鑰政策
建立KMS金鑰之後,您會將金鑰政策連接至該金鑰。金鑰政策是您連接到客戶受管金鑰的資源型政策,以控制其存取。每個客戶受管金鑰都必須只有一個金鑰政策,其中包含決定誰可以使用金鑰及其使用方式的陳述式。您可以在建立客戶受管金鑰時指定金鑰政策。您可以隨時修改金鑰政策,但變更在整個過程中變成可用之前可能會有短暫的延遲 AWS KMS。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》https://docs.aws.amazon.com/kms/latest/developerguide/中的管理客戶受管金鑰的存取。
下列KMS動作用於加密自訂和複製模型的金鑰:
-
kms:CreateGrant – 允許 Amazon Bedrock 服務主體透過授予操作存取指定的KMS金鑰,為客戶受管金鑰建立授予。 https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations如需授予的詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的授予 AWS KMS。
注意
Amazon Bedrock 也會設定淘汰委託人,並在不再需要授予之後自動淘汰授予。
-
kms:DescribeKey – 提供客戶受管金鑰詳細資訊,以允許 Amazon Bedrock 驗證金鑰。
-
kms:GenerateDataKey – 提供客戶受管金鑰詳細資訊,以允許 Amazon Bedrock 驗證使用者存取。Amazon Bedrock 會將產生的密碼文字與自訂模型一起存放,以做為自訂模型使用者的額外驗證檢查。
-
kms:Decrypt – 解密儲存的加密文字,以驗證角色對加密自訂模型的KMS金鑰具有適當的存取權。
作為最佳安全實務,建議您包含 kms:ViaService 條件金鑰,以限制對 Amazon Bedrock 服務的金鑰存取。
雖然您只能將一個金鑰政策連接至金鑰,但您可以將 staements 新增至政策 Statement
欄位中的清單,以將多個陳述式連接至金鑰政策。
下列陳述式與加密自訂和複製的模型相關:
若要使用客戶受管金鑰來加密自訂或複製的模型,請在金鑰政策中包含下列陳述式,以允許對模型進行加密。在 Principal
欄位中,新增要允許 將金鑰加密和解密的帳戶到AWS
子欄位映射到的清單。如果您使用 kms:ViaService
條件金鑰,您可以為每個區域新增一行,或用 *
取代 ${region}
,以允許支援 Amazon Bedrock 的所有區域。
{ "Sid": "PermissionsEncryptDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
${account-id}
:role/${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 Bedrock 的所有區域。
{ "Sid": "PermissionsDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
${account-id}
:role/${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}
:role/${role}
" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}
.amazonaws.com" ] } } } ] }
如果將叫用自訂模型的角色與將自訂模型的角色不同,您需要來自 加密模型和 的 陳述式允許存取加密的模型。修改下列政策範本中的陳述式,如下所示:
-
第一個陳述式允許加密和解密金鑰。在
Principal
欄位中,新增您要允許 將自訂模型自訂到AWS
子欄位映射到的清單的帳戶。 -
第二個陳述式僅允許解密金鑰。在
Principal
欄位中,新增只允許 呼叫自訂模型的帳戶到AWS
子欄位映射到的清單。
{ "Version": "2012-10-17", "Id": "
PermissionsCustomModelKey
", "Statement": [ { "Sid": "PermissionsEncryptCustomModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}
:role/${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}
:role/${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}
:role/${role}
" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}
.amazonaws.com" ] } } } ] }
如果將叫用複製模型的角色與將建立模型複製的角色不同,您需要來自 加密模型和 的 陳述式允許存取加密的模型。修改下列政策範本中的陳述式,如下所示:
-
第一個陳述式允許加密和解密金鑰。在
Principal
欄位中,新增要允許 建立複製模型的帳戶到AWS
子欄位映射到的清單。 -
第二個陳述式僅允許解密金鑰。在
Principal
欄位中,新增只允許 呼叫複製模型的帳戶到AWS
子欄位映射到的清單。
{ "Version": "2012-10-17", "Id": "
PermissionsCopiedModelKey
", "Statement": [ { "Sid": "PermissionsEncryptCopiedModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}
:role/${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}
:role/${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}
:role/${role}
" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}
.amazonaws.com" ] } } } ] }
監控 Amazon Bedrock 服務的加密金鑰
當您搭配 Amazon Bedrock 資源使用 AWS KMS 客戶受管金鑰時,您可以使用 AWS CloudTrail或 Amazon CloudWatch Logs 來追蹤 Amazon Bedrock 傳送的請求 AWS KMS。
以下是 的範例 AWS CloudTrail 事件CreateGrant,用於監控 Amazon Bedrock 呼叫KMS的操作,以建立主要授予:
{ "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 Bedrock 執行模型自訂任務時,您可以將輸入檔案存放在 Amazon S3 儲存貯體中。當任務完成時,Amazon Bedrock 會將輸出指標檔案存放在您在建立任務時指定的 S3 儲存貯體中,以及由 控制的 S3 儲存貯體中產生的自訂模型成品 AWS。
輸出檔案會使用 S3 儲存貯體的加密組態進行加密。根據您設定 SSSE3 儲存貯體的方式,這些加密會使用 -S3 伺服器端加密或 AWS KMS SSE-KMS 加密進行加密。 S3