模型自訂存取和安全性 - 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。

  • (選用) 使用 ArnEqualsArnLike 條件將範圍限制為帳戶 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 使用 BedrockManagedBedrockModelCustomizationJobArn 標籤標記它建立的 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}}" ] }