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

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

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

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

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

  • 執行角色:

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

      若要進一步了解執行期角色,請參閱EMR無伺服器使用者指南 中的任務執行期角色

      注意

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

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

  • 假設角色 (也稱為服務存取角色):

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

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

單一帳戶

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

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

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

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

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

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

    如需如何為無EMR伺服器應用程式建立新的執行期執行角色的詳細說明,請依照下列步驟執行:

    1. 導覽至 IAM主控台

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

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

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

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

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

    6. 自訂信任政策區段中貼上下列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:擷取私有空間使用的執行角色ARN的 SageMaker 。

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

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

    注意

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

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

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

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

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

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

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

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

    3. 請遵循您的角色連結。

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

    5. JSON索引標籤中,新增允許無EMR伺服器存取和操作的 Amazon EMR Serverless 許可。如需政策文件的詳細資訊,請參閱 中的EMR無伺服器政策參考政策。取代 region, accountID、 和 通過 EMRServerlessAppRuntimeRole(s) 及其實際值,再將陳述式清單複製到角色的內嵌政策。

      注意

      您可以在許可中視需要包含任意數目的執行期角色ARN字串,以逗號分隔。

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

    7. 選擇 建立政策

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

  5. 步驟 5

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

    重要

    如果未完成此步驟,將無法將 JupyterLab 筆記本連線至 EMR Serverless 應用程式。

    SageMaker console

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

    1. 在 導覽至 SageMaker 主控台https://console.aws.amazon.com/sagemaker/

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

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

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

    3. 選擇編輯並新增無EMR伺服器執行期執行角色ARNs的 。

    4. 選擇提交

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

    Python script

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

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( 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))

跨帳戶

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

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

如需在 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伺服器應用程式建立至少一個任務執行期執行角色 (在上述跨帳戶圖表EMRServerlessRuntimeExecutionRoleB中的 )。選擇自訂信任政策作為信任的實體。新增任務所需的許可。您至少需要完整存取 Amazon S3 儲存貯體,並建立和讀取 AWS Glue Data Catalog 的存取權。

    如需如何為無EMR伺服器應用程式建立新的執行階段執行角色的詳細說明,請依照下列步驟執行:

    1. 導覽至 IAM主控台

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

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

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

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

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

    6. 自訂信任政策區段中貼上下列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伺服器存取和操作的 Amazon EMR Serverless 許可。如需政策文件的詳細資訊,請參閱 中的EMR無伺服器政策參考政策。將陳述式清單複製到角色的內嵌政策之前accountID,請將 region、 和傳遞的 EMRServerlessAppRuntimeRole() 取代為實際值。

      注意

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

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

    5. 選擇 建立政策

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

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

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

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

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

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

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

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

在 Studio 帳戶上

在部署 Studio 的 帳戶上,也稱為信任帳戶 ,更新 SageMaker存取無EMR伺服器應用程式的執行角色,並具有存取信任帳戶中資源所需的許可。

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

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

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

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

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

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

    3. 請遵循您的角色連結。

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

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

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

    7. 選擇 建立政策

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

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

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

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

    重要

    如果未完成此步驟,將無法將 JupyterLab 筆記本連線至 EMR Serverless 應用程式。

    SageMaker console

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

    1. 在 導覽至 SageMaker 主控台https://console.aws.amazon.com/sagemaker/

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

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

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

    3. 選擇編輯,並新增假設角色和無EMR伺服器執行期執行角色ARNs的 。

    4. 選擇提交

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

    Python script

    在使用您更新其許可的 SageMaker 執行角色從私有空間啟動 JupyterLab 的應用程式中,請在終端機中執行下列命令。將 domainIDstudio-accountIDuser-profile-nameEMRServerlessRuntimeExecutionRole取代為適當的值。此程式碼片段會更新網域中 SageMaker特定使用者設定檔 (client.update_userprofile) 或網域設定 (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_userprofile( 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 無伺服器政策:此政策允許管理無EMR伺服器應用程式,包括列出、建立 (使用必要的 SageMaker 標籤)、啟動、停止、取得詳細資訊、刪除、存取 Livy 端點和取得任務執行儀表板。它也允許將必要的 EMR Serverless 應用程式執行期角色傳遞給 服務。

    • EMRServerlessListApplications:允許對指定區域和 AWS 帳戶中的所有無EMR伺服器資源執行 ListApplications 動作。

    • EMRServerlessPassRole:允許在提供的 AWS 帳戶中傳遞指定的執行期角色,但只有在角色傳遞至 時emr-serverless.amazonaws.com service

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

    • EMRServerlessDenyTaggingAction:如果資源未設定任何指定的標籤金鑰 (sagemaker:domain-arn、 TagResource 和 sagemaker:space-arnsagemaker:user-profile-arn,則指定區域和 AWS 帳戶中的無EMR伺服器資源上的 和 UntagResource 動作。

    • EMRServerlessActions:允許無EMR伺服器資源上的各種動作 (StartApplicationStopApplicationAccessLivyEndpoints、、 GetApplication DeleteApplicationGetDashboardForJobRun),但前提是資源具有設定為非空值的指定標籤金鑰 sagemaker:domain-arnsagemaker:user-profile-arn、 和 sagemaker:space-arn)。

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessListApplications", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*" }, { "Sid": "EMRServerlessPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::accountID: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:region:accountID:/*", "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:region:accountID:/*", "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:region:accountID:/applications/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "false", "aws:ResourceTag/sagemaker:user-profile-arn": "false", "aws:ResourceTag/sagemaker:space-arn": "false" } } } ] }
  • 網域、使用者設定檔和空間更新動作政策 :下列政策授予許可,以更新指定區域和 AWS 帳戶中的 SageMaker 網域、使用者設定檔和空間。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerUpdateResourcesPolicy", "Effect": "Allow", "Action": [ "sagemaker:UpdateDomain", "sagemaker:UpdateUserprofile", "sagemaker:UpdateSpace" ], "Resource": [ "arn:aws:sagemaker:region>:accountID:domain/*", "arn:aws:sagemaker:region:accountID:user-profile/*" ] } ] }