使用執行階段角色執行 EMR Studio 工作區 - Amazon EMR

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

使用執行階段角色執行 EMR Studio 工作區

注意

本頁所述的執行階段角色功能僅適用於在 Amazon 上EMR執行的 AmazonEC2,而不是指EMR無伺服器互動式應用程式中的執行時角色功能。若要進一步了解如何在EMR無伺服器中使用執行時期角色,請參閱 Amazon 無伺服器使用者指南中的 Job EMR 務執行階段角色

執行時期角色是一種 AWS Identity and Access Management (IAM) 角色,您可以在向 Amazon EMR 叢集提交任務或查詢時指定該角色。您提交至EMR叢集的任務或查詢會使用執行時期角色存取 AWS 資源,例如 Amazon S3 中的物件。

將 EMR Studio Workspace 連接到使用 Amazon EMR 6.11 或更高版本的EMR叢集時,您可以為任務選取執行時期角色或您提交的查詢,以便在其存取 AWS 資源時使用。但是,如果EMR叢集不支援執行階段角色,EMR叢集在存取 AWS 資源時將不會擔任該角色。

管理員必須先設定使用者許可,才能將執行階段角色與 Amazon EMR Studio 工作區搭配使用,以便 Studio 使用者可以呼叫執elasticmapreduce:GetClusterSessionCredentialsAPI行階段角色。然後,啟動具有可與 Amazon EMR Studio 工作區搭配使用的執行時期角色的新叢集。

設定執行期角色的使用者許可

設定使用者權限,以便 Studio 使用者可以呼叫使用者想要使用的執行階段角色。elasticmapreduce:GetClusterSessionCredentials API還必須在使用者開始使用 Studio 之前設定 為 Amazon EC2 或 Amazon 配置EMR工作室用戶許可 EKS

警告

若要授與此權限,請在elasticmapreduce:ExecutionRoleArn授與呼叫者存取權以呼叫 GetClusterSessionCredentialsAPIs. 下列範例示範如何執行此動作。

{ "Sid": "AllowSpecificExecRoleArn", "Effect": "Allow", "Action": [ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::111122223333:role/test-emr-demo1", "arn:aws:iam::111122223333:role/test-emr-demo2" ] } } }

下列範例示範如何允許IAM主體使用名test-emr-demo3為執行階段IAM角色的角色。此外,政策持有者將只能使用叢集 ID 存取 Amazon EMR 叢集j-123456789

{ "Sid":"AllowSpecificExecRoleArn", "Effect":"Allow", "Action":[ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": [ "arn:aws:elasticmapreduce:<region>:111122223333:cluster/j-123456789" ], "Condition":{ "StringEquals":{ "elasticmapreduce:ExecutionRoleArn":[ "arn:aws:iam::111122223333:role/test-emr-demo3" ] } } }

下列範例可讓IAM主體使用名稱以字串開頭的任何IAM角色test-emr-demo4做為執行階段角色。此外,政策持有者將只能存取標記為鍵值對tagKey: tagValue的 Amazon EMR 叢集。

{ "Sid":"AllowSpecificExecRoleArn", "Effect":"Allow", "Action":[ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": "*", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/tagKey": "tagValue" }, "StringLike":{ "elasticmapreduce:ExecutionRoleArn":[ "arn:aws:iam::111122223333:role/test-emr-demo4*" ] } } }

啟動具有執行期角色的新叢集

現在您已擁有必要的許可,請啟動具有執行時期角色的新叢集,您可以與 Amazon EMR Studio 工作區搭配使用。

如果您已啟動具有執行期角色的新叢集,則可以跳至 在工作區中使用具有執行階段角色的EMR叢集 區段。

  1. 首先,完成 Amazon EMR 步驟的執行階段角色 區段中的先決條件。

  2. 然後,使用下列設定啟動叢集,以搭配 Amazon EMR Studio 工作區使用執行階段角色。如需有關如何啟動叢集的指示,請參閱 指定適用於叢集的安全組態

    • 選擇發行標籤 emr-6.11.0 或更新版本。

    • 選取 Spark、Livy 和 Jupyter Enterprise Gateway 作為您的叢集應用程式。

    • 使用您在上一步中建立的安全組態。

    • 或者,您可以為EMR叢集啟用 Lake Formation。如需詳細資訊,請參閱使用 Amazon 啟用 Lake Formation EMR

啟動叢集之後,您就可以將啟用執行階段角色的叢集與 EMR Studio 工作區搭配使用。

注意

ExecutionRoleArn值為時, StartNotebookExecutionAPI作業目前不支援此ExecutionEngineConfig.TypeEMR

在工作區中使用具有執行階段角色的EMR叢集

設定並啟動叢集之後,您就可以將啟用執行階段角色的叢集與 EMR Studio Workspace 搭配使用。

  1. 建立新工作區或啟動現有工作區。如需詳細資訊,請參閱建立工作EMR室工作區

  2. 在開啟的 EMR Workspace 左側邊欄中選擇 [叢集] 索引標籤,展開 [運算類型] 區段,然後從 [叢集位置] 功能表中選擇您的EMR叢集,然後從 [執行階段角色] EC2 功能表中選擇執行階段角色

    EMRStudio 工作區使用者介面 (以 JupyterLab介面為基礎),左側邊列有圖示表示的索引標籤。
  3. 選擇附接,將具有執行期角色的叢集附接至工作區。

考量事項

將啟用執行階段角色的叢集與 Amazon EMR Studio 工作區搭配使用時,請記住下列考量事項:

  • 只有在將 EMR Studio 工作區連接到使用 Amazon 6.11 或更EMR新版本的EMR叢集時,才能選取執行階段角色。

  • 本頁所述的執行階段角色功能僅支援在 Amazon 上EMR執行的 AmazonEC2,EMR無伺服器互動式應用程式不支援。若要進一步了解無伺服器的執行時期角色,請參閱 Amazon EMR 無伺服器使用者指南中的 Job EMR 務執行階段角色

  • 雖然您必須先設定其他權限,才能在將工作送出至叢集時指定執行階段角色,但是您不需要額外的權限即可存取 EMR Studio Workspace 所產生的檔案。此類檔案的許可與沒有執行期角色的叢集所產生的檔案相同。

  • 您無法在具有執行階段角色的叢集的 EMR Studio 工作區中使用SQL檔案總管。當工作區連接到啟用執行時角色的EMR叢集時,Amazon EMR 會停用 UI 中的SQL檔案總管。

  • 您無法在具有執行階段角色之叢集的 EMR Studio 工作區中使用共同作業模式。當工作區連接到啟用執行時期角色的EMR叢集時,Amazon EMR 會停用工作區協作功能。只有附接工作區的使用者將依然可存取工作區。

  • 您無法在啟用IAM識別中心信任身分識別傳播的 Studio 中使用執行階段角色。

  • 您可能會遇到警告「頁面可能不安全!」 來自啟用執行期角色的叢集的 Spark UI。如果發生這種情況,請略過警示以繼續查看 Spark UI。