設定許可,以啟用從 SageMaker Studio 列出和啟動 Amazon EMR 應用程式 - Amazon SageMaker AI

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

設定許可,以啟用從 SageMaker Studio 列出和啟動 Amazon EMR 應用程式

在本節中,我們會詳細說明從 SageMaker Studio 列出和連線至 EMR Serverless 應用程式所需的角色和許可,並考量 Studio 和 EMR Serverless 應用程式部署在同一AWS帳戶或跨不同帳戶的情況。

您必須新增必要許可的角色取決於 Studio 和 EMR Serverless 應用程式是否位於相同的AWS帳戶 (單一帳戶) 或單獨的帳戶 (跨帳戶)。涉及兩種類型的角色:

  • 執行角色

    • EMR Serverless 使用的執行時間執行角色 (以角色為基礎的存取控制角色):這些是 EMR Serverless 任務執行環境用來存取執行時間期間所需其他服務AWS和資源的 IAM 角色,例如 Amazon S3 用於資料存取、CloudWatch 用於記錄、存取 AWS GlueData Catalog 或根據您的工作負載需求的其他 服務。我們建議您在 EMR Serverless 應用程式執行所在的帳戶中建立這些角色。

      若要進一步了解執行時期角色,請參閱《EMR Serverless 使用者指南》中的工作執行時期角色

      注意

      您可以為 EMR Serverless 應用程式定義多個 RBAC 角色。這些角色可以基於您組織內不同使用者或群組所需的責任和存取層級。如需 RBAC 許可的詳細資訊,請參閱 Amazon EMR Serverless 的安全最佳實務

    • SageMaker AI 執行角色:此執行角色可讓 SageMaker AI 執行特定任務,例如從 Amazon S3 儲存貯體讀取資料、將日誌寫入 CloudWatch,以及存取工作流程可能需要的其他AWS服務。SageMaker AI 執行角色也具有稱為 iam:PassRole 的特殊許可,允許 SageMaker AI 將臨時執行時期執行角色傳遞至 EMR Serverless 應用程式。這些角色提供 EMR Serverless 應用程式在執行時與其他AWS資源互動所需的許可。

  • 可擔任的角色 (也稱為服務存取角色):

    • 這些是 SageMaker AI 執行角色可以擔任的 IAM 角色,以執行與管理 EMR Serverless 應用程式相關的操作。這些角色定義列出、連線至或管理 EMR Serverless 應用程式時所需的許可和存取政策。它們通常用於跨帳戶案例,其中 EMR Serverless 應用程式位於與 SageMaker AI 網域不同的AWS帳戶中。擁有 EMR Serverless 應用程式的專用 IAM 角色有助於遵循最低權限原則,並確保 Amazon EMR 僅擁有執行任務所需的許可,同時保護AWS帳戶中的其他資源。

透過正確了解和設定這些角色,您可以確保 SageMaker Studio 具有與 EMR Serverless 應用程式互動的必要許可,無論它們是部署在相同的帳戶中還是跨不同的帳戶部署。

單一帳戶

下圖說明當 Studio 和應用程式部署在相同AWS帳戶中時,從 Studio 列出和連線至 EMR Serverless 應用程式所需的角色和許可。

此圖表顯示當 Studio 和應用程式位於相同AWS帳戶中時,從 Studio 列出和連接 EMR Serverless 應用程式所需的角色和許可。

