View a markdown version of this page

模型自訂存取和安全性 - Amazon Bedrock

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

模型自訂存取和安全性

此頁面提供所有 Amazon Bedrock 模型自訂類型的完整安全性和許可資訊,包括微調、強化微調、分割和模型操作。開始自訂模型之前,請確定您了解 Amazon Bedrock 需要的存取類型,並考量一些自訂任務和成品的保護選項。

下列各節包含不同自訂案例所需的許可。根據您的特定使用案例選擇適當的許可:

所有模型自訂任務都需要這些基本許可。這些適用於微調、分割和其他自訂類型。

建立模型自訂的 IAM 服務角色

Amazon Bedrock 需要 AWS Identity and Access Management (IAM) 服務角色,才能存取您要存放模型自訂訓練和驗證資料的 S3 儲存貯體。有幾種方法可以執行此操作:

  • 使用 AWS 管理主控台自動建立服務角色。

  • 使用存取 S3 儲存貯體的適當許可手動建立服務角色。

針對 手動選項,請建立 IAM 角色,並依照建立角色以將許可委派給 AWS 服務中的步驟連接下列許可。

  • 信任關係

  • 在 S3 中存取訓練和驗證資料以及將輸出資料寫入 S3 的許可

  • (選用) 如果您使用 KMS 金鑰加密下列任何資源,則需要解密金鑰的權限 (請參閱 自訂模型的加密)

    • 模型自訂任務或產生的自訂模型

    • 模型自訂任務的訓練、驗證或輸出資料

信任關係

下列政策允許 Amazon Bedrock 擔任此角色,並執行模型自訂任務。以下顯示您可使用的範例政策。

您可以選擇性地限制跨服務混淆代理程式預防的許可範圍,方法是使用一或多個全域條件內容索引鍵搭配 Condition 欄位。如需詳細資訊,請參閱 AWS 全域條件內容索引鍵。

  • 將 aws:SourceAccount 值設定為您的帳戶 ID。

  • (選用) 使用 ArnEquals 或 ArnLike 條件將範圍限制為帳戶 ID 中特定的模型自訂任務。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*" } } } ] }

存取 S3 中訓練和驗證檔案以及寫入輸出檔案的許可

連接下列政策,以允許角色存取訓練和驗證資料,以及寫入輸出資料的儲存貯體。將 Resource 清單中的值取代為您實際的儲存貯體名稱。

