

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

# 模型自訂存取和安全性
<a name="custom-model-job-access-security"></a>

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

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

## 基本模型自訂許可
<a name="custom-model-job-basic-permissions"></a>

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

### 建立模型自訂的 IAM 服務角色
<a name="custom-model-job-service-role"></a>

Amazon Bedrock 需要 AWS Identity and Access Management (IAM) 服務角色才能存取您要存放模型自訂訓練和驗證資料的 S3 儲存貯體。有幾種方法可以執行此操作：
+ 使用 AWS 管理主控台自動建立服務角色。
+ 使用存取 S3 儲存貯體的適當許可手動建立服務角色。

針對 手動選項，請建立 IAM 角色，並依照[建立角色以將許可委派給 AWS 服務中的步驟連接下列許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ 信任關係
+ 在 S3 中存取訓練和驗證資料以及將輸出資料寫入 S3 的許可
+ (選用) 如果您使用 KMS 金鑰加密下列任何資源，則需要解密金鑰的權限 (請參閱 [自訂模型的加密](encryption-custom-job.md))
  + 模型自訂任務或產生的自訂模型
  + 模型自訂任務的訓練、驗證或輸出資料

### 信任關係
<a name="custom-model-job-service-role-trust-relationship"></a>

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

您可以選擇性地限制[跨服務混淆代理程式預防](cross-service-confused-deputy-prevention.md)的許可範圍，方法是使用一或多個全域條件內容索引鍵搭配 `Condition` 欄位。如需詳細資訊，請參閱 [AWS 全域條件內容索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。
+ 將 `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 中訓練和驗證檔案以及寫入輸出檔案的許可
<a name="custom-model-job-service-role-s3-permissions"></a>

連接下列政策，以允許角色存取訓練和驗證資料，以及寫入輸出資料的儲存貯體。將 `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/*"
            ]
        }
    ]
}
```

------

## 模型複製許可
<a name="custom-model-job-model-copying-permissions"></a>

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

1. 如果角色未連接 [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-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"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. (選用) 如果要複製的模型是使用 KMS 金鑰加密，請將[金鑰政策連接到加密模型的 KMS 金鑰](encryption-custom-job.md#encryption-key-policy-decrypt)，以允許角色將其解密。

1. (選用) 如果您打算使用 KMS 金鑰加密模型複本，請[將金鑰政策連接至用於加密模型所用的 KMS 金鑰](encryption-custom-job.md#encryption-key-policy-encrypt)，以允許角色使用金鑰加密模型。

## 跨區域推論設定檔許可
<a name="custom-models-cross-region-inference-profile-basic-permissions"></a>

若要在分割任務中使用教師模型的跨區域推論描述檔，服務角色除了在推論描述檔中每個區域中的模型之外 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}"
            ]
        }
    ]
}
```

------

## (選用) 使用跨區域推論設定檔建立蒸餾任務的許可
<a name="custom-models-cross-region-inference-profile-permissions"></a>

若要在分割任務中使用教師模型的跨區域推論描述檔，服務角色除了在推論描述檔中每個區域中的模型之外 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}"
            ]
        }
    ]
}
```

------

## (選用) 加密模型自訂任務和成品
<a name="custom-model-job-encryption"></a>

加密輸入和輸出資料、自訂任務或對自訂模型提出的推論請求。如需詳細資訊，請參閱[自訂模型的加密](encryption-custom-job.md)。

## (選用) 使用 VPC 保護模型自訂任務
<a name="vpc-model-customization"></a>

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

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

**Topics**
+ [設定 VPC 以在模型自訂期間保護資料](#vpc-cm-setup)
+ [將 VPC 許可連接至模型自訂角色](#vpc-data-access-role)
+ [提交模型自訂任務時新增 VPC 組態](#vpc-config)

### 設定 VPC 以在模型自訂期間保護資料
<a name="vpc-cm-setup"></a>

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

### 將 VPC 許可連接至模型自訂角色
<a name="vpc-data-access-role"></a>

完成 VPC 的設定之後，請將下列許可連接至[模型自訂服務角色](model-customization-iam-role.md)，以允許其存取 VPC。修改此政策，僅允許存取任務所需的 VPC 資源。將 *\$1\$1\$1subnet-ids\$1\$1* 和 *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 組態
<a name="vpc-config"></a>

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

當您指定 VPC 子網路和安全群組時，Amazon Bedrock 會在其中一個子網路內建立與安全群組相關聯的*彈性網路介面*(ENI)。ENI 允許 Amazon Bedrock 工作連線至 VPC 中的資源。如需 ENI 的相關資訊，請參閱 *Amazon VPC 使用者指南*中的[彈性網路介面](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)。Amazon Bedrock 使用 `BedrockManaged` 和 `BedrockModelCustomizationJobArn` 標籤標記它建立的 ENI。

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

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

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

------
#### [ Console ]

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

**注意**  
對於包含 VPC 組態的任務，主控台無法為您自動建立服務角色。遵循[建立模型自訂的服務角色](model-customization-iam-role.md)中的指引來建立自訂角色。

------
#### [ API ]

提交 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) 請求時，您可以如下列範例所示，包含 `VpcConfig` 作為請求參數，以指定要使用的 VPC 子網路和安全群組。

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

------