本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定列出 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 叢集。
-
尋找網域、使用者設定檔或空間的執行角色。如需有關如何擷取執行角色的資訊,請參閱取得您的執行角色。
-
在 https://console.aws.amazon.com/sagemaker/
開啟 IAM 主控台。 -
選擇 [角色],然後在 [搜尋] 欄位中輸入角色名稱,以搜尋您建立的角色。
-
點擊鏈接到您的角色。
-
選擇新增權限,然後選擇建立內嵌原則。
-
在 JSON 索引標籤中,新增具有權限的下列 JSON 政策:
提供的 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/*" } ] } -
為原則命名,然後選擇 [建立原則]。
-
- Cross account
-
如果您的 Amazon EMR 叢集和工作室或工作室傳統版部署在不同的 AWS 帳戶中,您可以在這兩個帳戶上設定許可。
在 Amazon EMR 帳戶上
在部署 Amazon EMR 的帳戶 (也稱為信任帳戶) 上,建立以下組態命名
ASSUMABLE-ROLE
的自訂 IAM 角色:-
許可:授予必要的許可以
ASSUMABLE-ROLE
允許存取 Amazon EMR 資源。 -
信任關係:將信任策略配置
ASSUMABLE-ROLE
為允許從 Studio 帳戶中獲得需要訪問權限的角色。
假設該角色,工作室或工作室經典版可以在 Amazon EMR 中獲得對其所需的許可的臨時存取權。
-
為角色建立新原則。
-
在 https://console.aws.amazon.com/sagemaker/
開啟 IAM 主控台。 -
在左側功能表中,選擇 [策略],然後選擇 [建立策略]
-
在 JSON 索引標籤中,新增具有權限的下列 JSON 政策:
-
AllowClusterDetailsDiscovery
與AllowClusterDiscovery
允許探索及連線至 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": "*" } ] } -
-
為原則命名,然後選擇 [建立原則]。
-
-
建立名為的自訂 IAM 角色
ASSUMABLE-ROLE
,然後將新政策附加到該角色。-
在 IAM 主控台中,選擇左側功能表中的 [角色],然後選擇 [建立角色]。
-
針對信任的實體類型,選擇AWS 帳戶,然後選擇下一步。
-
選取您剛建立的權限,然後選擇 [下一步]。
-
命名您的角色,
ASSUMABLE-ROLE
然後選擇步驟 1:選取信任的實體右側的編輯按鈕。 -
針對 [信任的實體類型],選擇 [自訂信任原則],然後貼上下列信任關係。這將授予部署 Studio 的帳戶(受信任的帳戶)擔任此角色的權限。
用其實際
帳戶 ID 替換工作室
AWS 帳戶。選擇下一步。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
studio-account
:root" }, "Action": "sts:AssumeRole" } ] } -
尋找並選取您剛才建立的權限,然後選擇 [下一步]。
-
您的信任政策應使用您粘貼的最新 JSON 進行更新。選擇建立角色。
-
在工作室帳戶
在部署 Studio 或 Studio Classic 的帳戶上,也稱為受信任的帳戶,請使用下列內嵌政策更新存取叢集的 SageMaker 執行角色。
此策略應允許跨帳號角色假設,以探查另一個帳號中的資源。
注意
您應該考慮哪些執行角色?
Studio UI 會從與啟動它的使用者設定檔相關聯的執行角色來決定其權限。UI 會在啟動時設定這些權限。不過,啟動 JupyterLab 或 Studio 傳統版應用程式的空間可以有個別的權限。
若要跨應用程式 (例如 Studio UI 和 Studio 傳統版) 對 Amazon EMR 範本和叢集的一致存取權,請將相同的權限子集授予網域、使用者設定檔或空間層級的所有角色。 JupyterLab這些許可應允許探索和佈建 Amazon EMR 叢集。
-
尋找網域、使用者設定檔或空間的執行角色。如需有關如何擷取執行角色的資訊,請參閱取得您的執行角色。
-
在 https://console.aws.amazon.com/sagemaker/
開啟 IAM 主控台。 -
選擇 [角色],然後在 [搜尋] 欄位中輸入角色名稱,以搜尋您建立的角色。
-
點擊鏈接到您的角色。
-
在您的執行角色詳細資料頁面上,選擇新增權限,然後選擇建立內嵌原則。
-
在 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
" ] }] } -
選擇 [下一步],然後提供原則名稱。
-
選擇建立政策。
-
若要允許列出部署在與 Studio 相同帳戶中部署的 Amazon EMR 叢集,請將額外的內嵌政策新增至您的 Studio 執行角色 (如的「單一帳戶」索引標籤中所定義)。設定列出 Amazon EMR 叢集
在 Jupyter 伺服器啟動時傳遞角色的 ARN
最後,請參跨帳戶存取的其他組態閱以了解如何將 ARN 提供
ASSUMABLE-ROLE
給您的 Studio 執行角色。ARN 會在啟動時由 Jupyter 伺服器載入。Studio 使用的執行角色會假設跨帳戶角色來探索信任帳戶中的 Amazon EMR 叢集。 -
請造訪從工作室或工作室經典列出 Amazon EMR 集群以了解如何從 Studio 或工作室傳統筆記型電腦探索並連接到 Amazon EMR 叢集。