本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 rStudio 创建亚马逊 SageMaker 域名 AWS CLI
重要
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。需要向资源添加标签的权限,因为 Studio 和 Studio Classic 会自动标记他们创建的任何资源。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供标记 SageMaker资源的权限。
AWS Amazon 托管政策 SageMaker授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。
以下主题介绍如何在启用 RStudio 的情况下使用登录亚马逊 SageMaker 域名。 AWS CLI要使用登录 AWS Management Console,请参阅Amazon SageMaker 域名概述。
先决条件
-
安装和配置 AWS CLI 版本 2
-
使用 IAM 凭证配置 AWS CLI
创建 DomainExecution
角色
要启动 RStudio 应用程序,您必须提供 DomainExecution
角色。此角色用于确定是否需要在创建亚马逊 SageMaker 域名时启动 RStudio。亚马逊还使用此角色 SageMaker 来访问 RStudio 许可证和推送 rStudio 日志。
注意
该DomainExecution
角色应至少 AWS License Manager 具有访问 RStudio 许可证的 CloudWatch 权限,以及向您的账户推送日志的权限。
以下过程说明如何使用 AWS CLI创建 DomainExecution
角色。
-
使用以下内容创建名为
assume-role-policy.json
的文件。{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] } } ] }
-
创建
DomainExecution
角色。<REGION>
应该是启动您的域名的 AWS 区域。aws iam create-role --region
<REGION>
--role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json -
使用以下内容创建名为
domain-setting-policy.json
的文件。该政策允许 R StudioServerPro 应用程序访问必要的资源,并 SageMaker 允许亚马逊在现有 R StudioServerPro StudioServerPro 应用程序处于Deleted
或Failed
状态时自动启动 R 应用程序。{ "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": "*" } ] }
-
创建附加到该
DomainExecution
角色的域设置策略。请注意响应中的PolicyArn
,您需要在以下步骤中输入该 ARN。aws iam create-policy --region
<REGION>
--policy-name domain-setting-policy --policy-document file://domain-setting-policy.json -
将
domain-setting-policy
附加到DomainExecution
角色。使用上一步返回的PolicyArn
。aws iam attach-role-policy --role-name DomainExecution --policy-arn
<POLICY_ARN>
使用 RStudio 应用程序创建亚马逊 SageMaker 域名
当您使用带有指定RStudioServerProDomainSettings
参数的 create-domain
CLI 命令创建 Amazon SageMaker 域时,R StudioServerPro 应用程序会自动启动。启动 R StudioServerPro 应用程序时,Amazon SageMaker 会检查账户中是否有有效的 RStudio 许可证,如果找不到许可证,则域创建失败。
Amazon SageMaker 域的创建因身份验证方法和网络类型而异。这些选项必须一起使用,即选择一种身份验证方法并选择一种网络连接类型。有关创建新域的要求的更多信息,请参阅CreateDomain。
支持以下身份验证类型:
-
IAM Auth
-
SSO Auth
支持以下网络连接类型:
-
PublicInternet
-
VPCOnly
身份验证方法
IAM 身份验证模式
以下内容显示了如何在启用 RStudio 和IAM
Auth
网络类型的情况下创建亚马逊 SageMaker 域名。有关的更多信息 AWS Identity and Access Management,请参阅什么是 IAM? 。
-
DomainExecutionRoleArn
应该是上一步中创建的角色的 ARN。 -
ExecutionRole
是指授给 Ama SageMaker zon 域中用户的角色的 ARN。 -
vpc-id
应该是您的 Amazon Virtual Private Cloud 的 ID。subnet-ids
应该是以空格分隔的子网 ID 列表。有关vpc-id
和subnet-ids
的信息,请参阅 VPC 和子网。 -
RStudioPackageManagerUrl
和RStudioConnectUrl
均可选,应分别设置为 RStudio Package Manager 和 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 和SSO
Auth
网络类型的情况下创建亚马逊 SageMaker 域名。 AWS IAM Identity Center 必须为启动域名的区域启用。有关 IAM 身份中心的更多信息,请参阅什么是 AWS IAM Identity Center? 。
-
DomainExecutionRoleArn
应该是上一步中创建的角色的 ARN。 -
ExecutionRole
是指授给 Ama SageMaker zon 域中用户的角色的 ARN。 -
vpc-id
应该是您的 Amazon Virtual Private Cloud 的 ID。subnet-ids
应该是以空格分隔的子网 ID 列表。有关vpc-id
和subnet-ids
的信息,请参阅 VPC 和子网。 -
RStudioPackageManagerUrl
和RStudioConnectUrl
均可选,应分别设置为 RStudio Package Manager 和 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>
连接类型
PublicInternet/直接互联网网络类型
以下内容显示了如何在启用 RStudio 和PublicInternet
网络类型的情况下创建亚马逊 SageMaker 域名。
-
DomainExecutionRoleArn
应该是上一步中创建的角色的 ARN。 -
ExecutionRole
是指授给 Ama SageMaker zon 域中用户的角色的 ARN。 -
vpc-id
应该是您的 Amazon Virtual Private Cloud 的 ID。subnet-ids
应该是以空格分隔的子网 ID 列表。有关vpc-id
和subnet-ids
的信息,请参阅 VPC 和子网。 -
RStudioPackageManagerUrl
和RStudioConnectUrl
均可选,应分别设置为 RStudio Package Manager 和 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 和VPCOnly
网络类型的情况下启动亚马逊 SageMaker 域名。有关使用 VPCOnly
网络访问类型的更多信息,请参阅将 a 中的 Connect Studio 笔记本电脑VPC连接到外部资源。
-
DomainExecutionRoleArn
应该是上一步中创建的角色的 ARN。 -
ExecutionRole
是指授给 Ama SageMaker zon 域中用户的角色的 ARN。 -
vpc-id
应该是您的 Amazon Virtual Private Cloud 的 ID。subnet-ids
应该是以空格分隔的子网 ID 列表。您的私有子网必须能够访问互联网才能拨打亚马逊, AWS License Manager 或者同时具有适用于亚马逊 SageMaker和 Amazon 的 Amazon VPC 终端节点 AWS License Manager。 SageMaker 有关 Amazon VPC 端点的信息,请参阅接口 Amazon VPC 端点。有关vpc-id
和subnet-ids
的信息,请参阅 VPC 和子网。 -
SecurityGroups
必须允许出站访问 Amazon SageMaker 和 AWS License Manager 终端节点。 -
auth-mode
应该是SSO
或IAM
。
注意
使用 Amazon Virtual Private Cloud 端点时,附加到您的 Amazon Virtual Private Cloud 端点的安全组,必须允许来自您在 create-domain
CLI 调用 domain-setting
参数中传递的安全组的入站流量。
借助 RStudio,亚马逊 SageMaker 可以为您管理安全组。这意味着,Amazon SageMaker 管理安全组规则以确保 rSessions 可以访问 R StudioServerPro 应用程序。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
注意:R StudioServerPro 应用由名为的特殊用户个人资料启动domain-shared
。因此,此应用程序不会作为 list-app
API 调用的一部分由任何其他用户配置文件返回。
您可能需要增加账户中的 Amazon VPC 配额,才能增加用户数量。有关更多信息,请参阅 Amazon VPC 配额。
验证域名创建
使用以下命令验证您的域名是否已使用为Status
创建InService
。您的domain-id
已附加到域名 ARN 中。例如,arn:aws:sagemaker:
。<REGION>
:<ACCOUNT_ID>
:domain/<DOMAIN_ID>
aws sagemaker describe-domain --domain-id
<DOMAIN_ID>
--region<REGION>