如果您的 Amazon EMR 應用程式和 Studio 部署在相同的AWS帳戶中,請遵循下列步驟:

  1. 步驟 1:擷取您在 Amazon S3 主控台中用於資料來源和輸出資料儲存的 Amazon S3 儲存貯體 ARN。

    若要了解如何依名稱尋找儲存貯體,請參閱存取和列出 Amazon S3 儲存貯體。如需如何建立 Amazon S3 儲存貯體的相關資訊,請參閱建立儲存貯體

  2. 步驟 2:在您的帳戶中為您的 EMR Serverless 應用程式建立至少一個任務執行時期執行角色 (上述單一帳戶使用案例圖表中的 EMRServerlessRuntimeExecutionRoleA)。選擇自訂信任政策作為信任的實體。新增任務所需的許可 您至少需要完整存取 Amazon S3 儲存貯體,並建立和讀取 AWS GlueData Catalog 的存取權。

    如需如何為 EMR Serverless 應用程式建立新執行時期執行角色的詳細指示,請遵循下列步驟:

    1. 導覽至 IAM 主控台

    2. 在左側導覽窗格中,選擇政策,然後選擇建立政策

    3. 新增執行時期角色所需的許可、為政策命名,然後選擇建立政策

      您可以參考 EMR Serverless 的任務執行時期角色,以尋找 EMR Serverless 執行時期角色的範例執行時期政策。

    4. 在左側導覽窗格中,選擇角色,然後選擇建立角色

    5. 建立角色頁面上,選擇自訂信任政策作為信任的實體。

    6. 自訂信任政策區段中貼入下列 JSON 文件,然後選擇下一步

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. 許可頁面中,新增您建立的政策,然後選擇下一步

    8. 檢閱頁面上,輸入角色名稱 (例如 EMRServerlessAppRuntimeRoleA) 和選用描述。

    9. 檢閱角色詳細資訊,並選擇 Create role (建立角色)

    透過這些角色,您和團隊成員可以連線到同一個應用程式,每個應用程式都使用執行時期角色,其許可範圍將與您個別的資料存取層級相符。

    注意

    Spark 工作階段以不同方式操作。Spark 工作階段會根據從 Studio 使用的執行角色進行隔離,因此具有不同執行角色的使用者將具有個別隔離的 Spark 工作階段。此外,如果您已啟用網域的來源身分,則會進一步隔離不同來源身分的 Spark 工作階段。

  3. 步驟 3:擷取私有空間所使用的 SageMaker AI 執行角色 ARN。

    如需 SageMaker AI 中空間和執行角色的相關資訊,請參閱 了解網域空間許可和執行角色

    如需如何擷取 SageMaker AI 執行角色 ARN 的詳細資訊,請參閱 取得您的執行角色

    注意

    或者,SageMaker AI 的新手可以透過使用適當的許可自動建立新的 SageMaker AI 執行角色來簡化其設定程序。在此情況下,請略過步驟 3 和 4。反之,使用者可以:

    • SageMaker AI 主控台左側導覽中的網域功能表建立新網域時,選擇為組織設定選項。

    • 從主控台的角色管理員功能表建立新的執行角色,然後將角色連接到現有的網域或使用者設定檔。

    建立角色時,請在使用者將執行哪些 ML 活動?中選擇執行 Studio EMR Serverless 應用程式選項 然後,提供 Amazon S3 儲存貯體的名稱,以及您想要 EMR Serverless 應用程式使用的任務執行時期執行角色 (步驟 2)。

    SageMaker Role Manager 會自動將執行和連線至 EMR Serverless 應用程式所需的許可新增至新的執行角色。使用 SageMaker Role Manager,您只能將一個執行時期角色指派給您的 EMR Serverless 應用程式,而且應用程式必須在 Studio 部署所在的相同帳戶中執行,從而使用在該相同帳戶內建立的執行時期角色。

  4. 步驟 4:將下列許可連接至存取 EMR Serverless 應用程式的 SageMaker AI 執行角色。

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

    2. 選擇角色,然後在搜尋欄位中依名稱搜尋您的執行角色。角色名稱是 ARN 的最後一部分,在最後一個正斜線 (/) 之後。

    3. 遵循角色的連結。

    4. 選擇新增許可,然後選擇建立內嵌政策

    5. JSON 索引標籤中,新增允許 EMR Serverless 存取和操作的 Amazon EMR Serverless 許可。如需政策文件的詳細資訊,請參閱 參考政策 中的 EMR Serverless 政策。將陳述式清單複製到您角色的內嵌政策之前,請將 regionaccountID 和傳遞的 EMRServerlessAppRuntimeRole 取代為其實際值。

      注意

      您可以視需要在許可內包含任意數量的執行時間角色 ARN 字串,以逗號分隔。

    6. 選擇下一步,然後提供政策名稱

    7. 選擇建立政策

    8. 重複建立內嵌政策步驟,以新增另一個內嵌政策,授予角色更新網域、使用者設定檔和空間的許可。如需 SageMakerUpdateResourcesPolicy 政策文件的詳細資訊,請參閱 參考政策 中的網域、使用者設定檔和空間更新動作政策。將陳述式清單複製到角色的內嵌政策之前,請將 regionaccountID 取代為實際值。

  5. 步驟 5

    將執行時期角色清單與您的使用者設定檔或網域建立關聯,以便您以視覺化方式瀏覽角色清單,並選取從 JupyterLab 連線至 EMR Serverless 應用程式時要使用的角色。您可以使用 SageMaker AI 主控台或下列指令碼。接著,從筆記本建立的所有 Apache Spark 或 Apache Hive 任務,只會存取連接至所選執行時期角色的政策所允許的資料及資源。

    重要

    若無法完成此步驟,將阻止您將 JupyterLab 筆記本連線至 EMR Serverless 應用程式。

    SageMaker AI console

    若要使用 SageMaker AI 主控台,將您的執行時期角色與使用者設定檔或網域建立關聯:

    1. 導覽至 SageMaker AI 主控台,網址為 https://console.aws.amazon.com/sagemaker/

    2. 在左側導覽窗格中,選擇網域,然後使用您更新其許可的 SageMaker AI 執行角色選取網域。

      • 若要在網域詳細資訊頁面的應用程式組態索引標籤中,將您的執行時期角色新增至您的網域,請導覽至 JupyterLab 區段。

      • 若要將您的執行時期角色新增至您的使用者設定檔:在網域詳細資訊頁面上,選擇使用者設定檔索引標籤,然後使用您已更新其許可的 SageMaker AI 執行角色選取使用者設定檔。在應用程式組態索引標籤中,導覽至 JupyterLab 區段。

    3. 選擇編輯並新增 EMR Serverless 執行時期執行角色的 ARN。

    4. 選擇提交

    當您下次透過 JupyterLab 連線至 EMR Serverless 應用程式時,執行時期角色應該會出現在下拉式功能表中以供選取。

    Python script

    在使用您已更新其許可的 SageMaker AI 執行角色,從私有空間啟動的 JupyterLab 應用程式中,請在終端機中執行下列命令。將 domainIDuser-profile-namestudio-accountIDEMRServerlessRuntimeExecutionRole 取代為其適當的值。此程式碼片段會更新特定使用者設定檔 (client.update_user_profile) 或網域設定 (client.update_domain) 的使用者設定檔設定,特別是關聯您先前建立的 EMR Serverless 執行時期執行角色。

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_user_profile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'ExecutionRoleArns': ["arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleAA"] } } }) resp = client.describe_domain(DomainId="domainID") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

