配置列出 Amazon EMR 群集 - Amazon SageMaker

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

配置列出 Amazon EMR 群集

管理員可以將 Studio 設定為允許使用者檢視他們有權存取的 Amazon EMR 叢集清單,讓他們能夠連接到這些叢集。這些群集可以部署在與 Studio 相同的 AWS 帳戶中(選擇單一帳戶選項卡),也可以在單獨的帳戶中部署(選擇跨帳戶選項卡)。

注意

Studio 目前不支援存取在與部署 Studio 的 AWS 帳戶不同的帳戶中建立的 Amazon EMR 叢集。跨帳戶存取權限僅適用於工作室經典版。

Single account

如果您的 Amazon EMR 叢集和 Studio 或 Studio 經典版部署在同一個 AWS 帳戶中,請將下列許可附加到存取叢集的 SageMaker 執行角色。

注意

您應該考慮哪些執行角色?

Studio UI 會從與啟動它的使用者設定檔相關聯的執行角色來決定其權限。UI 會在啟動時設定這些權限。不過,啟動 JupyterLab 或 Studio 傳統版應用程式的空間可以有個別的權限。

若要跨應用程式 (例如 Studio UI 和 Studio 傳統版) 對 Amazon EMR 範本和叢集的一致存取權,請將相同的權限子集授予網域、使用者設定檔或空間層級的所有角色。 JupyterLab許可應允許探索和佈建 Amazon EMR 叢集。

  1. 尋找網域、使用者設定檔或空間的執行角色。如需如何擷取執行角色的資訊,請參閱取得您的執行角色

  2. 開啟位於 IAM 的 https://console.aws.amazon.com/sagemaker/ 主控台。

  3. 選擇 [角色],然後在 [搜尋] 欄位中輸入角色名稱,以搜尋您建立的角色。

  4. 點擊鏈接到您的角色。

  5. 選擇 [新增權限],然後選取 [建立內嵌原

  6. JSON索引標籤中,新增具有權限的下列JSON原則:

    • AllowSagemakerProjectManagement啟用的建立。在工作室或工作室經典版中,可透 AWS Service Catalog 過授與存取

    • AllowClusterDetailsDiscoveryAllowClusterDiscovery允許發現和連接到 Amazon EMR 集群。

    • AllowPresignedUrl允許創建預先簽名URLs以訪問 Spark UI。

    所提供的中定義的IAM原則會JSON授與這些權限。Replace (取代) studio-region 以及 studio-account 在將語句列表複製到角色的內嵌政策之前,請使用您的實際區域和 AWS 帳戶 ID 值。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. 為原則命名,然後選擇 [建立原則]。

Cross account

如果您的 Amazon EMR 叢集和工作室或工作室傳統版部署在不同的 AWS 帳戶中,您可以在這兩個帳戶上設定許可。

在 Amazon EMR 帳戶上

在部署 Amazon EMR 的帳戶上 (也稱為信任帳戶) 建立以下組態命名ASSUMABLE-ROLE的自訂IAM角色:

  • 許可:授予必要的許可ASSUMABLE-ROLE以允許存取 Amazon EMR 資源。

  • 信任關係:將信任策略配置ASSUMABLE-ROLE為允許從 Studio 帳戶中獲得需要訪問權限的角色。

通過假設角色,工作室或工作室經典版可以臨時訪問它在 Amazon 中需要的許可EMR。

  • 為角色建立新原則。

    1. 開啟位於 IAM 的 https://console.aws.amazon.com/sagemaker/ 主控台。

    2. 在左側功能表中,選擇 [略],然後選擇 [建立策略]

    3. JSON索引標籤中,新增具有權限的下列JSON原則:

      • AllowClusterDetailsDiscoveryAllowClusterDiscovery允許發現和連接到 Amazon EMR 集群。

      • AllowPresignedUrl允許創建預先簽名URLs以訪問 Spark UI。

      Replace (取代) emr-region 以及 emr-account 在複製JSON到您的保單之前,請使用您的實際地區和 AWS 帳戶 ID 值。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" } ] }
    4. 為原則命名,然後選擇 [建立原則]。

  • 建立名為的自訂IAM角色ASSUMABLE-ROLE,然後將新原則附加至該角色。

    1. 在IAM主控台中,選擇左側功能表中的 [角色],然後選擇 [建立角色]。

    2. 針對信任的實體類型,選擇AWS 帳戶,然後選擇下一步

    3. 選取您剛建立的權限,然後選擇 [下一步]。

    4. 命名您的角色,ASSUMABLE-ROLE然後選擇步驟 1:選取信任的實體右側的編輯按鈕。

    5. 針對 [信任的實體類型],選擇 [自訂信任原則],然後貼上下列信任關係。這將授予部署 Studio 的帳戶(受信任的帳戶)擔任此角色的權限。

      Replace (取代) studio-account 使用其實際 AWS 帳戶 ID。選擇 Next (下一步)

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    6. 尋找並選取您剛才建立的權限,然後選擇 [下一步]。

    7. 您的信任政策應該更新為JSON您粘貼的最新信任策略。選擇建立角色

在工作室帳戶

在部署 Studio 或 Studio Classic 的帳戶上,也稱為受信任的帳戶,請使用下列內嵌政策更新存取叢集的 SageMaker 執行角色。

此策略應允許跨帳號角色假設,以探查另一個帳號中的資源。

注意

您應該考慮哪些執行角色?

Studio UI 會從與啟動它的使用者設定檔相關聯的執行角色來決定其權限。UI 會在啟動時設定這些權限。不過,啟動 JupyterLab 或 Studio 傳統版應用程式的空間可以有個別的權限。

若要跨應用程式 (例如 Studio UI 和 Studio 傳統版) 對 Amazon EMR 範本和叢集的一致存取權,請將相同的權限子集授予網域、使用者設定檔或空間層級的所有角色。 JupyterLab許可應允許探索和佈建 Amazon EMR 叢集。

  1. 尋找網域、使用者設定檔或空間的執行角色。如需如何擷取執行角色的資訊,請參閱取得您的執行角色

  2. 開啟位於 IAM 的 https://console.aws.amazon.com/sagemaker/ 主控台。

  3. 選擇 [角色],然後在 [搜尋] 欄位中輸入角色名稱,以搜尋您建立的角色。

  4. 點擊鏈接到您的角色。

  5. 在您的執行角色詳細資料頁面上,選擇新增權限,然後選擇建立內嵌原則

  6. JSON索引標籤中,新增下列JSON原則。Replace (取代) emr-account 在將您的政策複製JSON到您的政策之前,請使用您的實際 Amazon EMR 帳戶 ID 值。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
  7. 選擇 [下一步],然後提供原則名稱

  8. 選擇 建立政策

  9. 若要允許列出部署在與 Studio 相同帳戶中的 Amazon EMR 叢集,請將額外的內嵌政策新增至您的 Studio 執行角色 (如的「單一帳戶」索引標籤中所定義) 配置列出 Amazon EMR 群集。

在 Jupyter 伺服器ARN啟動時傳遞角色

最後,請參跨帳戶存取的其他組態閱以了解如何提供ASSUMABLE-ROLE給您ARN的 Studio 執行角色。Jupyter 伺服器會在啟動時載入。ARNStudio 使用的執行角色假設該跨帳戶角色來探索信任帳戶中的 Amazon EMR 叢集。

請造訪從工作室或工作室經典列出 Amazon EMR 集群以了解如何從 Studio 或 Studio 經典筆記型電腦探索並連接到 Amazon EMR 叢集。