設定列出 Amazon EMR 叢集 - Amazon SageMaker

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

設定列出 Amazon EMR 叢集

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

注意

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

Single account

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

注意

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

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

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

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

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

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

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

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

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

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

    • AllowClusterDetailsDiscoveryAllowClusterDiscovery允許探索和連線至 Amazon EMR 叢集。

    • AllowPresignedUrl 允許建立預先簽署 URL 來存取 Spark 使用者介面。

    提供的 JSON 中定義的 IAM 政策授予這些權限。在將語句列表複製到角色的內聯策略之前,請將工作室區域和工作室 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. https://console.aws.amazon.com/sagemaker/ 開啟 IAM 主控台。

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

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

      • AllowClusterDetailsDiscoveryAllowClusterDiscovery 允許探索及連線至 Amazon EMR 叢集。

      • AllowPresignedUrl 允許建立預先簽署 URL 來存取 Spark 使用者介面。

      將 JSON 複製到您的策之前,請先以您的實際區域和 AWS 帳戶識別碼值取代 emr- region 和 emr-account。

      { "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 的帳戶(受信任的帳戶)擔任此角色的權限。

      用其實際帳戶 ID 替換工作室 AWS 帳戶。選擇下一步

      { "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. https://console.aws.amazon.com/sagemaker/ 開啟 IAM 主控台。

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

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

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

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

    { "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

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

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