跨帳戶

下圖說明當 Studio 和應用程式部署在不同AWS帳戶中時,從 Studio 列出和連線至 EMR Serverless 應用程式所需的角色和許可。

此圖表顯示當 Studio 和應用程式位於不同AWS帳戶中時,從 Studio 列出和連接 EMR Serverless 應用程式所需的角色和許可。

如需在 AWS帳戶上建立角色的詳細資訊,請參閱https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html建立 IAM 角色 (主控台)。

開始之前:

如果您的 EMR Serverless 應用程式和 Studio 部署在不同的 AWS 帳戶中,您可以在這兩個帳戶上設定許可。

在 EMR Serverless 帳戶上

請遵循下列步驟,在 EMR Serverless 應用程式執行所在的帳戶 (也稱為信任帳戶) 上建立必要的角色和政策:

  1. 步驟 1:在您的帳戶中為您的 EMR Serverless 應用程式建立至少一個任務執行時期執行角色 (上述跨帳戶圖表中的 EMRServerlessRuntimeExecutionRoleB)。選擇自訂信任政策作為信任的實體。新增任務所需的許可 您至少需要完整存取 Amazon S3 儲存貯體,並建立和讀取 AWS GlueData Catalog 的存取權。

    如需如何為 EMR Serverless 應用程式建立新執行時期執行角色的詳細指示,請遵循下列步驟:

    1. 導覽至 IAM 主控台

    2. 在左側導覽窗格中,選擇政策,然後選擇建立政策

    3. 新增執行時期角色所需的許可、為政策命名,然後選擇建立政策

      如需 EMR Serverless 執行時期角色的範例執行時期政策,請參閱 Amazon EMR Serverless 的任務執行時期角色

    4. 在左側導覽窗格中,選擇角色,然後選擇建立角色

    5. 建立角色頁面上,選擇自訂信任政策作為信任的實體。

    6. 自訂信任政策區段中貼入下列 JSON 文件,然後選擇下一步

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. 許可頁面中,新增您建立的政策,然後選擇下一步

    8. 檢閱頁面上,輸入角色名稱 (例如 EMRServerlessAppRuntimeRoleB) 和選用描述。

    9. 檢閱角色詳細資訊,並選擇 Create role (建立角色)

    透過這些角色,您和團隊成員可以連線到同一個應用程式,每個應用程式都使用執行時期角色,其許可範圍將與您個別的資料存取層級相符。

    注意

    Spark 工作階段以不同方式操作。Spark 工作階段會根據從 Studio 使用的執行角色進行隔離,因此具有不同執行角色的使用者將具有個別隔離的 Spark 工作階段。此外,如果您已啟用網域的來源身分,則會進一步隔離不同來源身分的 Spark 工作階段。

  2. 步驟 2:使用下列組態建立名為 AssumableRole 的自訂 IAM 角色:

    • 許可:將必要的許可 (Amazon EMR Serverless 政策) 授予 AssumableRole,以允許存取 EMR Serverless 資源。此角色也稱為存取角色

    • 信任關係:設定 AssumableRole 的信任政策,以允許從需要存取的 Studio 帳戶擔任執行角色 (跨帳戶圖表中的 SageMakerExecutionRole)。

    透過擔任該角色,Studio 可以暫時存取其在 EMR Serverless 帳戶中所需的許可。

    如需如何在 EMR Serverless AssumableRole AWS帳戶中建立新 的詳細說明,請遵循下列步驟:

    1. 導覽至 IAM 主控台

    2. 在左側導覽窗格中,選擇政策,然後選擇建立政策

    3. JSON 索引標籤中,新增允許 EMR Serverless 存取和操作的 Amazon EMR Serverless 許可。如需政策文件的詳細資訊,請參閱 參考政策 中的 EMR Serverless 政策。將陳述式清單複製到您角色的內嵌政策之前,請將 regionaccountID 和傳遞的 EMRServerlessAppRuntimeRole 取代為其實際值。

      注意

      這裡的 EMRServerlessAppRuntimeRole 是在步驟 1 中建立的任務執行時期執行角色 (上述跨帳戶圖表中的 EMRServerlessAppRuntimeRoleB)。您可以視需要在許可內包含任意數量的執行時間角色 ARN 字串,以逗號分隔。

    4. 選擇下一步,然後提供政策名稱

    5. 選擇建立政策

    6. 在左側導覽窗格中,選擇角色,然後選擇建立角色

    7. 建立角色頁面上,選擇自訂信任政策作為信任的實體。

    8. 自訂信任政策區段中貼入下列 JSON 文件,然後選擇下一步

      studio-account 取代為 Studio 帳戶 ID,並將 AmazonSageMaker-ExecutionRole 取代為 JupyterLab 空間使用的執行角色。

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole" }, "Action": "sts:AssumeRole" } ] }
    9. 新增許可頁面中,新增您在步驟 2 中建立的許可 EMRServerlessAppRuntimeRoleB,然後選擇下一步

    10. 檢閱頁面上,輸入角色名稱 (例如 AssumableRole) 和選用描述。

    11. 檢閱角色詳細資訊,並選擇 Create role (建立角色)

    如需在 AWS帳戶上建立角色的詳細資訊,請參閱建立 IAM 角色 (主控台)

