为 Amazon SageMaker Clarify 作业授予您的 Amazon VPC 中的资源的访问权限 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为 Amazon SageMaker Clarify 作业授予您的 Amazon VPC 中的资源的访问权限

要控制对您的数据和 SageMaker Clarify 作业的访问,我们建议您创建一个私有 Amazon VPC 并对其进行配置,确保无法通过公共互联网访问您的作业。有关创建和配置用于处理作业的 Amazon VPC 的信息,请参阅为 SageMaker Processing 作业授予您的 Amazon VPC 中的资源的访问权限

本文档介绍如何添加符合 SageMaker Clarify 作业要求的其他 Amazon VPC 配置。

配置 SageMaker Clarify 作业以进行 Amazon VPC 访问

在为 SageMaker Clarify 作业配置私有 Amazon VPC 时,您需要指定子网和安全组,并使作业能够在计算训练后偏差指标和特征贡献时从 SageMaker 模型获取推理,以帮助解释模型预测。

SageMaker Clarify 作业 Amazon VPC 子网和安全组

您可以通过多种方式将私有 Amazon VPC 中的子网和安全组分配给 SageMaker Clarify 作业,具体取决于创建作业的方式。

  • SageMaker 控制台:在 SageMaker 控制面板中创建作业时提供此信息。从处理菜单中选择处理作业,然后选择创建处理作业。在网络面板中选择 VPC 选项,然后使用下拉列表提供子网和安全组。确保此面板中提供的网络隔离选项已关闭。

  • SageMaker API:使用 CreateProcessingJob API 的 NetworkConfig.VpcConfig 请求参数,如以下示例所示:

    "NetworkConfig": { "VpcConfig": { "Subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2" ], "SecurityGroupIds": [ "sg-0123456789abcdef0" ] } }
  • SageMaker Python SDK:使用 SageMakerClarifyProcessor API 或 Processor API 的 NetworkConfig 参数,如以下示例所示:

    from sagemaker.network import NetworkConfig network_config = NetworkConfig( subnets=[ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2", ], security_group_ids=[ "sg-0123456789abcdef0", ], )

SageMaker 使用这些信息来创建网络接口,并将其附加到 SageMaker Clarify 作业。网络接口在未连接到公共互联网的 Amazon VPC 中为 SageMaker Clarify 作业提供网络连接。它们还允许 SageMaker Clarify 作业连接到您的私有 Amazon VPC 中的资源。

注意

必须关闭 SageMaker Clarify 作业的网络隔离选项(该选项默认关闭),这样 SageMaker Clarify 作业才能与影子端点进行通信。

配置用于推理的 Amazon VPC 模型

为了计算训练后偏差指标和可解释性,SageMaker Clarify 作业需要从 SageMaker 模型中获取推理,该模型由 SageMaker Clarify 处理作业的分析配置model_name 参数指定。或者,如果您使用 SageMaker Python SDK 中的 SageMakerClarifyProcessor API,则作业需要获取由 ModelConfig 类指定的 model_name。为此,SageMaker Clarify 作业使用模型创建一个临时端点,称为影子端点,然后将模型的 Amazon VPC 配置应用于该影子端点。

要在私有 Amazon VPC 中为 SageMaker 模型指定子网和安全组,请使用 CreateModel API 的 VpcConfig 请求参数,或者在使用控制台中的 SageMaker 控制面板创建模型时提供此信息。以下是您在调用 CreateModel 时将包含的 VpcConfig 参数的示例:

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

您可以使用 SageMaker Clarify 处理作业分析配置initial_instance_count 参数,指定要启动的影子端点的实例数。或者,如果您使用 SageMaker Python SDK 中的 SageMakerClarifyProcessor API,则作业需要获取由 ModelConfig 类指定的 instance_count

注意

即使在创建影子端点时只请求一个实例,在不同的可用区,模型的 ModelConfig 中也至少需要两个子网。否则无法创建影子端点并会显示以下错误:

ClientError: 托管端点 sagemaker-clarify-endpoint-XXX 时出错:失败。原因: 找不到至少 2 个请求实例类型为 YYY 且与 SageMaker 子网重叠的可用区。

如果您的模型需要 Amazon S3 中的模型文件,则模型 Amazon VPC 需要有一个 Amazon S3 VPC 端点。有关为 SageMaker 模型创建和配置 Amazon VPC 的更多信息,请参阅为 SageMaker 托管端点授予您的 Amazon VPC 中的资源的访问权限

为 SageMaker Clarify 作业配置您的私有 Amazon VPC

通常,您可以按照为 SageMaker Processing 配置私有 VPC 中的步骤,为 SageMaker Clarify 作业配置您的 Amazon 私有 VPC。以下是 SageMaker Clarify 作业的一些要点和特殊要求。

连接到 Amazon VPC 之外的资源

如果您将 Amazon VPC 配置为不允许公共互联网访问,则需要进行一些额外的设置才能授予 SageMaker Clarify 作业访问 Amazon VPC 之外资源和服务的权限。例如,需要一个 Amazon S3 VPC 端点,因为 SageMaker Clarify 作业需要从 S3 存储桶加载数据集并将分析结果保存到 S3 存储桶。有关更多信息,请参阅创建指南中的创建 Amazon S3 VPC 端点。此外,如果 SageMaker Clarify 作业需要从影子端点获取推理,则它需要再调用多项 Amazon 服务。

  • 创建 Amazon SageMaker API 服务 VPC 端点:SageMaker Clarify 作业需要调用 Amazon SageMaker API 服务来操作影子端点,或者描述 SageMaker 模型以进行 Amazon VPC 验证。您可以按照使用 Amazon PrivateLink 保护所有 Amazon SageMaker API 调用博客中提供的指导,创建一个允许 SageMaker Clarify 作业进行服务调用的 Amazon SageMaker API VPC 端点。请注意,Amazon SageMaker API 服务的服务名称为 com.amazonaws.region.sagemaker.api,其中 region 是您的 Amazon VPC 所在区域的名称。

  • 创建 Amazon SageMaker Runtime VPC 端点:SageMaker Clarify 作业需要调用 Amazon SageMaker Runtime 服务,该服务将这些调用路由到影子端点。设置步骤与 Amazon SageMaker API 服务的设置步骤类似。请注意,Amazon SageMaker Runtime 服务的服务名称为 com.amazonaws.region.sagemaker.runtime,其中 region 是您的 Amazon VPC 所在区域的名称。

配置 Amazon VPC 安全组

当通过以下方式之一指定两个或更多个处理实例时,SageMaker Clarify 作业支持分布式处理:

  • SageMaker 控制台:在创建处理作业页面作业设置面板的资源配置部分中指定实例计数

  • SageMaker API:使用 CreateProcessingJob API 创建作业时指定 InstanceCount

  • SageMaker Python SDK:使用 SageMakerClarifyProcessor API 或 Processor API 时指定 instance_count

在分布式处理中,您必须允许在同一处理作业中的不同实例之间进行通信。为此,请为您的安全组配置规则,以允许同一安全组的成员之间实现入站连接。有关信息,请参阅安全组规则