使用 RStudio 建立 Amazon SageMaker 網域 AWS CLI - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 RStudio 建立 Amazon SageMaker 網域 AWS CLI

重要

允許 Amazon SageMaker 工作室或 Amazon 工作 SageMaker 室經典版創建 Amazon SageMaker 資源的自定義 IAM 政策還必須授予許可才能向這些資源添加標籤。需要向資源添加標籤的權限,因為 Studio 和 Studio 經典版會自動標記它們創建的任何資源。如果 IAM 政策允許 Studio 和 Studio 經典版建立資源,但不允許標記,則在嘗試建立資源時可能會發生 AccessDenied "" 錯誤。如需詳細資訊,請參閱 提供標記資 SageMaker源的權限

AWS Amazon 的受管政策 SageMaker授予建立 SageMaker 資源的權限,已包含在建立這些資源時新增標籤的權限。

下列主題說明如何在啟用 RStudio 的情況下使用 AWS CLI. SageMaker 若要在機上使用 AWS Management Console,請參閱Amazon SageMaker 域名概述

必要條件

建立 DomainExecution 角色

若要啟動 RStudio 應用程式,您必須提供 DomainExecution 角色。此角色用於判斷 RStudio 是否需要在建立 Amazon SageMaker 網域時啟動。Amazon 也會使用這個角色 SageMaker 來存取 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 且具有下列內容的檔案。此政策允許 R StudioServerPro 應用程式存取必要的資源,並允許 Amazon SageMaker 在現有 R StudioServerPro 應用程式處於DeletedFailed狀態時自動啟動 R StudioServerPro 應用程式。

    { "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 應用程式建立 Amazon 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網路類型的情況下建立 Amazon 網 SageMaker 域。如需詳細資訊 AWS 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 應該是 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網路類型的情況下建立 Amazon 網 SageMaker 域。 AWS IAM Identity Center 必須針對啟動網域的地區啟用。如需 IAM 身分中心的詳細資訊,請參閱什麼是 AWS IAM Identity Center?

  • 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 應該是 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網路類型的情況下建立 Amazon 網 SageMaker 域。

  • 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 應該是 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 模式

以下說明如何在啟用 RStudio 和VPCOnly網路類型的情況下啟動 Amazon 網 SageMaker 域。如需使用 VPCOnly 網路存取類型的更多相關資訊,請參閱將 Studio 筆記本 Connect VPC 到外部資源

  • DomainExecutionRoleArn 應該是在上一步中建立之角色的 ARN。

  • ExecutionRole是指定給 Amazon SageMaker 網域中使用者的角色的 ARN。

  • vpc-id 應該是您的 Amazon Virtual Private Cloud 的 ID。subnet-ids 應該是由空格分隔的的子網路 ID 清單。您的私有子網路必須能夠存取網際網路才能撥打 VPC 話給 Amazon SageMaker, AWS License Manager 或具有適用於 Amazon SageMaker 和 AWS License Manager. 如需 Amazon VPC 端點的相關資訊,請參閱介面 Amazon VPC 端點。如需 vpc-idsubnet-ids 的更多相關資訊,請參閱 VPC 和子網路

  • SecurityGroups必須允許對 Amazon SageMaker 和 AWS License Manager 端點進行對外存取。

  • auth-mode 應該是 SSOIAM

注意

使用 Amazon Virtual Private Cloud 端點時,連接到 Amazon Virtual Private Cloud 端點的安全群組必須允許來自做為 create-domain CLI 呼叫 domain-setting 參數一部分傳遞的安全群組傳入流量。

透過 RStudio,Amazon 可以為您 SageMaker 管理安全群組。這表示 Amazon 會 SageMaker 管理安全群組規則,以確保 RSession 可以存取 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>