本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用亚马逊Virtual Private Cloud 保护工作
Amazon Comprehend 在使用 Amazon Comprehend 时,使用我们的任务容器来存储您的数据,使用各种安全措施来确保数据的安全。但是,任务容器通过互联网访问AWS资源,例如用于存储数据和模型工件的 Amazon S3 存储桶。
要控制对数据的访问权限,我们建议您创建虚拟私有云 (VPC) 并对其进行配置,使其无法通过 Internet 访问数据和容器。有关创建和配置 VPC 的信息,请参阅 Amazon VPC 用户指南中的 Amazon VPC 入门。使用 VPC 有助于保护您的数据,因为您可以将 VPC 配置为不连接到互联网。使用 VPC 还允许您使用 VPC 流日志监控进出我们的任务容器的所有网络流量。有关更多信息,请参阅 Amazon VPC 用户指南 中的 VPC 流日志。
在创建任务时,您可以通过指定子网和安全组来指定 VPC 配置。当您指定子网和安全组时,Amazon Comprehend 会在其中一个子网中创建与您的安全组关联的弹性网络接口 (ENI)。ENI 允许我们的任务容器连接到您的 VPC 中的资源。有关 ENI 的信息,请参阅 Amazon VPC 用户指南中的弹性网络接口。
注意
对于任务,您只能使用默认租期 VPC 配置子网,您的实例在共享硬件上运行。有关 VPC 租赁属性的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的专用实例。
为亚马逊 VPC 访问配置任务
要在 VPC 中指定子网和安全组,请使用适用 API 的VpcConfig
请求参数,或者在 Amazon Comprehend 控制台中创建任务时提供此信息。Amazon Comprehend 使用这些信息创建 ENI 并将其附加到我们的任务容器中。ENI 为我们的任务容器提供您的 VPC 内未连接到互联网的网络连接。
以下 API 包含VpcConfig
请求参数:
以下是您在 API 调用中包含的 VpcConfig 参数的示例:
"VpcConfig": { "SecurityGroupIds": [ " sg-0123456789abcdef0" ], "Subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2" ] }
要从 Amazon Comprehend 控制台配置 VPC,请在创建任务时从可选的 VPC 设置部分选择配置详细信息。

为 Amazon Comprehend 任务配置您的 VPC
在为您的 Amazon Comprehend 任务配置 VPC 时,请使用以下指南。有关设置 VPC 的信息,请参阅 Amazon VPC 用户指南中的使用 VPC 和子网。
确保子网有足够的 IP 地址
对于任务中的每个实例,您的 VPC 子网应至少有两个私有 IP 地址。有关更多信息,请参阅 Amazon VPC 用户指南中的 IPv4 和 IPv4 子网定型。
创建Amazon S3 VPC 终端节点
如果您将 VPC 配置为任务容器无法访问互联网,则除非您创建允许访问的 VPC 终端节点,否则它们将无法连接到包含您的数据的 Amazon S3 存储桶。通过创建 VPC 终端节点,您可以允许我们的任务容器访问模型工件和您的数据。我们还建议您创建自定义策略,仅允许来自您的 VPC 的请求访问您的 S3 存储桶。有关更多信息,请参阅《Amazon VPC 用户指南》中的 Amazon S3 端点。
以下策略允许访问 S3 存储桶。编辑此政策,仅允许访问您的工作所需的资源。
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketLocation", "s3:DeleteObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "*" } ] }
对终端节点路由表使用默认 DNS 设置,以便标准 Amazon S3 URL(例如http://s3-aws-region.amazonaws.com/MyBucket
)解析。如果您不使用默认 DNS 设置,请确保通过配置终端节点路由表来解析用于指定任务中数据位置的 URL。有关 VPC 终端节点路由表的信息,请参阅 Amazon VPC 用户指南中的网关终端节点路由。
默认终端节点策略允许用户在我们的任务容器上安装来自 Amazon Linux 和 Amazon Linux 2 存储库的软件包。如果您不希望用户安装来自该存储库的包,则创建一个自定义终端节点策略,明确拒绝访问 Amazon Linux 和 Amazon Linux 2 存储库。Comprehend 本身不需要任何这样的软件包,因此不会对功能产生任何影响。以下是拒绝访问这些存储库的策略示例:
{ "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*" ] } ] } { "Statement": [ { "Sid": "AmazonLinux2AMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" ] } ] }
的权限DataAccessRole
当您将 VPC 用于分析任务时,DataAccessRole
用于Create*
和Start*
操作的 VPC 还必须具有访问输入文档和输出存储段的 VPC 的权限。
以下策略为用户提供Create*
和Start*
操作所需的访问权限。DataAccessRole
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ] }
配置 VPC 安全组
对于分布式作业,必须允许同一作业中的不同任务容器之间进行通信。为此,请为您的安全组配置规则,以允许同一安全组的成员之间实现入站连接。有关信息,请参阅 Amazon VPC 用户指南中的安全组规则。
Connect 您的 VPC 之外的资源
如果您将 VPC 配置为无法访问互联网,则使用该 VPC 的任务将无法访问您的 VPC 之外的资源。如果您的任务需要访问您的 VPC 之外的资源,请使用以下选项之一提供访问权限:
如果您的任务需要访问支持接口 VPC 终端节点的AWS服务,请创建一个终端节点以连接到该服务。有关支持接口终端节点的服务列表,请参阅 Amazon VPC 用户指南中的 VPC 终端节点。有关创建接口 VPC 终端节点的信息,请参阅 Amazon VPC 用户指南中的接口 VPC 终端节点 (AWS PrivateLink)。
如果您的任务需要访问不支持接口 VPC 终端节点的AWS服务或外部的AWS资源,请创建 NAT 网关并将您的安全组配置为允许出站连接。有关为您的 VPC 设置 NAT 网关的信息,请参阅 A mazon VPC 用户指南中的场景 2:带有公有子网和私有子网的 VPC (NAT)。