

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

# 在私有工作人员门户中使用 Amazon VPC 模式
<a name="samurai-vpc-worker-portal"></a>

要限制在 Amazon VPC 内工作的标注者可以访问工作人员门户，可以在创建 Ground Truth 私有人力时添加 VPC 配置。您还可以向现有的私有人力添加 VPC 配置。Ground Truth 会自动在 VPC 中创建 VPC 接口端点，并在 VPC 端点和 Ground Truth 服务之间设置 AWS PrivateLink 。可从 VPC 访问与人力相关联的工作人员门户 URL。在对公共互联网设置限制之前，也可以从公共互联网访问工作人员门户 URL。删除人力或从人力中删除 VPC 配置时，Ground Truth 会自动删除与人力相关联的 VPC 端点。

**注意**  
一个人力只能支持一个 VPC。

[点云](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html)和[视频](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html)任务不支持通过 VPC 加载。

本指南演示了如何完成在人力中添加和删除 Amazon VPC 配置的必要步骤，并满足先决条件。

## 先决条件
<a name="samurai-vpc-getting-started-prerequisites"></a>

要在 Amazon VPC 中运行 Ground Truth 标注作业，请查看以下先决条件。
+ 您已经配置了可以使用的 Amazon VPC。如果您尚未配置 VPC，请按照[创建 VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#interface-endpoint-shared-subnets) 的相关说明操作。
+ 根据[工作人员任务模板](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-instructions-overview.html)的编写方式，可以在标注任务期间直接从 Amazon S3 访问存储在 Amazon S3 存储桶中的标注数据。在这些情况下，必须对 VPC 网络进行配置，以允许从人工标注者使用的设备向包含标注数据的 S3 存储桶传输流量。
+ 按照[查看和更新 VPC 的 DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating)中的说明，为 VPC 启用 DNS 主机名和 DNS 解析。

**注意**  
可以通过两种方法为人力配置 VPC。您可以通过[控制台](https://console.aws.amazon.com/sagemaker)或 AWS SageMaker A [I CLI](https://aws.amazon.com/cli/) 执行此操作。

# 使用 A SageMaker I 控制台管理 VPC 配置
<a name="samurai-vpc-workforce-console"></a>

您可以使用 [SageMaker AI 控制台](https://console.aws.amazon.com/sagemaker)添加或删除 VPC 配置。您还可以删除现有人力。

## 为人力添加 VPC 配置
<a name="samurai-add-vpc-workforce"></a>

### 创建私有人力
<a name="samurai-vpc-create-workforce"></a>
+ [使用 Amazon Cognito 创建私有人力](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private-use-cognito.html)
+ [使用 OpenID Connect (OIDC) 身份提供者 (IdP) 创建私有人力](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private-use-oidc.html)。

创建私有人力后，向其添加 VPC 配置。

1. 在您的主机中导航至 [Amazon SageMaker Runtim](https://console.aws.amazon.com/sagemaker) e。

1. 在左侧面板中选择**标注人力**。

1. 选择**私有**以访问您的私有人力。**人力状态**变为**活动**后，选择 **VPC** 旁边的**添加**。

1. 当系统提示您配置 VPC 时，请提供以下信息：

   1. 您的 **VPC**

   1. **子网**

      1. 确保您的 VPC 已有子网

   1. **安全组**

      1. 
**注意**  
选择的安全组不能超过 5 个。

   1. 填写此信息后，选择**确认**。

1. 选择**确认**后，您将重定向回**标注人力**下的**私有**页面。您应该会在顶部看到一个绿色横幅，上面显示**使用 VPC 配置的私有人力更新已成功初始化**。人力状态为**正在更新**。**删除人力**按钮旁边是**刷新**按钮，可用于检索最新的**人力状态**。人力状态更改为**活动**后，VPC 端点 ID 也会更新。

## 从人力中删除 VPC 配置
<a name="samurai-remove-vpc-workforce"></a>

使用以下信息，通过控制台从人力中删除 VPC 配置。

1. 在您的主机中导航至 [Amazon SageMaker Runtim](https://console.aws.amazon.com/sagemaker) e。

1. 在左侧面板中选择**标注人力**。

1. 查找并选择您的人力。

1. 在**私有人力摘要**下，找到 **VPC**，然后选择其旁边的**删除**。

1. 选择**删除**。

## 通过控制台删除人力
<a name="samurai-delete-vpc-workforce"></a>

如果删除一个人力，就不应该再有任何与之相关的团队。只有当人力状态为**活动**或**失败**时，才能删除人力。

使用以下信息通过控制台删除人力。

1. 在您的主机中导航至 [Amazon SageMaker Runtim](https://console.aws.amazon.com/sagemaker) e。

1. 在左侧面板中选择**标注人力**。

1. 查找并选择您的人力。

1. 选择**删除人力**。

1. 选择**删除**。

# 使用 SageMaker AI AWS API 管理 VPC 配置
<a name="samurai-vpc-workforce-cli"></a>

使用以下各节来详细了解如何管理 VPCs 配置，同时保持对工作团队的适当访问权限。

## 使用 VPC 配置创建人力
<a name="samurai-create-vpc-cli"></a>

如果账户中已经有一个人力，则必须先删除它。您还可以使用 VPC 配置更新人力。

```
aws sagemaker create-workforce --cognito-config '{"ClientId": "app-client-id","UserPool": "Pool_ID",}' --workforce-vpc-config \       
" {\"VpcId\": \"vpc-id\", \"SecurityGroupIds\": [\"sg-0123456789abcdef0\"], \"Subnets\": [\"subnet-0123456789abcdef0\"]}" --workforce-name workforce-name
{
    "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name"
}
```

描述人力并确保其状态为 `Initializing`。

```
aws sagemaker describe-workforce --workforce-name workforce-name
{
    "Workforce": {
        "WorkforceName": "workforce-name",
        "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name",
        "LastUpdatedDate": 1622151252.451,
        "SourceIpConfig": {
            "Cidrs": []
        },
        "SubDomain": "subdomain.us-west-2.sagamaker.aws.com",
        "CognitoConfig": {
            "UserPool": "Pool_ID",
            "ClientId": "app-client-id"
        },
        "CreateDate": 1622151252.451,
        "WorkforceVpcConfig": {
            "VpcId": "vpc-id",
            "SecurityGroupIds": [
                "sg-0123456789abcdef0"
            ],
            "Subnets": [
                "subnet-0123456789abcdef0"
            ]
        },
        "Status": "Initializing"
    }
}
```

导航到 Amazon VPC 控制台。从左侧面板中选择**端点**。您的账户中应该创建了两个 VPC 端点。

## 为人力添加 VPC 配置
<a name="samurai-add-vpc-cli"></a>

使用以下命令用 VPC 配置更新非 VPC 私有人力。

```
aws sagemaker update-workforce --workforce-name workforce-name\
--workforce-vpc-config "{\"VpcId\": \"vpc-id\", \"SecurityGroupIds\": [\"sg-0123456789abcdef0\"], \"Subnets\": [\"subnet-0123456789abcdef0\"]}"
```

描述人力并确保其状态为 `Updating`。

```
aws sagemaker describe-workforce --workforce-name workforce-name
{
    "Workforce": {
        "WorkforceName": "workforce-name",
        "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name",
        "LastUpdatedDate": 1622151252.451,
        "SourceIpConfig": {
            "Cidrs": []
        },
        "SubDomain": "subdomain.us-west-2.sagamaker.aws.com",
        "CognitoConfig": {
            "UserPool": "Pool_ID",
            "ClientId": "app-client-id"
        },
        "CreateDate": 1622151252.451,
        "WorkforceVpcConfig": {
            "VpcId": "vpc-id",
            "SecurityGroupIds": [
                "sg-0123456789abcdef0"
            ],
            "Subnets": [
                "subnet-0123456789abcdef0"
            ]
        },
        "Status": "Updating"
    }
}
```

导航到 Amazon VPC 控制台。从左侧面板中选择**端点**。您的账户中应该创建了两个 VPC 端点。

## 从人力中删除 VPC 配置
<a name="samurai-remove-vpc-cli"></a>

用空 VPC 配置更新 VPC 私有人力以删除 VPC 资源。

```
aws sagemaker update-workforce --workforce-name workforce-name\ 
--workforce-vpc-config "{}"
```

描述人力并确保其状态为 `Updating`。

```
aws sagemaker describe-workforce --workforce-name workforce-name
{
    "Workforce": {
        "WorkforceName": "workforce-name",
        "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name",
        "LastUpdatedDate": 1622151252.451,
        "SourceIpConfig": {
            "Cidrs": []
        },
        "SubDomain": "subdomain.us-west-2.sagamaker.aws.com",
        "CognitoConfig": {
            "UserPool": "Pool_ID",
            "ClientId": "app-client-id"
        },
        "CreateDate": 1622151252.451,
        "Status": "Updating"
    }
}
```

导航至 Amazon VPC 控制台。从左侧面板中选择**端点**。应删除两个 VPC 端点。

## 在通过 VPC 保持访问的同时，限制公众访问工作人员门户
<a name="public-access-vpc"></a>

 VPC 或非 VPC 工作人员门户中的工作人员可以看到分配给他们的标注作业任务。任务来自于通过 OIDC 组分配工作团队中的工作人员。客户有责任通过在人力中设置 `sourceIpConfig` 来限制其公共工作人员门户的访问权限。

**注意**  
您只能通过 SageMaker API 限制对工作人员门户的访问。这无法通过控制台完成。

使用以下命令限制公众访问工作人员门户。

```
aws sagemaker update-workforce --region us-west-2 \
--workforce-name workforce-demo --source-ip-config '{"Cidrs":["10.0.0.0/16"]}'
```

在人力上设置 `sourceIpConfig` 后，工作人员可以访问 VPC 中的工作人员门户，但不能通过公共互联网访问。

**注意**  
您无法为 VPC 中的工作人员门户设置 `sourceIP` 限制。