本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 域名概述。
先决条件
-
安装和配置 AWS CLI 版本 2
-
使用 IAM 凭证配置 AWS CLI
创建 DomainExecution
角色
要启动 RStudio 应用程序,您必须提供一个DomainExecution
角色。此角色用于确定是否 RStudio 需要在创建 Amazon A SageMaker I 域时启动。Amazon A SageMaker I 还使用此角色来访问 RStudio 许可证和推送 RStudio 日志。
注意
该DomainExecution
角色应至少具有访问 RStudio 许可证的 AWS License Manager 权限,以及将日志推送到您的账户的 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
的文件。该政策允许 RStudioServerPro 应用程序访问必要的资源,并允许 Amazon SageMaker AI 在现有 RStudioServerPro 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": "*" } ] }
-
创建附加到
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 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 和子网。 -
RStudioPackageManagerUrl
和RStudioConnectUrl
是可选的,应分别设置为 Pack URLs age Man RStudio ager 和 RStudio Connect 服务器的。 -
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 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 和子网。 -
RStudioPackageManagerUrl
和RStudioConnectUrl
是可选的,应分别设置为 Pack URLs age Man RStudio ager 和 RStudio Connect 服务器的。 -
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 Amazon AI 域。
-
DomainExecutionRoleArn
应该是上一步中创建的角色的 ARN。 -
ExecutionRole
是授予亚马逊 A SageMaker I 域中用户的角色的 ARN。 -
vpc-id
应该是您的亚马逊 Virtual Private Cloud 的 ID。subnet-ids
应该是以空格分隔的子网 IDs列表。有关vpc-id
和的信息subnet-ids
,请参阅VPCs 和子网。 -
RStudioPackageManagerUrl
和RStudioConnectUrl
是可选的,应分别设置为 Pack URLs age Man RStudio ager 和 RStudio Connect 服务器的。 -
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 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
应该是SSO
或IAM
。
注意
使用 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 配额。
验证域的创建
使用以下命令验证您的域是否已创建且 Status
为 InService
。您的 domain-id
已附加到域 ARN 中。例如,arn:aws:sagemaker:
。<REGION>
:<ACCOUNT_ID>
:domain/<DOMAIN_ID>
aws sagemaker describe-domain --domain-id
<DOMAIN_ID>
--region<REGION>