

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

# 將 的角色 AWS Batch 與 SageMaker AI 搭配使用
<a name="using-service-linked-roles-batch-sagemaker"></a>

AWS Batch use AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是直接連結至 的唯一 IAM 角色類型 AWS Batch。服務連結角色由 預先定義， AWS Batch 並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓您更 AWS Batch 輕鬆地設定，因為您不必手動新增必要的許可。 AWS Batch 會定義其服務連結角色的許可，除非另有定義，否則 AWS Batch 只能擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。這可保護您的 AWS Batch 資源，因為您不會不小心移除存取資源的許可。

如需有關支援服務連結角色的其他 服務的資訊，請參閱[AWS 使用 IAM 的服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並在**服務連結角色**欄中尋找具有**是**的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## 的服務連結角色許可 AWS Batch
<a name="service-linked-role-permissions-batch-sagemaker"></a>

AWS Batch 使用名為 **AWSServiceRoleForAWSBatchWithSagemaker** 的服務連結角色 – 允許 代表您 AWS Batch 佇列和管理 SageMaker 訓練任務。

AWSServiceRoleForAWSBatchWithSagemaker 服務連結角色信任下列服務擔任該角色：
+ `sagemaker-queuing.batch.amazonaws.com`

角色許可政策允許 對指定的資源 AWS Batch 完成下列動作：
+ `sagemaker` – 允許 AWS Batch 管理 SageMaker 訓練任務、轉換任務和其他 SageMaker AI 資源。
+ `iam:PassRole` – 允許 AWS Batch 將客戶定義的執行角色傳遞給 SageMaker AI 以進行任務執行。資源限制允許將角色傳遞至 SageMaker AI 服務。

您必須設定許可，以允許您的使用者、群組或角色建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱 *IAM 使用者指南*中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 為 建立服務連結角色 AWS Batch
<a name="create-service-linked-role-batch-sagemaker"></a>

您不需要手動建立服務連結角色，當您在 AWS CLI、 AWS 管理主控台或 AWS API `CreateServiceEnvironment` 中使用 建立服務環境時， AWS Batch 會為您建立服務連結角色。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您使用 建立服務環境時`CreateServiceEnvironment`， 會再次為您 AWS Batch 建立服務連結角色。

若要檢視政策的 JSON，請參閱《 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html)》中的 [AWSBatchServiceRolePolicyForSageMaker](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSBatchServiceRolePolicyForSageMaker.html)。

## 編輯 的服務連結角色 AWS Batch
<a name="edit-service-linked-role-batch-sagemaker"></a>

AWS Batch 不允許您編輯 AWSServiceRoleForAWSBatchWithSagemaker 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 的服務連結角色 AWS Batch
<a name="delete-service-linked-role-batch-sagemaker"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，務必清除您的服務連結角色，之後才能以手動方式將其刪除。

### 清除服務連結角色
<a name="service-linked-role-review-before-delete-batch-sagemaker"></a>

在您可以使用 IAM 刪除服務連結角色之前，您必須先確認角色沒有作用中的工作階段，並刪除單一分割區中所有 AWS 區域中使用該角色的所有服務環境。

**檢查服務連結角色是否有作用中工作階段**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**角色**，然後選擇 AWSServiceRoleForAWSBatchWithSagemaker 名稱 （而非核取方塊）。

1. 在 **Summary** (摘要) 頁面上，選擇 **Access Advisor** (存取 Advisor)，然後檢閱服務連結角色的近期活動。
**注意**  
如果您不知道 AWS Batch 是否使用 AWSServiceRoleForAWSBatchWithSagemaker 角色，您可以嘗試刪除該角色。如果服務正在使用 角色，則該角色將無法刪除。您可以檢視正在使用角色的區域。如果服務正在使用該角色，您必須先等到工作階段結束，才能刪除該角色。您無法撤銷服務連結角色的工作階段。

**移除 AWSServiceRoleForAWSBatchWithSagemaker 服務連結角色所使用的 AWS Batch 資源**

您必須取消所有任務佇列與所有服務環境的關聯，然後必須先刪除所有 AWS 區域中使用 AWSServiceRoleForAWSBatchWithSagemaker 角色的所有服務環境，才能刪除 AWSServiceRoleForAWSBatchWithSagemaker 角色。

1. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 從導覽列中選取要使用的「區域」。

1. 在導覽窗格中，選擇**環境**，然後選擇**服務環境**。

1. 選取所有**服務環境**。

1. 選擇**停用**。等待**狀態**變更為 **DISABLED**。

1. 選取服務環境。

1. 選擇 **刪除**。選擇刪除服務環境，確認您想要**刪除服務環境**。

1. 針對在所有區域中使用服務連結角色的所有服務環境，重複步驟 1–7。

### 在 IAM 中刪除服務連結角色 （主控台）
<a name="delete-service-linked-role-iam-console-batch-sagemaker"></a>

您可以使用 IAM 主控台刪除服務連結角色。

**刪除服務連結角色 (主控台)**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**。然後選取 AWSServiceRoleForAWSBatchWithSagemaker 旁的核取方塊，而非名稱或資料列本身。

1. 選擇 **Delete role** (刪除角色)。

