设置权限以允许从 SageMaker Studio 发布和启动亚马逊EMR应用程序 - Amazon SageMaker

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

设置权限以允许从 SageMaker Studio 发布和启动亚马逊EMR应用程序

在本节中,我们将详细介绍从 SageMaker Studio 列出和连接到 EMR Serverless 应用程序所需的角色和权限,同时考虑了 Studio 和EMR无服务器应用程序部署在同一个 AWS 账户中或跨不同账户的情况。

必须向其添加必要权限的角色取决于 Studio 和您的EMR无服务器应用程序是位于同一个 AWS 帐户(单一账户)还是位于不同的账户(跨账户)中。涉及两种类型的角色:

  • 执行角色:

    • EMRServerless 使用的@@ 运行时执行角色(基于角色的访问控制IAM角色):EMR无服务器任务执行环境使用这些角色来访问运行时所需的其他 AWS 服务和资源,例如 Amazon S3,用于访问数据、记录、访问 AWS Glue 数据目录或其他基于您的工作负载 CloudWatch 要求的服务。我们建议在运行EMR无服务器应用程序的账户中创建这些角色。

      要了解有关运行时角色的更多信息,请参阅 EMRServerless 用户指南中的 Job 运行时角色

      注意

      您可以为EMR无服务器应用程序定义多个RBAC角色。这些角色可以基于组织内不同用户或群组所需的职责和访问级别。有关RBAC权限的更多信息,请参阅 Amazon Amazon EMR Serverless 的安全最佳实践

    • SageMaker 执行角色:该执行角色 SageMaker 允许执行某些任务,例如从 Amazon S3 存储桶读取数据 CloudWatch、向其中写入日志以及访问工作流程可能需要的其他 AWS 服务。 SageMaker 执行角色还具有名为的特殊权限,iam:PassRole该权限允许 SageMaker 将临时运行时执行角色传递给 EMR Serverless 应用程序。这些角色为EMR无服务器应用程序提供了在运行时与其他 AWS 资源进行交互所需的权限。

  • 可担任的角色(也称为服务访问角色):

    • 这些是执行IAM角色可以扮演 SageMaker的角色,用于执行与管理EMR无服务器应用程序相关的操作。这些角色定义了列出、连接或管理EMR无服务器应用程序时所需的权限和访问策略。它们通常用于跨账户场景,即EMR无服务器应用程序位于与域不同的 AWS 账户中。 SageMaker为您的EMR无服务器应用程序设置专门IAM角色有助于遵循最低权限原则,并确保 Amazon 仅EMR拥有运行任务所需的权限,同时保护您 AWS 账户中的其他资源。

通过正确理解和配置这些角色,您可以确保 SageMaker Studio 拥有与EMR无服务器应用程序交互的必要权限,无论这些应用程序是在同一个账户中部署还是部署在不同的账户中。

单一账户

下图说明了当 Studio 和应用程序部署在同一个 AWS 账户中时,从 Studio 列出和连接EMR无服务器应用程序所需的角色和权限。

该图显示了当 Studio 和应用程序位于同一个 AWS 帐户中时,列出和连接 Studio 中的EMR无服务器应用程序所需的角色和权限。

