將 RStudio 支援新增至現有的網域 - Amazon SageMaker

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

將 RStudio 支援新增至現有的網域

重要

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

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

如果您已透過新增 RStudio 授權 AWS License Manager,您可以在上建立一個支援 RStudio 的新 Amazon SageMaker 網域。 SageMaker如果您有不支援 RStudio 的現有網域,您可以將 RStudio 支援新增至該網域,而不必刪除並重新建立網域。 

下列主題概述如何新增此支援。

必要條件

您必須先完成下列步驟,才能更新目前的網域,才能在上 SageMaker新增對 RStudio 的支援。 

  • 安裝與設定AWS CLI 第 2 版

  • 使用 IAM 憑證 設定 AWS CLI

  • 依照使用 RStudio 建立網域中的步驟,建立 SageMaker 網域執行角色。 AWS CLI R StudioServerPro 應用程式需要此網域層級 IAM 角色。該角色需要存取權以 AWS License Manager 驗證有效的 Posit 工作台授權和 Amazon CloudWatch 日誌以發佈伺服器日誌。 

  • 攜帶您的 RStudio 授權,以 AWS License Manager 遵循 RStudio 授權中的步驟。

  • (選用) 如果您想要在 VPCOnly 模式下使用 RStudio,請完成僅限 VPC 下 RStudio 中的步驟。

  • 確定您為網域中的每個安全性群組設定UserProfile的安全性群組都符合帳戶層級配額。 在網域建立期間設定預設使用者設定檔時,您可以使用 CreateDomainAPI 的DefaultUserSettings參數來新增SecurityGroups由網域中建立的所有使用者設定檔繼承的參數。您也可以為特定使用者提供額外的安全性群組,做為 CreateUserProfileAPI UserSettings 參數的一部分。如果您已透過這種方式新增安全群組,則必須確定每個使用者設定檔的安全群組總數在 VPCOnly 模式下不會超出 2 個群組的配額上限,以及在 PublicInternetOnly 模式下不會超出 4 個群組的配額上限。如果任何使用者設定檔產生的安全群組總數超過該配額,您可以將多個安全群組規則合併為一個安全群組。 

將 RStudio 支援新增至現有的網域

完成必要條件之後,您可以將 RStudio 支援新增至您現有的網域。下列步驟概述如何更新您現有的網域,以新增對 RStudio 的支援。

步驟 1:刪除網域中的所有應用程式

若要在網域中新增對 RStudio 的支援, SageMaker 必須更新所有現有使用者設定檔的基礎安全性群組。若要完成此操作,您必須刪除並重新建立網域中所有現有的應用程式。以下程序說明如何刪除所有應用程式。

  1. 列出網域中的所有應用程式。

    aws sagemaker \   list-apps \ --domain-id-equals <DOMAIN_ID>
  2. 刪除網域中每個使用者設定檔的每個應用程式。

    // JupyterServer apps aws sagemaker \ delete-app \ --domain-id <DOMAIN_ID> \ --user-profile-name <USER_PROFILE> \ --app-type JupyterServer \ --app-name <APP_NAME> // KernelGateway apps aws sagemaker \ delete-app \ --domain-id <DOMAIN_ID> \ --user-profile-name <USER_PROFILE> \ --app-type KernelGateway \ --app-name <APP_NAME>

步驟 2 — 使用新的安全群組清單更新所有使用者設定檔

當您重構現有的安全性群組時,您必須針對網域中所有現有的使用者設定檔完成這項動作。這可讓您預防達到安全群組數量上限的配額。如果使用者有任何處於InService狀態的應用程式,UpdateUserProfileAPI 呼叫會失敗。刪除所有應用程式,然後呼叫 UpdateUserProfile API 更新安全群組。

注意

新增 RStudio 支援時,不再需要將 VPC 中的 Amazon SageMaker Studio 傳統筆記型電腦 Connect 至外部資源中概述的VPCOnly模式需求,因為服務AppSecurityGroupManagement是由服務管理: SageMaker

安全群組內的 TCP 流量。這是應 KernelGateway 用程序和應用 JupyterServer 程序之間的連接所必需的。您必須至少允許存取範圍 8192-65535 內的連接埠。”

aws sagemaker \ update-user-profile \ --domain-id <DOMAIN_ID>\ --user-profile-name <USER_PROFILE> \ --user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"

第 3 步-通過調用 API 激活 RStudio UpdateDomain

  1. 呼叫 UpdateDomainAPI 以新增對 RStudio 的支援。 SageMaker只有在您已重構使用者設定檔的預設安全群組時,才需要 defaultusersettings 參數。

    • 針對 VPCOnly 模式:

      aws sagemaker \ update-domain \ --domain-id <DOMAIN_ID> \ --app-security-group-management Service \ --domain-settings-for-update RStudioServerProDomainSettingsForUpdate={DomainExecutionRoleArn=<DOMAIN_EXECUTION_ROLE_ARN>} \ --default-user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
    • 針對 PublicInternetOnly 模式:

      aws sagemaker \ update-domain \ --domain-id <DOMAIN_ID> \    --domain-settings-for-update RStudioServerProDomainSettingsForUpdate={DomainExecutionRoleArn=<DOMAIN_EXECUTION_ROLE_ARN>} \ --default-user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
  2. 確認網域狀態為InService。在網域狀態為之後InService,就會新增對於 RStudio SageMaker 的支援。

    aws sagemaker \ describe-domain \ --domain-id <DOMAIN_ID>
  3. 驗證 R StudioServerPro 應用程序的狀態是否正在InService使用以下命令。

    aws sagemaker list-apps --user-profile-name domain-shared

步驟 4 — 新增現有使用者的 RStudio 存取權

作為步驟 3 中更新的一部 SageMaker 分,將網域中所有現有使用者設定檔的 RStudio AccessStatus標記為DISABLED預設。這可讓您防止超出目前授權所允許的使用者數目。若要新增現有使用者的存取權,系統有一次性選擇加入的步驟。通過使用以下 R StudioServerProAppSettings 調用 UpdateUserProfileAPI 來執行選擇加入:

  • AccessStatus = ENABLED

  • 選用UserGroup = R_STUDIO_USERR_STUDIO_ADMIN

aws sagemaker \ update-user-profile \ --domain-id <DOMAIN_ID>\ --user-profile-name <USER_PROFILE> \ --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"ENABLED\"}}"
注意

根據預設,可以具有 RStudio 存取權的使用者數目為 60 名。

步驟 5 — 停用新使用者的 RStudio 存取權

除非在呼叫時另有指定UpdateDomain,否則在您新增對 RStudio 的支援之後建立的所有新使用者設定檔,預設會新增 RStudio 支援。 SageMaker若要停用新使用者設定檔的存取權,您必須明確設定 AccessStatus 參數為 DISABLED,做為 CreateUserProfile API 呼叫的一部分。如果沒有指定 AccessStatus 參數做為 CreateUserProfile API 的一部分,則預設存取狀態為 ENABLED

aws sagemaker \ create-user-profile \ --domain-id <DOMAIN_ID>\ --user-profile-name <USER_PROFILE> \ --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"DISABLED\"}}"