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

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

使用 RStudio 创建 Amazon SageMaker 域Amazon CLI

以下主题演示了如何在启用了 rStudio 的情况下使用Amazon CLI. 要使用Amazon Web Services Management Console请参阅,注册到 Amazon SageMaker 域.

先决条件

创建 DomainExecution 角色

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

注意

这些区域有:DomainExecution角色至少应该有Amazon License Manager访问 rStudio 许可证的权限以及在账户中推送日志的 CloudWatch 权限。

以下过程演示如何创建DomainExecution角色与Amazon CLI.

  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 在现有的 rStudioServerPRO 应用程序位于Deleted要么Failed状态。

    { "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. Attachdomain-setting-policyDomainExecution角色。使用PolicyArn在上一步中返回。

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

使用 rStudio 应用程序创建 Amazon SageMaker 域

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

Amazon SageMaker 域的创建取决于身份验证方法和网络类型。必须同时使用这些选项,同时选择一种身份验证方法和一种网络连接类型。有关创建新域的要求的更多信息,请参阅CreateDomain.

支持以下身份验证方法。

  • IAM Auth

  • SSO Auth

支持以下网络连接类型:

  • PublicInternet

  • VPCOnly

验证方法

IAM 身份验证模式

下面介绍了如何在启用了 rStudio 的情况下创建 Amazon SageMaker 域名和IAM Auth网络类型。有关 的更多信息Amazon Identity and Access Management请参阅,什么是 IAM?.

  • DomainExecutionRoleArn应为上一步中创建的 ARN。

  • ExecutionRole是在 Amazon SageMaker 域中分配给用户的角色的 ARN。

  • vpc-id应为 Amazon Virtual Private Cloud 的 ID。subnet-ids应为子网 ID 的空格分隔的列表。有关的信息vpc-idsubnet-ids请参阅,VPC 和子网.

  • RStudioPackageManagerUrlRStudioConnectUrl是可选的,应分别设置为 rStudio 软件包管理器和 rStudio Connect 服务器的 URL。

  • app-network-access-type应为PublicInternetOnly要么VPCOnly.

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 的情况下创建 Amazon SageMaker 域名和SSO Auth网络类型。Amazon IAM Identity Center (successor to Amazon Single Sign-On)必须为启动域的区域启用。有关 IAM Identity Center 的更多信息,请参阅什么是 Amazon IAM Identity Center (successor to Amazon Single Sign-On)?

  • DomainExecutionRoleArn应为上一步中创建的 ARN。

  • ExecutionRole是在 Amazon SageMaker 域中分配给用户的角色的 ARN。

  • vpc-id应为 Amazon Virtual Private Cloud 的 ID。subnet-ids应为子网 ID 的空格分隔的列表。有关的信息vpc-idsubnet-ids请参阅,VPC 和子网.

  • RStudioPackageManagerUrlRStudioConnectUrl是可选的,应分别设置为 rStudio 软件包管理器和 rStudio Connect 服务器的 URL。

  • app-network-access-type应为PublicInternetOnly要么VPCOnly.

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>

连接类型

公共互联网/直接互联网络类型

以下内容介绍了如何创建启用 rStudio 的 Amazon SageMaker 域,以及PublicInternet网络类型。

  • DomainExecutionRoleArn应为上一步中创建的 ARN。

  • ExecutionRole是在 Amazon SageMaker 域中分配给用户的角色的 ARN。

  • vpc-id应为 Amazon Virtual Private Cloud 的 ID。subnet-ids应为子网 ID 的空格分隔的列表。有关的信息vpc-idsubnet-ids请参阅,VPC 和子网.

  • RStudioPackageManagerUrlRStudioConnectUrl是可选的,应分别设置为 rStudio 软件包管理器和 rStudio Connect 服务器的 URL。

  • auth-mode应为SSO要么IAM.

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 模式

下面介绍了如何启动启用了 rStudio 的 Amazon SageMaker 域名和VPCOnly网络类型。有关使用VPCOnly网络访问类型,请参阅Connect (连接) SageMaker VPC 中的 Studio 笔记本电脑到外部资源.

  • DomainExecutionRoleArn应为上一步中创建的 ARN。

  • ExecutionRole是在 Amazon SageMaker 域中分配给用户的角色的 ARN。

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

  • SecurityGroups必须允许对 Amazon SageMaker 进行出站访问权限Amazon License Manager终端节点。

  • auth-mode应为SSO要么IAM.

注意

使用 Amazon Virtual Private Cloud 终端节点时,附加到您的 Amazon Virtual Private Cloud 终端节点的安全组必须允许来自您作为domain-setting的参数create-domainCLI 调用。

借助 rStudio,Amazon SageMaker 为您管理安全组。这意味着 Amazon SageMaker 管理安全组规则,以确保 rSessions 可以访问 rStudioServerPro 应用程序。Amazon SageMaker 为每个用户配置文件创建一个安全组规则。

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>