在 Studio 帳戶上

在部署 Studio 的帳戶 (也稱為信任帳戶) 上,請使用存取信任帳戶中資源所需的許可,更新存取 EMR Serverless 應用程式的 SageMaker AI 執行角色。

  1. 步驟 1:擷取您空間所使用的 SageMaker AI 執行角色 ARN。

    如需 SageMaker AI 中空間和執行角色的相關資訊,請參閱 了解網域空間許可和執行角色

    如需如何擷取 SageMaker AI 執行角色 ARN 的詳細資訊,請參閱 取得您的執行角色

  2. 步驟 2:將下列許可連接至存取 EMR Serverless 應用程式的 SageMaker AI 執行角色。

    1. https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

    2. 選擇角色,然後在搜尋欄位中依名稱搜尋您的執行角色。角色名稱是 ARN 的最後一部分,在最後一個正斜線 (/) 之後。

    3. 遵循角色的連結。

    4. 選擇新增許可,然後選擇建立內嵌政策

    5. JSON 索引標籤中,新增內嵌政策,授與角色更新網域、使用者設定檔和空間的許可。如需 SageMakerUpdateResourcesPolicy 政策文件的詳細資訊,請參閱 參考政策 中的網域、使用者設定檔和空間更新動作政策。將陳述式清單複製到您角色的內嵌政策之前,請將 regionaccountID 取代為其實際值。

    6. 選擇下一步,然後提供政策名稱

    7. 選擇建立政策

    8. 重複建立內嵌政策步驟,以新增另一個政策,授與執行角色擔任 AssumableRole 的許可,然後執行角色存取政策所允許的動作。

      emr-account 取代為 Amazon EMR Serverless 帳戶 ID,並將 AssumableRole 取代為 Amazon EMR Serverless 帳戶中建立的可擔任角色名稱。

      JSON
      { "Version":"2012-10-17", "Statement": { "Sid": "AllowSTSToAssumeAssumableRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/AssumableRole" } }
  3. 步驟 3

    將執行時期角色清單與您的網域或使用者設定檔建立關聯,以便您以視覺化方式瀏覽角色清單,並選取從 JupyterLab 連線至 EMR Serverless 應用程式時要使用的角色。您可以使用 SageMaker AI 主控台或下列指令碼。接著,從筆記本建立的所有 Apache Spark 或 Apache Hive 任務,只會存取連接至所選執行時期角色的政策所允許的資料及資源。

    重要

    若無法完成此步驟,將阻止您將 JupyterLab 筆記本連線至 EMR Serverless 應用程式。

    SageMaker AI console

    若要使用 SageMaker AI 主控台,將您的執行時期角色與使用者設定檔或網域建立關聯:

    1. 導覽至 SageMaker AI 主控台,網址為 https://console.aws.amazon.com/sagemaker/

    2. 在左側導覽窗格中,選擇網域,然後使用您更新其許可的 SageMaker AI 執行角色選取網域。

      • 若要在網域詳細資訊頁面的應用程式組態索引標籤中,將您的執行時期角色新增至您的網域,請導覽至 JupyterLab 區段。

      • 若要將您的執行時期角色新增至您的使用者設定檔:在網域詳細資訊頁面上,選擇使用者設定檔索引標籤,然後使用您已更新其許可的 SageMaker AI 執行角色選取使用者設定檔。在應用程式組態索引標籤中,導覽至 JupyterLab 區段。

    3. 選擇編輯並新增可擔任角色和 EMR Serverless 執行時期執行角色的 ARNs。

    4. 選擇提交

    當您下次透過 JupyterLab 連線至 EMR Serverless 應用程式時,執行時期角色應該會出現在下拉式功能表中以供選取。

    Python script

    在使用您已更新其許可的 SageMaker AI 執行角色,從私有空間啟動的 JupyterLab 應用程式中,請在終端機中執行下列命令。將 domainIDuser-profile-namestudio-accountIDEMRServerlessRuntimeExecutionRole 取代為其適當的值。此程式碼片段會更新 SageMaker AI 網域內特定使用者設定檔 (client.update_user_profile) 或網域設定 (client.update_domain) 的使用者設定檔設定。具體而言,它會為您先前建立的 Amazon EMR Serverless 設定執行時期執行角色。它還允許 JupyterLab 應用程式擔任 Amazon EMR 帳戶內用於執行 EMR Serverless 應用程式的特定 IAM 角色 (AssumableRole)。

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_user_profile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"], 'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::emr-accountID:role/AnotherRuntimeExecutionRole"] } } }) resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

