本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Studio 设置策略和权限
在安排首次运行笔记本之前,您需要安装适当的策略和权限。以下内容提供了有关设置以下权限的说明:
-
作业执行角色信任关系
-
附加到任务执行角色的其他IAM权限
-
(可选)使用自定义KMS密钥的 AWS KMS 权限策略
重要
如果您的 AWS 账户属于具有服务控制策略 (SCP) 的组织,则您的有效权限是您的IAM角色SCPs和用户策略允许的内容与允许的权限之间的逻辑交叉点。例如,如果您的组织SCP指定您只能访问us-east-1
和中的资源us-west-1
,而您的策略仅允许您访问us-west-1
和中的资源us-west-2
,那么最终您只能访问和中的资源us-west-1
。如果您想行使角色和用户策略中允许的所有权限,则您的组织SCPs应授予与您自己的IAM用户和角色策略相同的权限集。有关如何确定允许的请求的详细信息,请参阅确定是允许还是拒绝账户内的请求。
信任关系
要修改信任关系,请完成以下步骤:
-
打开控制IAM台
。 -
在左侧面板中选择角色。
-
找到笔记本作业的作业执行角色并选择角色名称。
-
选择信任关系选项卡。
-
选择编辑信任策略。
-
复制并粘贴以下策略:
{ "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" } ] }
-
选择更新策略。
其他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
" } ] }