若要限制對儲存貯體中特定資料夾的存取,請使用資料夾路徑新增 s3:prefix 條件索引鍵。您可以遵循範例 2:取得具有特定字首之儲存貯體中的物件清單中的使用者政策範例

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::training-bucket", "arn:aws:s3:::training-bucket/*", "arn:aws:s3:::validation-bucket", "arn:aws:s3:::validation-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::output-bucket", "arn:aws:s3:::output-bucket/*" ] } ] }

若要將模型複製到另一個區域,您需要特定許可,具體取決於角色的目前許可和模型的組態。

  1. 如果角色未連接 AmazonBedrockFullAccess 政策,請將下列身分型政策連接至角色,以允許最小許可能夠複製模型和追蹤複製任務。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "CopyModels", "Effect": "Allow", "Action": [ "bedrock:CreateModelCopyJob", "bedrock:GetModelCopyJob", "bedrock:ListModelCopyJobs" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/model-id" ], "Condition": { "StringEquals": { "aws:RequestedRegion": [ "us-east-1" ] } } } ] }
  2. (選用) 如果要複製的模型是使用 KMS 金鑰加密,請將金鑰政策連接到加密模型的 KMS 金鑰,以允許角色將其解密。

  3. (選用) 如果您打算使用 KMS 金鑰加密模型複本,請將金鑰政策連接至用於加密模型所用的 KMS 金鑰,以允許角色使用金鑰加密模型。

若要在分割任務中使用教師模型的跨區域推論描述檔,服務角色除了在推論描述檔中每個區域中的模型之外 AWS 區域,還必須具有在 中調用推論描述檔的許可。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CrossRegionInference", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}", "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}", "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}" ] } ] }

若要在分割任務中使用教師模型的跨區域推論描述檔,服務角色除了在推論描述檔中每個區域中的模型之外 AWS 區域,還必須具有在 中調用推論描述檔的許可。

如需使用跨區域 (系統定義) 推論設定檔調用的許可,請使用下列政策作為許可政策的範本,以連接至服務角色:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CrossRegionInference", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}", "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}", "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}" ] } ] }

加密輸入和輸出資料、自訂任務或對自訂模型提出的推論請求。如需詳細資訊,請參閱自訂模型的加密。

當您執行模型自訂工作時,工作會存取 Amazon S3 儲存貯體以下載輸入資料和上傳工作指標。若要控制對資料的存取,建議您使用虛擬私有雲端 (VPC) 搭配 Amazon VPC。您可以透過設定 VPC 進一步保護資料,使得資料無法透過網際網路取得,並使用 AWS PrivateLink 建立 VPC 介面端點,以建立資料的私有連結。如需 Amazon VPC 和 如何與 Amazon Bedrock AWS PrivateLink 整合的詳細資訊,請參閱 使用 Amazon VPC 和 保護您的資料 AWS PrivateLink。

執行下列步驟,為模型自訂任務設定和使用 VPC 進行訓練、驗證和輸出資料。

設定 VPC 以在模型自訂期間保護資料

若要設定 VPC,請遵循設定 VPC 中的步驟。您可以依照 (範例) 使用 VPC 存取限制對 Amazon S3 資料的資料存取權中的步驟,設定 S3 VPC 端點並使用資源型 IAM 政策來限制存取內含模型自訂資料的 S3 儲存貯體,以進一步保護 VPC。

將 VPC 許可連接至模型自訂角色

完成 VPC 的設定之後,請將下列許可連接至模型自訂服務角色,以允許其存取 VPC。修改此政策,僅允許存取任務所需的 VPC 資源。將 ${{subnet-ids}} 和 security-group-id 取代為 VPC 中的值。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:us-east-1:123456789012:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/BedrockManaged": [ "true" ] }, "ArnEquals": { "aws:RequestTag/BedrockModelCustomizationJobArn": [ "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] } } }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id", "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2", "arn:aws:ec2:us-east-1:123456789012:security-group/security-group-id" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*", "Condition": { "ArnEquals": { "ec2:Subnet": [ "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id", "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2" ], "ec2:ResourceTag/BedrockModelCustomizationJobArn": [ "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, "StringEquals": { "ec2:ResourceTag/BedrockManaged": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:us-east-1:123456789012:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": [ "CreateNetworkInterface" ] }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "BedrockManaged", "BedrockModelCustomizationJobArn" ] } } } ] }

提交模型自訂任務時新增 VPC 組態

依照前幾節所述,設定 VPC 以及必要的角色和權限之後,您可以建立使用此 VPC 的模型自訂工作。

當您指定 VPC 子網路和安全群組時,Amazon Bedrock 會在其中一個子網路內建立與安全群組相關聯的彈性網路介面(ENI)。ENI 允許 Amazon Bedrock 工作連線至 VPC 中的資源。如需 ENI 的相關資訊,請參閱 Amazon VPC 使用者指南中的彈性網路介面。Amazon Bedrock 使用 BedrockManaged 和 BedrockModelCustomizationJobArn 標籤標記它建立的 ENI。

建議您在每個可用區域中至少提供一個子網路。

您可以使用安全群組建立規則,以控制 Amazon Bedrock 對 VPC 資源的存取。

您可以在主控台或透過 API 設定要使用的 VPC。選擇您偏好方法的索引標籤,然後遵循下列步驟:

Console

對於 Amazon Bedrock 主控台,您可以在建立模型自訂工作時,在選用的 VPC 設定區段中指定 VPC 子網路和安全群組。如需有關設定任務的詳細資訊,請參閱提交模型自訂任務以進行微調。

注意

對於包含 VPC 組態的任務,主控台無法為您自動建立服務角色。遵循建立模型自訂的服務角色中的指引來建立自訂角色。

API

提交 CreateModelCustomizationJob 請求時,您可以如下列範例所示,包含 VpcConfig 作為請求參數,以指定要使用的 VPC 子網路和安全群組。

"vpcConfig": { "securityGroupIds": [ "${{sg-0123456789abcdef0}}" ], "subnets": [ "${{subnet-0123456789abcdef0}}", "${{subnet-0123456789abcdef1}}", "${{subnet-0123456789abcdef2}}" ] }