RStudio 使用创建 Amazon SageMaker AI 域名 Amazon CLI - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

RStudio 使用创建 Amazon SageMaker AI 域名 Amazon CLI

重要

允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。之所以需要为资源添加标签的权限,是因为 Studio 和 Studio Classic 会自动为创建的任何资源添加标签。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供标记 A SageMaker I 资源的权限

Amazon 亚马逊 A SageMaker I 的托管策略授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。

以下主题介绍如何使用 RStudio 启用后登录 SageMaker Amazon AI 域 Amazon CLI。要使用登录 Amazon Web Services Management Console,请参阅亚马逊 SageMaker AI 域名概述

先决条件

创建 DomainExecution 角色

要启动 RStudio 应用程序,您必须提供一个DomainExecution角色。此角色用于确定是否 RStudio 需要在创建 Amazon A SageMaker I 域时启动。Amazon A SageMaker I 还使用此角色来访问 RStudio 许可证和推送 RStudio 日志。 

注意

DomainExecution角色应至少具有访问 RStudio 许可证的 Amazon License Manager 权限,以及将日志推送到您的账户的 CloudWatch 权限。

以下过程说明如何使用 Amazon CLI创建 DomainExecution 角色。

  1. 使用以下内容创建名为 assume-role-policy.json 的文件。

    { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] } } ] }
  2. 创建 DomainExecution 角色。<REGION> 应该是启动您的域的 Amazon 区域。

    aws iam create-role --region <REGION> --role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json
  3. 使用以下内容创建名为 domain-setting-policy.json 的文件。该政策允许 RStudioServerPro 应用程序访问必要的资源,并允许 Amazon SageMaker AI 在现有 RStudioServerPro RStudioServerPro 应用程序处于DeletedFailed状态时自动启动应用程序。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses", "license-manager:GetLicense", "license-manager:CheckoutLicense", "license-manager:CheckInLicense", "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogDelivery", "logs:GetLogEvents", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery", "sagemaker:CreateApp" ], "Resource": "*" } ] }
  4. 创建附加到 DomainExecution 角色的域设置策略。请注意响应中的 PolicyArn,您需要在以下步骤中输入该 ARN。

    aws iam create-policy --region <REGION> --policy-name domain-setting-policy --policy-document file://domain-setting-policy.json
  5. domain-setting-policy 附加到 DomainExecution 角色。使用上一步返回的 PolicyArn

    aws iam attach-role-policy --role-name DomainExecution --policy-arn <POLICY_ARN>

使用 RStudio 应用程序创建亚马逊 SageMaker AI 域名

当您使用带有指定RStudioServerProDomainSettings参数的 create-domain CLI 命令创建 Amazon SageMaker AI 域时,该 RStudioServerPro 应用程序会自动启动。启动 RStudioServerPro 应用程序时,Amazon SageMaker AI 会检查账户中是否有有效的 RStudio 许可证,如果找不到许可证,则域创建失败。

Amazon A SageMaker I 域的创建因身份验证方法和网络类型而异。这些选项必须一起使用,即选择一种身份验证方法并选择一种网络连接类型。有关创建新域的要求的更多信息,请参阅CreateDomain

支持以下身份验证类型:

  • IAM Auth

  • SSO Auth

支持以下网络连接类型:

  • PublicInternet

  • VPCOnly

身份验证方法

IAM 身份验证模式

以下内容显示了如何在 RStudio 启用和IAM Auth网络类型的情况下创建 SageMaker Amazon AI 域。有关的更多信息 Amazon Identity and Access Management,请参阅什么是 IAM?

  • DomainExecutionRoleArn 应该是上一步中创建的角色的 ARN。

  • ExecutionRole是授予亚马逊 A SageMaker I 域中用户的角色的 ARN。

  • vpc-id应该是您的亚马逊 Virtual Private Cloud 的 ID。 subnet-ids应该是以空格分隔的子网 IDs列表。有关vpc-id和的信息subnet-ids,请参阅VPCs 和子网

  • RStudioPackageManagerUrlRStudioConnectUrl是可选的,应分别设置为 Pack URLs age Man RStudio ager 和 RStudio Connect 服务器的。

  • app-network-access-type 应该是 PublicInternetOnlyVPCOnly

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode IAM \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type <NETWORK_ACCESS_TYPE>

使用 IAM Identity Center 进行身份验证

