RStudio 使用创建 Amazon SageMaker AI 域名 AWS CLI - 亚马逊 SageMaker AI

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

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

重要

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

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

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

先决条件

创建 DomainExecution 角色

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

注意

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

以下过程说明如何使用 AWS 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> 应该是启动您的域的 AWS 区域。

    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 域。有关的更多信息 AWS 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 域。 AWS IAM Identity Center 必须为启动域名的区域启用。有关 IAM 身份中心的更多信息,请参阅什么是 AWS 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, AWS License Manager 或者拥有同时支持 Amazon AI 和 Amazon VPC 的终端节点 AWS License Manager。 SageMaker 有关 Amazon VPC 终端节点的信息,请参阅接口 Amazon VPC 终端节点。有关vpc-id和的信息subnet-ids,请参阅VPCs 和子网

  • SecurityGroups必须允许出站访问 Amazon A SageMaker I 和 AWS 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>