SageMaker AI AWS Batch での のロールの使用 - AWS Batch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker AI AWS Batch での のロールの使用

AWS Batch は AWS Identity and Access Management (IAM) サービスにリンクされたロールを使用します。サービスにリンクされたロールは、直接リンクされた一意のタイプの IAM ロールです AWS Batch。サービスにリンクされたロールは によって事前定義 AWS Batch されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれています。

サービスにリンクされたロールを使用すると、必要なアクセス許可を手動で追加する必要がなくなるため、 の設定 AWS Batch が簡単になります。 は、サービスにリンクされたロールのアクセス許可 AWS Batch を定義し、特に定義されている場合を除き、 のみがそのロールを引き受け AWS Batch ることができます。定義される許可は信頼ポリシーと許可ポリシーに含まれており、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

サービスリンクロールを削除するには、最初に関連リソースを削除する必要があります。これにより、 AWS Batch リソースへのアクセス許可が誤って削除されないため、リソースが保護されます。

サービスにリンクされたロールをサポートする他のサービスの詳細については、AWS 「IAM と連携するサービス」を参照し、「サービスにリンクされたロール」列で「はい」があるサービスを探します。サービスリンクロールに関するドキュメントをサービスで表示するには、リンクで [はい] を選択します。

のサービスにリンクされたロールのアクセス許可 AWS Batch

AWS Batch は、AWSServiceRoleForAWSBatchWithSagemaker という名前のサービスにリンクされたロールを使用します。 がユーザーに代わって SageMaker トレーニングジョブ AWS Batch をキューに入れ、管理できるようにします。

AWSServiceRoleForAWSBatchWithSagemaker サービスにリンクされたロールは、次のサービスを信頼してロールを引き受けます。

  • sagemaker-queuing.batch.amazonaws.com

ロールのアクセス許可ポリシーにより AWS Batch 、 は指定されたリソースに対して次のアクションを実行できます。

  • sagemaker – AWS Batch が SageMaker トレーニングジョブ、変換ジョブ、およびその他の SageMaker AI リソースを管理できるようにします。

  • iam:PassRole – ジョブ実行のために AWS Batch がカスタマー定義の実行ロールを SageMaker AI に渡すことを許可します。リソース制約により、SageMaker AI サービスにロールを渡すことができます。

ユーザー、グループ、またはロールにサービスリンクロールの作成、編集、または削除を許可するには、アクセス許可を設定する必要があります。詳細については、「IAM ユーザーガイド」の「Service-linked role permissions」を参照してください。

AWS Batchのサービスリンクロールの作成

サービスリンクロールを手動で作成する必要はありません。 AWS Management Console、、 AWS CLIまたは AWS API CreateServiceEnvironmentで を使用してサービス環境を作成すると、 AWS Batch によってサービスにリンクされたロールが作成されます。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は同じ方法でアカウントにロールを再作成できます。を使用してサービス環境を作成するとCreateServiceEnvironment、 はサービスにリンクされたロールを再度 AWS Batch 作成します。

ポリシーの JSON を表示するには、「 AWS マネージドポリシーリファレンスガイド」のAWSBatchServiceRolePolicyForSageMaker」を参照してください。

AWS Batchのサービスにリンクされたロールの編集

AWS Batch では、AWSServiceRoleForAWSBatchWithSagemaker サービスにリンクされたロールを編集することはできません。サービスリンクロールの作成後は、さまざまなエンティティがロールを参照する可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。

AWS Batchのサービスリンクロールの削除

サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。そうすることで、使用していないエンティティがアクティブにモニタリングされたり、メンテナンスされたりすることがなくなります。ただし、手動で削除する前に、サービスにリンクされたロールをクリーンアップする必要があります。

サービスリンク役割のクリーンアップ

IAM を使用してサービスにリンクされたロールを削除する前に、まずロールにアクティブなセッションがないことを確認し、1 つのパーティション内のすべての AWS リージョンでロールを使用するすべてのサービス環境を削除する必要があります。

サービスにリンクされたロールがアクティブなセッションを持っているかどうかを確認するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、ロールを選択し、AWSServiceRoleForAWSBatchWithSagemaker 名 (チェックボックスではありません) を選択します。

  3. Summary] (概要) ページで Access Advisor] (アクセスアドバイザー) を選択し、サービスにリンクされたロールの最新のアクティビティを確認します。

    注記

    AWS Batch が AWSServiceRoleForAWSBatchWithSagemaker ロールを使用しているかどうかわからない場合は、ロールを削除できます。サービスでロールが使用されている場合、ロールは削除されません。ロールが使用されているリージョンが表示されます。ロールが使用されている場合は、ロールを削除する前にセッションが終了するのを待つ必要があります。サービスにリンクされたロールのセッションを取り消すことはできません。

AWSServiceRoleForAWSBatchWithSagemaker サービスにリンクされたロールによって使用されている AWS Batch リソースを削除するには