如果您的 Amazon EMR 应用程序和 Studio 部署在同一个 AWS 账户中,请按照以下步骤操作:

  1. 步骤 1:在 Amazon S3 控制台中检索您用于数据源和输出数据存储的 Amazon S3 存储桶。ARN

    要了解如何按名称查找存储桶,请参阅访问和列出 Amazon S3 存储桶。有关如何创建 Amazon S3 存储桶的信息,请参阅创建存储桶

  2. 第 2 步:在您的账户中为EMR无服务器应用程序创建至少一个任务运行时执行角色(上面的单一账户用例图)。EMRServerlessRuntimeExecutionRoleA选择自定义信任策略作为可信实体。添加您的工作所需的权限。您至少需要对 Amazon S3 存储桶的完全访问权限,以及对 AWS Glue 数据目录的创建和读取权限。

    有关如何为EMR无服务器应用程序创建新的运行时执行角色的详细说明,请按照以下步骤操作:

    1. 导航到 IAM 控制台

    2. 在左侧导航窗格中,选择策略,然后选择创建策略

    3. 添加运行时角色所需的权限,命名策略,然后选择创建策略

      您可以参阅 EMRServerless 的 Job 运行时角色来查找EMR无服务器运行时角色的示例运行时策略。

    4. 在左侧导航窗格中,选择角色,然后选择创建角色

    5. 创建角色页面上,选择自定义信任策略作为可信实体。

    6. 将以下JSON文档粘贴到 “自定义信任策略” 部分,然后选择 “下一步”。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. 添加权限页面中,添加您创建的策略,然后选择下一步

    8. 在 “审阅” 页面上,输入角色的名称(例如)EMRServerlessAppRuntimeRoleA和可选的描述。

    9. 检查角色详细信息,然后选择 Create role

    使用这些角色,您和您的队友可以连接到同一个应用程序,每个应用程序都使用一个运行时角色,其权限范围与您的个人数据访问权限级别相匹配。

    注意

    Spark 会话的运作方式有所不同。Spark 会话是根据 Studio 中使用的执行角色进行隔离的,因此具有不同执行角色的用户将拥有单独的、隔离的 Spark 会话。此外,如果您为域启用了源标识,则可以进一步隔离不同源身份之间的 Spark 会话。

  3. 步骤 3:检索您的私有空间使用的 SageMaker执行角色。ARN

    有关中空间和执行角色的信息 SageMaker,请参阅了解域空间权限和执行角色

    有关如何检索 of 的执行角色ARN SageMaker的更多信息,请参阅获取你的执行角色

    注意

    或者,新用户 SageMaker 可以通过自动创建具有适当权限的新 SageMaker 执行角色来简化设置过程。在这种情况下,请跳过步骤 3 和 4。相反,用户可以:

    • SageMaker控制台左侧导航栏的 “域” 菜单中创建新时,选择 “为组织设置” 选项。

    • 从控制台的 “角色管理器” 菜单中创建新的执行角色,然后将该角色附加到现有的域或用户配置文件。

    创建角色时,在 “用户将执行哪些机器学习活动?” 中选择 “运行 Studio EMR 无服务器应用程序” 选项 然后,提供您的 Amazon S3 存储桶的名称以及您希望您的EMR无服务器应用程序使用的任务运行时执行角色(步骤 2)。

    SageMaker 角色管理器会自动将运行和连接到 EMR Serverless 应用程序所需的权限添加到新的执行角色中。使用SageMaker 角色管理器,您只能为EMR无服务器应用程序分配一个运行时角色,并且该应用程序必须使用在部署 Studio 的同一个帐户中运行,使用在同一帐户中创建的运行时角色。

  4. 步骤 4:将以下权限附加到访问您的EMR无服务器应用程序的 SageMaker 执行角色。

    1. 从 IAM 打开 https://console.aws.amazon.com/sagemaker/ 控制台。

    2. 选择 “角色”,然后在 “搜索” 字段中按名称搜索您的执行角色。角色名称是的最后一部分ARN,位于最后一个正斜杠 (/) 之后。

    3. 点击链接进入您的职位。

    4. 选择添加权限,然后选择创建内联策略

    5. JSON选项卡中,添加允许EMR无服务器访问和操作的 Amazon EMR 无服务器权限。有关策略文档的详细信息,请参阅中的EMR无服务器策略参考政策更换 region, accountID,并通过了 EMRServerlessAppRuntimeRole(s) 在将语句列表复制到您角色的内联策略之前,使用其实际值。

      注意

      您可以根据需要在权限中包含任意数量的运行时角色ARN字符串,并用逗号分隔。

    6. 选择 “下一步”,然后提供策略名称

    7. 选择创建策略

    8. 重复创建内联策略步骤,添加另一个内联策略,授予角色更新域、用户配置文件和空间的权限。有关SageMakerUpdateResourcesPolicy策略文档的详细信息,请参阅中的域、用户配置文件和空间更新操作策略参考政策。更换 region 以及 accountID 在将语句列表复制到角色的内联策略之前,先使用它们的实际值。

  5. 第 5 步

    将运行时角色列表与您的用户配置文件或域相关联,这样您就可以直观地浏览角色列表并选择要在连接到EMR无服务器应用程序时使用的角色。 JupyterLab您可以使用 SageMaker 控制台或以下脚本。随后,您在笔记本上创建的所有 Apache Spark 或 Apache Hive 作业将仅访问附加到所选运行时角色的策略所允许的数据和资源。

    重要

    未能完成此步骤将使您无法将 JupyterLab 笔记本电脑连接到EMR无服务器应用程序。

    SageMaker console

    要使用 SageMaker 控制台将运行时角色与您的用户配置文件或域关联起来,请执行以下操作:

    1. 导航到 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/

    2. 在左侧导航窗格中,选择,然后使用已更新其权限的 SageMaker 执行角色选择域。

      • 要将运行时角色添加到您的域中:在域名详细信息页面的应用程序配置选项卡中,导航到该JupyterLab部分。

      • 要将运行时角色添加到用户配置文件中:在域名详细信息页面上,选择用户配置文件选项卡,使用您更新其权限的 SageMaker 执行角色选择用户配置文件。在 “应用程序配置” 选项卡中,导航至该JupyterLab部分。

    3. 选择编辑并添加您的EMR无服务器运行时执行角色。ARNs

    4. 选择提交

    下次通过连接到EMR无服务器应用程序时 JupyterLab,运行时角色应出现在下拉菜单中供选择。

    Python script

    在使用已更新权限的 SageMaker 执行角色从私有空间启动的 JupyterLab 应用程序中,在终端中运行以下命令。将domainIDuser-profile-namestudio-accountID、和 EMRServerlessRuntimeExecutionRole (s) 替换为正确的值。此代码段更新了特定用户配置文件 (client.update_userprofile) 或域设置 () 的用户配置文件设置,特别是关联您之前创建的EMR无服务器运行时执行角色。client.update_domain

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'ExecutionRoleArns': ["arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleAA"] } } }) resp = client.describe_domain(DomainId="domainID") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

