本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 網域概觀。
必要條件
-
安裝與設定AWS CLI 第 2 版
-
使用 IAM 憑證 設定 AWS CLI
建立 DomainExecution
角色
若要啟動 RStudio 應用程式,您必須提供 DomainExecution
角色。此角色用於判斷 RStudio 是否需要在建立 Amazon SageMaker 網域時啟動。Amazon 也會使用這個角色 SageMaker 來存取 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
且具有下列內容的檔案。此政策允許 R StudioServerPro 應用程式存取必要的資源,並允許 Amazon SageMaker 在現有 R StudioServerPro 應用程式處於Deleted
或Failed
狀態時自動啟動 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": "*" } ] }
-
建立附加至
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 應用程式建立 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-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 和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-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>
連線類型
PublicInternet/直接互聯網網絡類型
以下說明如何在啟用 RStudio 和PublicInternet
網路類型的情況下建立 Amazon 網 SageMaker 域。
-
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 和VPCOnly
網路類型的情況下啟動 Amazon 網 SageMaker 域。如需使用 VPCOnly
網路存取類型的更多相關資訊,請參閱將 中的 Studio 筆記本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-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,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>