

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# （可选）使用 VPC 保护自定义模型导入作业
<a name="vpc-custom-model-import"></a>

当您运行自定义模型导入作业时，该作业会访问您的 Amazon S3 存储桶来下载输入数据和上传作业指标。要控制对数据的访问，我们建议您使用通过 [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 创建的虚拟私有云（VPC）。您可以对 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](#create-vpc-cmi)
+ [创建 Amazon S3 VPC 端点](#train-vpc-s3-cmi)
+ [（可选）使用 IAM 策略限制对 S3 文件的访问](#train-vpc-policy-cmi)
+ [将 VPC 权限附加到自定义模型导入角色。](#vpc-data-access-role-cmi)
+ [在提交模型导入作业时添加 VPC 配置](#vpc-config-cmi)

## 设置 VPC
<a name="create-vpc-cmi"></a>

您可以为模型导入数据使用[默认 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html)，也可以按照[开始使用 Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) 和[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) 中的指南创建新的 VPC。

在创建 VPC 时，我们建议您使用终端节点路由表的默认 DNS 设置，以便标准 Amazon S3 URLs （例如`http://s3-aws-region.amazonaws.com/model-bucket`）解析。

## 创建 Amazon S3 VPC 端点
<a name="train-vpc-s3-cmi"></a>

如果您将 VPC 配置为无法访问互联网，则需要创建一个 [Amazon S3 VPC 端点](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html)，以允许模型导入作业访问存储训练和验证数据以及将存储模型构件的 S3 存储桶。

按照[创建适用于 Amazon S3 的网关端点](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)中的步骤操作，创建 S3 VPC 端点。

**注意**  
如果您的 VPC 不使用默认 DNS 设置，则需要通过配置终端节点路由表来确保训练作业中数据位置的解析。 URLs 有关 VPC 端点路由表的信息，请参阅[网关端点路由](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-routing)。

## （可选）使用 IAM 策略限制对 S3 文件的访问
<a name="train-vpc-policy-cmi"></a>

您可以使用[基于资源的策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)来更严格地控制对 S3 文件的访问。您可以采用以下基于资源的策略类型。
+ **端点策略** – 端点策略通过 VPC 端点限制访问。默认端点策略允许您的 VPC 中的任何用户或服务完全访问 Amazon S3。在创建端点时或创建端点后，您可以选择将基于资源的策略附加到端点以添加限制，例如仅允许端点访问特定存储桶或仅允许特定 IAM 角色访问端点。有关示例，请参阅[编辑 VPC 端点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3)。

  下面是您可以附加到 VPC 端点的示例策略，以仅允许该端点访问包含模型权重的存储桶。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RestrictAccessToModelWeightsBucket",
              "Effect": "Allow",
              "Principal": "*",
              "Action": [
                  "s3:GetObject",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::model-weights-bucket",
                  "arn:aws:s3:::model-weights-bucket/*"
              ]
          }
      ]
  }
  ```

------

## 将 VPC 权限附加到自定义模型导入角色。
<a name="vpc-data-access-role-cmi"></a>

完成 VPC 和端点的设置后，您需要将以下权限附加到[模型导入 IAM 角色](model-import-iam-role.md)。修改此策略，以仅允许访问作业所需的 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/BedrockModelImportJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-import-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/BedrockModelImportJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-import-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",
                        "BedrockModelImportJobArn"
                    ]
                }
            }
        }
    ]
}
```

------

## 在提交模型导入作业时添加 VPC 配置
<a name="vpc-config-cmi"></a>

按照前几节所述配置 VPC 以及所需的角色和权限后，您可以创建使用此 VPC 的模型导入作业。

当您为任务指定 VPC 子网和安全组时，Amazon Bedrock 会在其中一个子*网中创建与您的安全组关联的弹性网络接口* (ENIs)。 ENIs 允许 Amazon Bedrock 任务连接到您的 VPC 中的资源。有关信息 ENIs，请参阅 *Amazon VPC 用户指南*中的[弹性网络接口](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)。它创建的 Amazon Bedrock 标签 ENIs `BedrockManaged`和`BedrockModelImportJobArn`标签。

我们建议您至少在每个可用区中提供一个子网。

您可以使用安全组来制定规则，以控制 Amazon Bedrock 对您的 VPC 资源的访问。

您可以在控制台或通过 API 配置要使用的 VPC。选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

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

对于 Amazon Bedrock 控制台，您可以在创建模型导入作业时在可选的 **VPC 设置**部分中指定 VPC 子网和安全组。有关配置模型导入作业的更多信息，请参阅[提交模型导入作业](model-customization-import-model-job.md)。

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

提交请求时，您可以将`VpcConfig`作为[CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)请求参数包括在内，以指定要使用的 VPC 子网和安全组，如以下示例所示。

```
"VpcConfig": { 
"SecurityGroupIds": [
    "sg-0123456789abcdef0"
    ],
    "Subnets": [
          "subnet-0123456789abcdef0",
          "subnet-0123456789abcdef1",
          "subnet-0123456789abcdef2"
     ]
 }
```

------