參考政策

  • EMR Serverless 政策:此政策允許管理 EMR Serverless 應用程式,包括列出、建立 (使用必要的 SageMaker AI 標籤)、啟動、停止、取得詳細資訊、刪除、存取 Livy 端點,以及取得任務執行儀表板。它也允許將所需的 EMR Serverless 應用程式執行時期角色傳遞至服務。

    • EMRServerlessListApplications:允許指定區域和AWS帳戶中所有 EMR Serverless 資源的 ListApplications 動作。

    • EMRServerlessPassRole:允許在提供的AWS帳戶中傳遞指定的執行期角色 (僅當角色傳遞至 時)emr-serverless.amazonaws.com service

    • EMRServerlessCreateApplicationAction:允許對指定區域和AWS帳戶中的 EMR Serverless 資源執行 CreateApplication 和 TagResource 動作。不過,它需要建立或標記的資源具有非 null 值的特定標籤金鑰 (sagemaker:domain-arnsagemaker:user-profile-arnsagemaker:space-arn)。

    • EMRServerlessDenyTaggingAction:如果資源未設定任何指定的標籤索引鍵 (sagemaker:domain-arn、 和 sagemaker:space-arn)sagemaker:user-profile-arn,則指定區域和AWS帳戶中 EMR Serverless 資源上的 TagResource 和 UntagResource 動作。

    • EMRServerlessActions:允許 EMR Serverless 資源上的各種動作 (StartApplicationStopApplicationGetApplicationDeleteApplicationAccessLivyEndpointsGetDashboardForJobRun),但僅在資源設定了非 null 值的指定標籤金鑰 (sagemaker:domain-arnsagemaker:user-profile-arnsagemaker:space-arn)。

    所提供 JSON 文件中定義的 IAM 政策會授予這些許可,但會限制對 EMR Serverless 應用程式上存在的特定 SageMaker AI 標籤的存取,以確保只可以管理與特定 SageMaker AI 網域、使用者設定檔和空間相關聯的 Amazon EMR Serverless 資源。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "EMRServerlessListApplications", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*" }, { "Sid": "EMRServerlessPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/EMRServerlessAppRuntimeRole", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } }, { "Sid": "EMRServerlessCreateApplicationAction", "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:TagResource" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "sagemaker:domain-arn", "sagemaker:user-profile-arn", "sagemaker:space-arn" ] }, "Null": { "aws:RequestTag/sagemaker:domain-arn": "false", "aws:RequestTag/sagemaker:user-profile-arn": "false", "aws:RequestTag/sagemaker:space-arn": "false" } } }, { "Sid": "EMRServerlessDenyTaggingAction", "Effect": "Deny", "Action": [ "emr-serverless:TagResource", "emr-serverless:UntagResource" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "true", "aws:ResourceTag/sagemaker:user-profile-arn": "true", "aws:ResourceTag/sagemaker:space-arn": "true" } } }, { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:GetApplication", "emr-serverless:DeleteApplication", "emr-serverless:AccessLivyEndpoints", "emr-serverless:GetDashboardForJobRun" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/applications/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "false", "aws:ResourceTag/sagemaker:user-profile-arn": "false", "aws:ResourceTag/sagemaker:space-arn": "false" } } } ] }
  • 網域、使用者設定檔和空間更新動作政策:下列政策授與許可,以更新指定區域和 AWS 帳戶內的 SageMaker AI 網域、使用者設定檔和空間。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "SageMakerUpdateResourcesPolicy", "Effect": "Allow", "Action": [ "sagemaker:UpdateDomain", "sagemaker:UpdateUserprofile", "sagemaker:UpdateSpace" ], "Resource": [ "arn:aws:sagemaker:us-east-1:111122223333:domain/*", "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*" ] } ] }