交叉账户

下图说明了当 Studio 和应用程序部署在不同的 AWS 账户中时,列出并连接到 Studio 中的EMR无服务器应用程序所需的角色和权限。

该图显示了当 Studio 和应用程序处于不同 AWS 帐户时,列出和连接来自 Studio 的EMR无服务器应用程序所需的角色和权限。

有关在 AWS 账户上创建角色的更多信息,请参阅https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html创建IAM角色(控制台)。

在您开始使用之前:

如果您的EMR无服务器应用程序和 Studio 部署在不同的 AWS 账户中,则需要为两个账户配置权限。

在EMR无服务器账户上

按照以下步骤为运行 EMR Serverless 应用程序的账户(也称为信任账户)创建必要的角色和策略:

  1. 第 1 步:在您的账户中为EMR无服务器应用程序创建至少一个任务运行时执行角色(上面跨账户图表EMRServerlessRuntimeExecutionRoleB中的)。选择自定义信任策略作为可信实体。添加您的工作所需的权限。您至少需要对 Amazon S3 存储桶的完全访问权限,以及对 AWS Glue 数据目录的创建和读取权限。

    有关如何为EMR无服务器应用程序创建新的运行时执行角色的详细说明,请按照以下步骤操作:

    1. 导航到 IAM 控制台

    2. 在左侧导航窗格中,选择策略,然后选择创建策略

    3. 添加运行时角色所需的权限,命名策略,然后选择创建策略

      有关EMR无服务器运行时角色的运行时策略示例,请参阅 Amazon Serv EMR erless 的作业运行时角色

    4. 在左侧导航窗格中,选择角色,然后选择创建角色

    5. 创建角色页面上,选择自定义信任策略作为可信实体。

    6. 将以下JSON文档粘贴到 “自定义信任策略” 部分,然后选择 “下一步”。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. 添加权限页面中,添加您创建的策略,然后选择下一步

    8. 在 “审阅” 页面上,输入角色的名称(例如)EMRServerlessAppRuntimeRoleB和可选的描述。

    9. 检查角色详细信息,然后选择 Create role

    使用这些角色,您和您的队友可以连接到同一个应用程序,每个应用程序都使用一个运行时角色,其权限范围与您的个人数据访问权限级别相匹配。

    注意

    Spark 会话的操作方式不同。Spark 会话是根据 Studio 使用的执行角色进行隔离的,因此具有不同执行角色的用户将拥有单独的、隔离的 Spark 会话。此外,如果您为域启用了源标识,则可以进一步隔离不同源身份之间的 Spark 会话。

  2. 步骤 2:使用以下配置创建名为AssumableRole的自定义IAM角色:

    • 权限:向授予必要的权限(Amazon EMR 无服务器策略),AssumableRole以允许访问EMR无服务器资源。此角色也称为访问角色

    • 信任关系:为配置信任策略,AssumableRole以允许从需要访问权限的 Studio 账户担任执行角色(跨账户图SageMakerExecutionRole中的)。

    通过担任该角色,Studio 可以临时访问其在EMR无服务器帐户中所需的权限。

    有关如何在您的EMR无服务器账户AssumableRole中创建新 AWS 账户的详细说明,请按照以下步骤操作:

    1. 导航到 IAM 控制台

    2. 在左侧导航窗格中,选择策略,然后选择创建策略

    3. JSON选项卡中,添加允许EMR无服务器访问和操作的 Amazon EMR 无服务器权限。有关策略文档的详细信息,请参阅中的EMR无服务器策略参考政策在将region语句列表复制到角色的内联策略之前,将accountID、和 passed EMRServerlessAppRuntimeRole (s) 替换为它们的实际值。

      注意

      EMRServerlessAppRuntimeRole以下是在步骤 1 中创建的作业运行时执行角色(上面交叉账户EMRServerlessAppRuntimeRoleB中的)。您可以根据需要在权限中包含任意数量的运行时角色ARN字符串,并用逗号分隔。

    4. 选择 “下一步”,然后提供策略名称

    5. 选择创建策略

    6. 在左侧导航窗格中,选择角色,然后选择创建角色

    7. 创建角色页面上,选择自定义信任策略作为可信实体。

    8. 将以下JSON文档粘贴到 “自定义信任策略” 部分,然后选择 “下一步”。

      studio-account替换为 Studio 帐户 ID 和AmazonSageMaker-ExecutionRole您的 JupyterLab 空间使用的执行角色。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:role/service-role/AmazonSageMaker-ExecutionRole" }, "Action": "sts:AssumeRole" } ] }
    9. 添加权限页面中,添加EMRServerlessAppRuntimeRoleB您在步骤 2 中创建的权限,然后选择下一步。

    10. 在 “审阅” 页面上,输入角色的名称(例如)AssumableRole和可选的描述。

    11. 检查角色详细信息,然后选择 Create role

    有关在 AWS 账户上创建角色的更多信息,请参阅创建IAM角色(控制台)

