向用户授予在整个 ML 生命周期中使用大数据的权限 - 亚马逊 SageMaker AI

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

向用户授予在整个 ML 生命周期中使用大数据的权限

Amazon SageMaker Canvas 用户使用大于 10 GB 的 CSV 格式的数据集或大于 2.5 GB 的 Parquet 格式的数据集需要特定的权限才能处理大型数据。这些权限对于在整个机器学习生命周期内管理大规模数据至关重要。当数据集超过规定的阈值或应用程序的本地内存容量时, SageMaker Canvas 会使用 Amazon EMR Serverless 进行高效处理。这适用于:

  • 数据导入:导入随机或分层采样的大型数据集。

  • 数据准备:将处理过的数据从 Canvas 中的 Data Wrangler 导出到 Amazon S3、新的 Canvas 数据集或 Canvas 模型。

  • 模型构建:在大型数据集上训练模型。

  • 推理:在大型数据集上进行预测。

默认情况下, SageMaker Canvas 使用 EMR Serverless 通过以下应用程序设置运行这些远程作业:

  • 预初始化容量:未配置

  • 应用程序限制:最大容量为 400 vCPUs,CPUs 每个账户最大并发容量 16 v,3000 GB 内存,20000 GB 磁盘

  • 元数据仓配置: AWS Glue Data Catalog

  • 应用程序日志: AWS 托管存储(已启用),使用 AWS 自有加密密钥

  • 应用程序行为:提交作业时自动启动,应用程序闲置 15 分钟后自动停止

要启用这些大型数据处理功能,用户需要必要的权限,这些权限可通过 Amazon A SageMaker I 域设置授予。授予这些权限的方法取决于您的 Amazon SageMaker AI 域最初的设置方式。我们将介绍三种主要场景:

  • 快速域设置

  • 自定义域设置(可访问公共互联网/无 VPC)

  • 自定义域设置(含 VPC,不可访问公共互联网)

每种场景都需要特定的步骤,以确保用户拥有在 Canvas 的整个机器学习生命周期中利用 EMR Serverless 进行大型数据处理所需的权限。 SageMaker

场景 1:快速域设置

如果您在创建 SageMaker AI 域时使用了快速设置选项,请按照以下步骤操作:

  1. 导航至 Amazon SageMaker AI 域名设置:

    1. 打开 Amazon A SageMaker I 控制台,网址为https://console.aws.amazon.com/sagemaker/

    2. 在左侧导航窗格中,选择

    3. 选择您的域。

    4. 选择应用程序配置选项卡。

    5. 滚动到 Canvas 部分,然后选择 编辑

  2. 启用大数据处理:

    1. 大数据处理配置部分,打开启用 EMR Serverless 以进行大数据处理

    2. 创建或选择 EMR Serverless 角色:

      1. 选择创建并使用新的执行角色来创建与 EMR Serverless 和附加的 AWS 托管策略: AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy 策略具有信任关系的新 IAM 角色。此 IAM 角色由 Canvas 担任,用于创建 EMR Serverless 作业。

      2. 或者,如果您已经拥有一个与 EMR Serverless 具有信任关系的执行角色,请选择使用现有执行角色,然后从下拉列表中选择您的角色。

        • 现有角色的名称必须以 AmazonSageMakerCanvasEMRSExecutionAccess- 开头。

        • 您选择的角色还应至少拥有 AWS 托管策略: AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy 策略中描述的权限。

        • 此角色应具有 EMR Serverless 信任策略,如下所示:

          { "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessTrustPolicy", "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<your-account-id>" } } } ] }
  3. (可选)为自定义 Amazon S3 存储桶添加 Amazon S3 权限:

    1. Canvas 托管式策略会自动授予对名称中包含 sagemakerSageMaker AI 的 Amazon S3 存储桶的读写权限。它还会为带有 "SageMaker": "true" 标签的自定义 Amazon S3 存储桶中的对象授予读取权限。

    2. 对于没有所需标签的自定义 Amazon S3 存储桶,请将以下策略添加到您的 EMR Serverless 角色中:

    3. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::*" ] } ] }
    4. 我们建议您将权限范围缩小到您希望 Canvas 访问的特定 Amazon S3 存储桶范围。

  4. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

场景 2:自定义域设置(可访问公共互联网/无 VPC)

如果您创建或使用自定义域,请按照场景 1 中的步骤 1-3 操作,然后执行以下其他步骤:

  1. 为你的 Amazon A SageMaker I 执行角色添加亚马逊 ECR DescribeImages 操作权限,因为 Canvas 利用公共 Amazon ECR Docker 镜像进行数据准备和模型训练:

    1. 登录 AWS 控制台并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/

    2. 选择角色

    3. 在搜索框中,按名称搜索您的 SageMaker AI 执行角色并将其选中。

    4. 将以下策略添加到您的 SageMaker AI 执行角色。这可以通过将其添加为新的内联策略或将策略声明附加到现有策略中来实现。请注意,一个 IAM 角色最多可以附加 10 个策略。

      { "Version": "2012-10-17", "Statement": [{ "Sid": "ECRDescribeImagesOperation", "Effect": "Allow", "Action": "ecr:DescribeImages", "Resource": [ "arn:aws:ecr:*:*:repository/sagemaker-data-wrangler-emr-container", "arn:aws:ecr:*:*:repository/ap-dataprep-emr" ] }] }
  2. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

场景 3:自定义域设置(有 VPC,不可访问公共互联网)

如果您创建或使用自定义域,请按照场景 2 的所有步骤操作,然后执行以下其他步骤:

  1. 确保 VPC 子网是私有的:

    1. 确认子网的路由表中没有将 0.0.0.0/0 映射到互联网网关的条目。

  2. 添加创建网络界面的权限:

    1. 当使用 SageMaker Canvas 和 EMR Serverless 进行大规模数据处理时,EMR Serverless 需要能够创建 Amazon 才能 EC2 ENIs 启用 EMR 无服务器应用程序与您的 VPC 资源之间的网络通信。

    2. 将以下策略添加到您的 Amazon SageMaker AI 执行角色中。这可以通过将其添加为新的内联策略或将策略声明附加到现有策略中来实现。请注意,一个 IAM 角色最多可以附加 10 个策略。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEC2ENICreation", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com" } } } ] }
  3. (可选)将 ENI 的创建限制在特定子网内:

    1. 为了通过限制在您的 VPC 内创建某些子网 ENIs 来进一步保护您的设置,您可以根据特定条件标记每个子网。

    2. 使用以下 IAM 策略确保 EMR 无服务器应用程序只能在允许的子网和安全组 EC2 ENIs 内创建 Amazon:

      { "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/KEY": "VALUE" } } }
  4. 按照页面在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas上的步骤为 Amazon S3 设置 VPC 终端节点,EMR Serverless 和 Canvas 使用的其他 AWS 服务都需要使用该终端节点。 SageMaker

  5. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

按照这些步骤操作,您可以在 SageMaker Canvas 中为各种域设置(包括具有自定义 VPC 配置的域设置)启用大数据处理。请记住在进行这些更改后重新启动 SageMaker Canvas 应用程序以应用新权限。