1. 在確認對話方塊中，檢閱服務上次存取資料，以顯示每個所選取角色上次存取 AWS 服務的時間。這可協助您確認角色目前是否作用中。如果您想要繼續進行，請選擇 **Yes, Delete (是，刪除)** 來提交服務連結角色以進行刪除。

1. 查看 IAM 主控台通知，監視服務連結角色刪除的進度。因為 IAM 服務連結角色刪除不同步，所以在您提交角色進行刪除之後，刪除任務可能會成功或失敗。
   + 如果任務成功，則會從清單中移除角色，而且成功通知會出現在頁面頂端。
   + 如果任務失敗，您可以從通知中選擇 **View details (檢視詳細資訊)** 或 **View Resources (檢視資源)**，以了解刪除失敗的原因。如果刪除因角色使用服務資源而失敗，則服務傳回該資訊時，通知會包含資源清單。您接著可以[清除資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)，並重新提交刪除。
**注意**  
根據服務所傳回的資訊，您可能需要重複此程序數次。例如，您的服務連結角色可能會使用六個資源，而且您的服務可能傳回其中五項的相關資訊。如果您清除五個資源，並重新提交刪除角色，則刪除會失敗，而且服務會報告還有一個資源。服務可能會傳回所有資源、其中一些資源，或未報告任何資源。
   + 如果任務失敗，而且通知未包含資源清單，則服務可能未傳回該資訊。若要瞭解如何清除該服務的資源，請參閱[使用 IAM 的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。請在表格中找到您的服務，然後選擇 **Yes** (是) 連結，檢視該服務的服務連結角色文件。

### 在 IAM 中刪除服務連結角色 (AWS CLI)
<a name="delete-service-linked-role-iam-cli-batch-sagemaker"></a>

您可以從 使用 IAM 命令 AWS Command Line Interface 來刪除服務連結角色。

**刪除服務連結角色 (CLI)**

1. 因為無法刪除正在使用或具有相關聯資源的服務連結角色，所以您必須提交刪除要求。如果不符合這些條件，則可以拒絕該請求。您必須從回應中擷取 `deletion-task-id`，以檢查刪除任務的狀態。輸入下列命令，以提交服務連結角色刪除要求：

   ```
   $ aws iam delete-service-linked-role --role-name AWSServiceRoleForAWSBatchWithSagemaker
   ```

1. 使用下列命令，以檢查刪除任務的狀態：

   ```
   $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id
   ```

   刪除任務的狀態可以是 `NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED` 或 `FAILED`。如果刪除失敗，則呼叫會傳回失敗原因，以進行疑難排解。如果刪除因角色使用服務資源而失敗，則服務傳回該資訊時，通知會包含資源清單。您接著可以[清除資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)，並重新提交刪除。
**注意**  
根據服務所傳回的資訊，您可能需要重複此程序數次。例如，您的服務連結角色可能會使用六個資源，而且您的服務可能傳回其中五項的相關資訊。如果您清除五個資源，並重新提交刪除角色，則刪除會失敗，而且服務會報告還有一個資源。服務可能會傳回所有資源，其中一些資源。或者，它可能不會報告任何資源。若要了解如何清除未報告任何資源之服務的資源，請參閱[AWS 使用 IAM 的服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。請在表格中找到您的服務，然後選擇 **Yes** (是) 連結，檢視該服務的服務連結角色文件。

### 在 IAM (AWS API) 中刪除服務連結角色
<a name="delete-service-linked-role-iam-api-batch-sagemaker"></a>

您可以使用 IAM API 刪除服務連結角色。

**刪除服務連結角色 (API)**

1. 如需提交服務連結名單的刪除要求，請呼叫 [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html)。在請求中，指定 AWSServiceRoleForAWSBatchWithSagemaker 角色名稱。

   因為無法刪除正在使用或具有相關聯資源的服務連結角色，所以您必須提交刪除要求。如果不符合這些條件，則可以拒絕該請求。您必須從回應中擷取 `DeletionTaskId`，以檢查刪除任務的狀態。

1. 若要檢查刪除的狀態，請呼叫 [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html)。在請求中，指定 `DeletionTaskId`。

   刪除任務的狀態可以是 `NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED` 或 `FAILED`。如果刪除失敗，則呼叫會傳回失敗原因，以進行疑難排解。如果刪除因角色使用服務資源而失敗，則服務傳回該資訊時，通知會包含資源清單。您接著可以[清除資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-review-before-delete)，並重新提交刪除。
**注意**  
根據服務所傳回的資訊，您可能需要重複此程序數次。例如，您的服務連結角色可能會使用六個資源，而且您的服務可能傳回其中五項的相關資訊。如果您清除五個資源，並重新提交刪除角色，則刪除會失敗，而且服務會報告還有一個資源。服務可能會傳回所有資源、其中一些資源，或未報告任何資源。若要瞭解如何清除未報告任何資源之服務的資源，請參閱[使用 IAM 的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。請在表格中找到您的服務，然後選擇 **Yes** (是) 連結，檢視該服務的服務連結角色文件。

## AWS Batch 服務連結角色支援的區域
<a name="slr-regions-batch-sagemaker"></a>

AWS Batch 支援在所有提供服務的區域中使用服務連結角色。如需詳細資訊，請參閱 [AWS Batch 端點](https://docs.aws.amazon.com/general/latest/gr/batch.html#batch_region)。