以下内容显示了如何在 RStudio 启用和SSO Auth网络类型的情况下创建 SageMaker Amazon AI 域。 Amazon IAM Identity Center 必须为启动域名的区域启用。有关 IAM 身份中心的更多信息,请参阅什么是 Amazon IAM Identity Center?

  • DomainExecutionRoleArn 应该是上一步中创建的角色的 ARN。

  • ExecutionRole是授予亚马逊 A SageMaker I 域中用户的角色的 ARN。

  • vpc-id应该是您的亚马逊 Virtual Private Cloud 的 ID。 subnet-ids应该是以空格分隔的子网 IDs列表。有关vpc-id和的信息subnet-ids,请参阅VPCs 和子网

  • RStudioPackageManagerUrlRStudioConnectUrl是可选的,应分别设置为 Pack URLs age Man RStudio ager 和 RStudio Connect 服务器的。

  • app-network-access-type 应该是 PublicInternetOnlyVPCOnly

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode SSO \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type <NETWORK_ACCESS_TYPE>

连接类型

PublicInternet/直接互联网网络类型

以下内容显示了如何在 RStudio 启用和PublicInternet网络类型的情况下创建 SageMaker Amazon AI 域。

  • DomainExecutionRoleArn 应该是上一步中创建的角色的 ARN。

  • ExecutionRole是授予亚马逊 A SageMaker I 域中用户的角色的 ARN。

  • vpc-id应该是您的亚马逊 Virtual Private Cloud 的 ID。 subnet-ids应该是以空格分隔的子网 IDs列表。有关vpc-id和的信息subnet-ids,请参阅VPCs 和子网

  • RStudioPackageManagerUrlRStudioConnectUrl是可选的,应分别设置为 Pack URLs age Man RStudio ager 和 RStudio Connect 服务器的。

  • auth-mode 应该是 SSOIAM

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode <AUTH_MODE> \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type PublicInternetOnly

VPCOnly mode

以下内容显示了如何在 RStudio 启用和VPCOnly网络类型的情况下启动 SageMaker Amazon AI 域。有关使用 VPCOnly 网络访问类型的更多信息,请参阅将 VPC 中的 Studio 笔记本连接到外部资源

  • DomainExecutionRoleArn 应该是上一步中创建的角色的 ARN。

  • ExecutionRole是授予亚马逊 A SageMaker I 域中用户的角色的 ARN。

  • vpc-id应该是您的亚马逊 Virtual Private Cloud 的 ID。 subnet-ids应该是以空格分隔的子网 IDs列表。您的私有子网必须能够访问互联网才能拨打 Amazon A SageMaker I, Amazon License Manager 或者拥有同时支持 Amazon AI 和 Amazon VPC 的终端节点 Amazon License Manager。 SageMaker 有关 Amazon VPC 终端节点的信息,请参阅接口 Amazon VPC 终端节点。有关vpc-id和的信息subnet-ids,请参阅VPCs 和子网

  • SecurityGroups必须允许出站访问 Amazon A SageMaker I 和 Amazon License Manager 终端节点。

  • auth-mode 应该是 SSOIAM

注意

使用 Amazon Virtual Private Cloud 端点时,附加到您的 Amazon Virtual Private Cloud 端点的安全组,必须允许来自您在 create-domain CLI 调用 domain-setting 参数中传递的安全组的入站流量。

借助 RStudio,Amazon SageMaker AI 为您管理安全组。这意味着 Amazon SageMaker AI 管理安全组规则以确保 RSessions 可以访问 RStudioServerPro 应用程序。Amazon SageMaker AI 为每个用户个人资料创建一个安全组规则。

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode <AUTH_MODE> \ --default-user-settings SecurityGroups=<USER_SECURITY_GROUP>,ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings SecurityGroupIds=<DOMAIN_SECURITY_GROUP>,RStudioServerProDomainSettings={DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids "<SUBNET_IDS>" \ --app-network-access-type VPCOnly --app-security-group-management Service

注意:该 RStudioServerPro 应用程序由名为的特殊用户个人资料启动domain-shared。因此,此应用程序不会作为 list-app API 调用的一部分由任何其他用户配置文件返回。

您可能需要增加账户中的 Amazon VPC 配额,才能增加用户数量。有关更多信息,请参阅 Amazon VPC 配额

验证域的创建

使用以下命令验证您的域是否已创建且 StatusInService。您的 domain-id 已附加到域 ARN 中。例如 arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>

aws sagemaker describe-domain --domain-id <DOMAIN_ID> --region <REGION>