AWSServiceRoleForAWSBatchWithSagemaker ロールを削除する前に、すべての AWS リージョンで AWSServiceRoleForAWSBatchWithSagemaker ロールを使用するすべてのサービス環境を削除する必要があります。

  1. https://console.aws.amazon.com/batch/ で AWS Batch コンソールを開きます。

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで、環境を選択し、次にサービス環境を選択します。

  4. すべてのサービス環境を選択します。

  5. Disable] (無効化) を選択します。State] (状態) が DISABLED] (無効) になるまで待ちます。

  6. サービス環境を選択します。

  7. [削除] を選択します。サービス環境の削除を選択して、サービス環境を削除することを確認します。

  8. すべてのリージョンでサービスにリンクされたロールを使用するすべてのサービス環境で、ステップ 1~7 を繰り返します。

IAM でのサービスにリンクされたロールの削除 (コンソール)

IAM コンソールを使用して、サービスにリンクされたロールを削除できます。

サービスにリンクされたロールを削除するには (コンソール)
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  2. IAM コンソールのナビゲーションペインで [ロール] を選択します。次に、名前や行自体ではなく、AWSServiceRoleForAWSBatchWithSagemaker の横にあるチェックボックスをオンにします。

  3. Delete role] (ロールの削除) を選択します。

  4. 確認ダイアログボックスで、サービスの最終アクセス時間データを確認します。これは、選択したそれぞれのロールの AWS のサービスへの最終アクセス時間を示します。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。先に進む場合は、Yes, Delete] (はい、削除する) を選択し、削除するサービスにリンクされたロールを送信します。

  5. IAM コンソール通知を見て、サービスにリンクされたロールの削除の進行状況をモニタリングします。IAM サービスにリンクされたロールの削除は非同期であるため、削除するロールを送信すると、削除タスクは成功または失敗する可能性があります。

    • タスクが成功した場合は、ロールがリストから削除され、成功の通知がページの上部に表示されます。

    • タスクが失敗した場合は、通知から View details] (詳細を表示) または View Resources] (リソースを表示) を選択して、削除が失敗した理由を知ることができます。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次にリソースをクリーンアップしてから、削除リクエストをもう一度送信できます。

      注記

      サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。たとえば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返しますが、そのうちいくつかはリソースを報告しない場合もあります。

    • タスクが失敗し、通知にリソースのリストが含まれていない場合、サービスはその情報を返さない可能性があります。サービスのリソースをクリーンアップする方法の詳細については、IAM と連携するAWS のサービスを参照してください。使用しているサービスをテーブルで見つけ、はいリンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

IAM でのサービスにリンクされたロールの削除 (AWS CLI)

から IAM コマンドを使用して AWS Command Line Interface 、サービスにリンクされたロールを削除できます。

サービスにリンクされたロールを削除するには (CLI)
  1. サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから deletion-task-id を取得して、削除タスクのステータスを確認する必要があります。サービスにリンクされたロールの削除リクエストを送信するには、次のコマンドを入力します:

    $ aws iam delete-service-linked-role --role-name AWSServiceRoleForAWSBatchWithSagemaker
  2. 削除タスクのステータスを確認するには、次のコマンドを入力します:

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

    削除タスクのステータスは、 NOT_STARTEDIN_PROGRESS, SUCCEEDED、または FAILED となります。 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次にリソースをクリーンアップしてから、削除リクエストをもう一度送信できます。

    注記

    サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。たとえば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返す場合もあれば、一部を返す場合もあります。または、リソースが報告されないこともあります。リソースを報告しないサービスのリソースをクリーンアップする方法については、IAM と連携するAWS サービスを参照してください。使用しているサービスをテーブルで見つけ、はいリンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

サービスにリンクされた IAM (AWS API) でのロールの削除

IAM API を使用して、サービスにリンクされたロールを削除できます。

サービスにリンクされたロールを削除するには (API)
  1. サービスにリンクされたロールの削除リクエストを送信するには、DeleteServiceLinkedRole を呼び出します。リクエストで、AWSServiceRoleForAWSBatchWithSagemaker ロール名を指定します。

    サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから DeletionTaskId を取得して、削除タスクのステータスを確認する必要があります。

  2. 削除タスクのステータスを確認するには、GetServiceLinkedRoleDeletionStatus を呼び出します。リクエストで DeletionTaskId を指定します。

    削除タスクのステータスは、 NOT_STARTEDIN_PROGRESS, SUCCEEDED、または FAILED となります。 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。ロールがサービスのリソースを使用しているために削除が失敗したとき、サービスがその情報を返す場合は、通知にはリソースのリストが含まれます。次にリソースをクリーンアップしてから、削除リクエストをもう一度送信できます。

    注記

    サービスが返す情報に応じて、このプロセスを何度も繰り返す必要があります。たとえば、サービスにリンクされたロールが 6 つのリソースを使用しており、サービスはそのうち 5 つのリソースに関する情報を返すことがあります。5 つのリソースをクリーンアップして削除するロールを再度送信すると、削除は失敗し、残りの 1 つのリソースが報告されます。サービスはすべてのリソースを返しますが、そのうちいくつかはリソースを報告しない場合もあります。リソースを報告しないサービスのリソースをクリーンアップする方法については、IAM と連携するAWS のサービス サービスを参照してください。使用しているサービスをテーブルで見つけ、はいリンクを選択すると、そのサービスのサービスにリンクされたロールに関するドキュメントが表示されます。

AWS Batch のサービスにリンクされたロールをサポートするリージョン

AWS Batch は、サービスが利用可能なすべてのリージョンでサービスにリンクされたロールの使用をサポートします。詳細については、AWS Batch エンドポイントを参照してください。