本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
模型自訂存取和安全性
開始自訂模型之前,請確定您了解 Amazon Bedrock 需要哪種存取,並考慮一些保護自訂任務和成品的選項。
建立模型自訂的 IAM 服務角色
Amazon Bedrock 需要 AWS Identity and Access Management (IAM) 服務角色,才能存取您要存放模型自訂訓練和驗證資料的 S3 儲存貯體。有幾種方法可以執行此操作:
針對手動選項,請建立 IAM 角色,並依照建立角色以將許可委派給 AWS 服務中的步驟連接下列許可。
信任關係
下列政策允許 Amazon Bedrock 擔任此角色,並執行模型自訂任務。以下顯示您可使用的範例政策。
您可以選擇性地限制跨服務混淆代理人預防許可的範圍,方法是使用一個或多個全域條件內容索引鍵搭配 Condition
欄位。如需詳細資訊,請參閱 AWS 全域條件內容索引鍵。
- 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 中的使用者政策範例:取得具有特定字首之儲存貯體中的物件清單 https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-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/*
"
]
}
]
}
(選用) 使用跨區域推論描述檔建立 Distillation 任務的許可
若要在分割任務中使用教師模型的跨區域推論描述檔,服務角色除了在推論描述檔中每個區域中的模型之外 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}
"
]
}
]
}
(選用) 加密模型自訂任務和成品
加密對自訂模型提出的輸入和輸出資料、自訂任務或推論請求。如需詳細資訊,請參閱自訂模型的加密。
(選用) 使用 VPC 保護您的模型自訂任務
當您執行模型自訂工作時,工作會存取 Amazon S3 儲存貯體以下載輸入資料和上傳工作指標。若要控制對資料的存取,建議您搭配 Amazon VPC 使用虛擬私有雲端 (VPC)。您可以透過設定 VPC 進一步保護您的資料,讓資料無法透過網際網路使用,而是使用 建立 VPC 介面端點AWS PrivateLink,以建立資料的私有連線。如需 Amazon VPC 和 如何與 Amazon Bedrock AWS PrivateLink 整合的詳細資訊,請參閱 使用 Amazon VPC 和 保護您的資料 AWS PrivateLink。
執行下列步驟,為您的模型自訂任務設定和使用 VPC 進行訓練、驗證和輸出資料。
設定 VPC 以在模型自訂期間保護您的資料
若要設定 VPC,請遵循 中的步驟設定 VPC。您可以依照 中的步驟,設定 S3 VPC 端點並使用資源型 IAM 政策來限制存取包含模型自訂資料的 S3 儲存貯體,進一步保護您的 VPC(範例) 限制使用 VPC 存取 Amazon S3 資料的資料。
將 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 資源的存取。
您可以將 VPC 設定為在 主控台或透過 API 使用。選擇您偏好方法的索引標籤,然後遵循下列步驟:
- Console
-
對於 Amazon Bedrock 主控台,您可以在建立模型自訂工作時,在選用的 VPC 設定區段中指定 VPC 子網路和安全群組。如需設定任務的詳細資訊,請參閱 提交模型自訂任務以進行微調或持續的預先訓練。
- API
-
當您提交 CreateModelCustomizationJob 請求時,您可以包含 VpcConfig
作為請求參數,以指定要使用的 VPC 子網路和安全群組,如下列範例所示。
"vpcConfig": {
"securityGroupIds": [
"${{sg-0123456789abcdef0}}
"
],
"subnets": [
"${{subnet-0123456789abcdef0}}
",
"${{subnet-0123456789abcdef1}}
",
"${{subnet-0123456789abcdef2}}
"
]
}