为 Studio 安装策略和权限 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Studio 安装策略和权限

在计划首次运行笔记本之前,请确保安装正确的策略和权限。以下说明将向您介绍如何配置以下权限:

  • 作业执行角色信任关系

  • 附加到作业执行角色的其他 IAM 权限

  • (可选)使用自定义 KMS 密钥的 Amazon KMS 权限策略

重要

如果您的 Amazon 账户属于具有服务控制策略 (SCP) 的组织,则您的有效权限是 SCP 允许的权限与您的 IAM 角色和用户策略允许的权限之间的逻辑交叉点。例如,如果您组织的 SCP 规定您只能访问 us-east-1us-west-1 中的资源,而您的策略仅允许访问 us-west-1us-west-2 中的资源,那么最终您只能访问 us-west-1 中的资源。如果您想行使角色和用户策略中允许的所有权限,则您组织的 SCP 应授予与您自己的 IAM 用户和角色策略相同的权限。有关如何确定允许的请求的详细信息,请参阅确定是允许还是拒绝账户内的请求

信任关系

要修改信任关系,请完成以下步骤:

  1. 打开 IAM 控制台

  2. 在左侧面板中选择角色

  3. 找到笔记本作业的作业执行角色并选择角色名称。

  4. 选择信任关系选项卡。

  5. 选择编辑信任策略

  6. 复制并粘贴以下策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  7. 选择更新策略

其他 IAM 权限

在以下情况下,您可能需要包括其他 IAM 权限:

  • 您的 Studio 执行角色和笔记本作业角色不同

  • 您需要通过 S3 VPC 端点访问 Amazon S3 资源

  • 您想使用自定义 KMS 密钥来加密输入和输出 Amazon S3 存储桶

以下讨论提供了每种情况所需的策略。

如果您的 Studio 执行角色和笔记本作业角色不同,则需要相应权限

以下 JSON 代码片段是一个示例策略,如果不将 Studio 执行角色用作笔记本作业角色,则应将其添加到 Studio 执行角色和笔记本作业角色中。如果需要进一步限制权限,请查看并修改此策略。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::*:role/*", "Condition":{ "StringLike":{ "iam:PassedToService":[ "sagemaker.amazonaws.com", "events.amazonaws.com" ] } } }, { "Effect":"Allow", "Action":[ "events:TagResource", "events:DeleteRule", "events:PutTargets", "events:DescribeRule", "events:PutRule", "events:RemoveTargets", "events:DisableRule", "events:EnableRule" ], "Resource":"*", "Condition":{ "StringEquals":{ "aws:ResourceTag/sagemaker:is-scheduling-notebook-job":"true" } } }, { "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:PutBucketVersioning", "s3:PutEncryptionConfiguration" ], "Resource":"arn:aws:s3:::sagemaker-automated-execution-*" }, { "Sid": "S3DriverAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::sagemakerheadlessexecution-*" ] }, { "Effect":"Allow", "Action":[ "sagemaker:ListTags" ], "Resource":[ "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*", "arn:aws:sagemaker:*:*:training-job/*", "arn:aws:sagemaker:*:*:pipeline/*" ] }, { "Effect":"Allow", "Action":[ "sagemaker:AddTags" ], "Resource":[ "arn:aws:sagemaker:*:*:training-job/*", "arn:aws:sagemaker:*:*:pipeline/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetEncryptionConfiguration", "s3:PutObject", "s3:DeleteObject", "s3:GetObject", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile", "sagemaker:DescribeSpace", "sagemaker:DescribeStudioLifecycleConfig", "sagemaker:DescribeImageVersion", "sagemaker:DescribeAppImageConfig", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob", "sagemaker:Search", "sagemaker:CreatePipeline", "sagemaker:DescribePipeline", "sagemaker:DeletePipeline", "sagemaker:StartPipelineExecution" ], "Resource":"*" } ] }

通过 S3 VPC 端点访问 Amazon S3 资源所需的权限

如果您在私有 VPC 模式下运行 SageMaker Studio 并通过 S3 VPC 终端节点访问 S3,则可以向 VPC 终端节点策略添加权限以控制可通过 VPC 终端节点访问哪些 S3 资源。将以下权限添加到 VPC 端点策略。如果需要进一步限制权限,则可以修改策略,例如可以为 Principal 字段提供更严格的规范。

{ "Sid": "S3DriverAccess", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::sagemakerheadlessexecution-*" }

有关如何设置 S3 VPC 端点策略的详细信息,请参阅编辑 VPC 端点策略

使用自定义 KMS 密钥时所需的权限(可选)

默认情况下,输入和输出 Amazon S3 存储桶使用服务器端加密进行加密,但您可以指定自定义 KMS 密钥来加密输出 Amazon S3 存储桶和附加到笔记本作业的存储卷中的数据。

如果您想使用自定义 KMS 密钥,请附加以下策略并提供您自己的 KMS 密钥 ARN。

{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action":[ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource":"your_KMS_key_ARN" } ] }