本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 RStudio 创建 Amazon SageMaker 域Amazon CLI
以下主题演示了如何在启用了 rStudio 的情况下使用Amazon CLI. 要使用Amazon Web Services Management Console请参阅,注册到 Amazon SageMaker 域.
先决条件
-
安装和配置Amazon CLI版本 2
-
配置Amazon CLI使用 IAM 凭证
创建 DomainExecution 角色
要启动 rStudio 应用程序,您必须提供DomainExecution角色。此角色用于确定是否需要在创建 Amazon SageMaker 域时启动 rStudio。Amazon SageMaker 还使用此角色访问 rStudio 许可证并推送 rStudio 日志。
这些区域有:DomainExecution角色至少应该有Amazon License Manager访问 rStudio 许可证的权限以及在账户中推送日志的 CloudWatch 权限。
以下过程演示如何创建DomainExecution角色与Amazon CLI.
-
使用以下内容创建名为
assume-role-policy.json的文件。{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] } } ] } -
创建
DomainExecution角色。<REGION>应为Amazon要在其中启动域名的区域。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 在现有的 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 -
Attach
domain-setting-policy到DomainExecution角色。使用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-id和subnet-ids请参阅,VPC 和子网. -
RStudioPackageManagerUrl和RStudioConnectUrl是可选的,应分别设置为 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-id和subnet-ids请参阅,VPC 和子网. -
RStudioPackageManagerUrl和RStudioConnectUrl是可选的,应分别设置为 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-id和subnet-ids请参阅,VPC 和子网. -
RStudioPackageManagerUrl和RStudioConnectUrl是可选的,应分别设置为 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-id和subnet-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 配额。
验证域的创建
使用以下命令验证您的域是否已使用Status的InService. 您的domain-id附加到域 ARN 中。例如:arn:aws:sagemaker:。<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>
aws sagemaker describe-domain --domain-id<DOMAIN_ID>--region<REGION>