在工作室账号上

在部署 Studio 的账户(也称为可信账户)上,更新访问您的EMR无服务器应用程序的 SageMaker执行角色,使其具有访问信任账户中资源所需的权限。

  1. 步骤 1:检索您的空间使用的 SageMaker 执行角色。ARN

    有关中空间和执行角色的信息 SageMaker,请参阅了解域空间权限和执行角色

    有关如何检索 of 的执行角色ARN SageMaker的更多信息,请参阅获取你的执行角色

  2. 步骤 2:将以下权限附加到访问您的EMR无服务器应用程序的 SageMaker 执行角色。

    1. 从 IAM 打开 https://console.aws.amazon.com/iam/ 控制台。

    2. 选择 “角色”,然后在 “搜索” 字段中按名称搜索您的执行角色。角色名称是的最后一部分ARN,位于最后一个正斜杠 (/) 之后。

    3. 点击链接进入您的职位。

    4. 选择添加权限,然后选择创建内联策略

    5. JSON选项卡中,添加内联策略,授予角色更新域、用户配置文件和空间的权限。有关SageMakerUpdateResourcesPolicy策略文档的详细信息,请参阅中的域、用户配置文件和空间更新操作策略参考政策。在将语句列表复制到角色的内联策略之前,请将regionaccountID替换为它们的实际值。

    6. 选择 “下一步”,然后提供策略名称

    7. 选择创建策略

    8. 重复 “创建内联策略” 步骤,添加另一个策略,授予执行角色代入权限,AssumableRole然后执行该角色的访问策略允许的操作。

      emr-account替换为亚马逊EMR无服务器账户 ID,并AssumableRole替换为在亚马逊无EMR服务器账户中创建的假设角色的名称。

      { "Version": "2012-10-17", "Statement": { "Sid": "AllowSTSToAssumeAssumableRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::emr-account:role/AssumableRole" } }
  3. 第 3 步

    将运行时角色列表与您的域或用户配置文件相关联,这样您就可以直观地浏览角色列表,并从 JupyterLab中选择连接到EMR无服务器应用程序时要使用的角色。您可以使用 SageMaker 控制台或以下脚本。随后,您在笔记本上创建的所有 Apache Spark 或 Apache Hive 作业将仅访问附加到所选运行时角色的策略所允许的数据和资源。

    重要

    未能完成此步骤将使您无法将 JupyterLab 笔记本电脑连接到EMR无服务器应用程序。

    SageMaker console

    要使用 SageMaker 控制台将运行时角色与您的用户配置文件或域关联起来,请执行以下操作:

    1. 导航到 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/

    2. 在左侧导航窗格中,选择,然后使用已更新其权限的 SageMaker 执行角色选择域。

      • 要将运行时角色添加到您的域中:在域名详细信息页面的应用程序配置选项卡中,导航到该JupyterLab部分。

      • 要将运行时角色添加到用户配置文件中:在域名详细信息页面上,选择用户配置文件选项卡,使用您更新其权限的 SageMaker 执行角色选择用户配置文件。在 “应用程序配置” 选项卡中,导航至该JupyterLab部分。

    3. 选择 “编辑”,ARNs然后添加您的假设角色和EMR无服务器运行时执行角色。

    4. 选择提交

    下次通过连接到EMR无服务器应用程序时 JupyterLab,运行时角色应出现在下拉菜单中供选择。

    Python script

    在使用已更新权限的 SageMaker 执行角色从私有空间启动的 JupyterLab 应用程序中,在终端中运行以下命令。将domainIDuser-profile-name、和studio-accountIDEMRServerlessRuntimeExecutionRole替换为正确的值。此代码段更新网域中特定用户配置文件 (client.update_userprofile) 或网域设置 (client.update_domain) 的用户配置文件设置。 SageMaker具体而言,它会为你之前创建的 Amazon EMR Serverless 设置运行时执行角色。它还允许 JupyterLab 应用程序IAM扮演特定角色 (AssumableRole),以便在 Amazon EMR 账户中运行EMR无服务器应用程序。

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"], 'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::emr-accountID:role/AnotherRuntimeExecutionRole"] } } }) resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

参考政策

  • EMR无服务器策略:此策略允许管理EMR无服务器应用程序,包括列出、创建(使用必需的 SageMaker 标签)、启动、停止、获取详细信息、删除、访问 Livy 端点和获取任务运行仪表板。它还允许将所需的EMR无服务器应用程序运行时角色传递给服务。

    • EMRServerlessListApplications:允许对指定区域和 AWS 账户中的所有EMR无服务器资源执行 ListApplications 操作。

    • EMRServerlessPassRole:允许在提供的 AWS 账户中传递指定的运行时角色,但仅当角色被传递给时emr-serverless.amazonaws.com service

    • EMRServerlessCreateApplicationAction:允许对 CreateApplication 指定区域和 AWS 账户中的EMR无服务器资源执行和 TagResource 操作。但是,它要求正在创建或标记的资源必须具有具有非空值的特定标签键(sagemaker:domain-arnsagemaker:user-profile-arn、和sagemaker:space-arn)。

    • EMRServerlessDenyTaggingAction:如果资源未设置任何指定的标签键(sagemaker:domain-arn、和sagemaker:space-arn),则对指定区域和 AWS 账户中的EMR无服务器资源执行和操作。 TagResource UntagResource sagemaker:user-profile-arn

    • EMRServerlessActions:允许对EMR无服务器资源执行各种操作(StartApplicationStopApplicationGetApplicationDeleteApplicationAccessLivyEndpoints、、、、和GetDashboardForJobRun),但前提是这些资源的指定标签键(sagemaker:domain-arnsagemaker:user-profile-arn、和sagemaker:space-arn)设置为非空值。

    所提供的JSON文档中定义的IAM策略授予了这些权限,但限制了对EMR无服务器应用程序上存在的特定 SageMaker 标签的访问权限,以确保只能管理与特定 SageMaker 域、用户个人资料和空间关联的 Amazon EMR Serverless 资源。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessListApplications", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*" }, { "Sid": "EMRServerlessPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::accountID:EMRServerlessAppRuntimeRole", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } }, { "Sid": "EMRServerlessCreateApplicationAction", "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:TagResource" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "sagemaker:domain-arn", "sagemaker:user-profile-arn", "sagemaker:space-arn" ] }, "Null": { "aws:RequestTag/sagemaker:domain-arn": "false", "aws:RequestTag/sagemaker:user-profile-arn": "false", "aws:RequestTag/sagemaker:space-arn": "false" } } }, { "Sid": "EMRServerlessDenyTaggingAction", "Effect": "Deny", "Action": [ "emr-serverless:TagResource", "emr-serverless:UntagResource" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "true", "aws:ResourceTag/sagemaker:user-profile-arn": "true", "aws:ResourceTag/sagemaker:space-arn": "true" } } }, { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:GetApplication", "emr-serverless:DeleteApplication", "emr-serverless:AccessLivyEndpoints", "emr-serverless:GetDashboardForJobRun" ], "Resource": "arn:aws:emr-serverless:region:accountID:/applications/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "false", "aws:ResourceTag/sagemaker:user-profile-arn": "false", "aws:ResourceTag/sagemaker:space-arn": "false" } } } ] }
  • 域、用户配置文件和空间更新操作策略:以下策略授予在指定区域和 AWS 账户内更新 SageMaker 域、用户配置文件和空间的权限。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerUpdateResourcesPolicy", "Effect": "Allow", "Action": [ "sagemaker:UpdateDomain", "sagemaker:UpdateUserprofile", "sagemaker:UpdateSpace" ], "Resource": [ "arn:aws:sagemaker:region>:accountID:domain/*", "arn:aws:sagemaker:region:accountID:user-profile/*" ] } ] }