のサービスにリンクされたロールの使用 AWS Batch - AWS Batch

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

のサービスにリンクされたロールの使用 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 Batch を作成できます。

  • 以下の形式でサービスロールを指定しますarn:aws:iam::account_number:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch

詳細については、「 ユーザーガイドロール名または が正しくない ARN」の AWS Batch 「」を参照してください。

サービスリンクロールは、まずその関連リソースを削除しなければ削除できません。これにより、リソースへの意図しないアクセスによる権限の削除が防止され、 AWS Batch リソースは保護されます。

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

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

AWS Batch は、 という名前のサービスにリンクされたロールを使用しますAWSServiceRoleForBatch。このAWSServiceRoleForBatchロールにより、 AWS Batch はユーザーに代わって AWS リソースを作成および管理できます。

AWSServiceRoleForBatch サービスにリンクされたロールは、batch.amazonaws.comサービスプリンシパルを信頼してロールを引き受けます。

という名前のIAMポリシーBatchServiceRolePolicyにより AWS Batch 、 は特定のリソースに対して次のアクションを実行できます。

  • autoscaling – AWS Batch が Amazon EC2 Auto Scaling resources を作成および管理できるようにします。 は、ほとんどのコンピューティング環境の Amazon EC2 Auto Scaling グループ AWS Batch を作成および管理します。

  • ec2 – AWS Batch が Amazon EC2インスタンスのライフサイクルを制御し、起動テンプレートとタグを作成および管理できるようにします。 EC2 は、一部のスポットコンピューティング環境のEC2スポットフリートリクエスト AWS Batch を作成および管理します。

  • ecs - AWS Batch ジョブ実行用の Amazon ECSクラスター、タスク定義、タスクの作成と管理を許可します。

  • eks - が検証用の Amazon EKSクラスターリソースを記述 AWS Batch できるようにします。

  • iam - 所有者によって提供されたロールを検証して Amazon 、Amazon EC2 Auto ScalingEC2、および Amazon に渡すことを AWS Batch に許可しますECS。

  • logs – AWS Batch ジョブのロググループとログストリームの作成と管理を に AWS Batch 許可します。

IAM エンティティ (ユーザー、グループ、ロールなど) がサービスにリンクされたロールを作成、編集、または削除できるようにするには、アクセス許可を設定する必要があります。詳細については、「 IAMユーザーガイド」の「サービスにリンクされたロールのアクセス許可」を参照してください。

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

サービスリンクロールを手動で作成する必要はありません。 AWS Management Console、、 AWS CLIまたは CreateComputeEnvironment で AWS API、 serviceRoleパラメータの値を指定しない場合、 によってサービスにリンクされたロールが自動的に AWS Batch 作成されます。

重要

このサービスリンクロールは、このロールでサポートされている機能を使用する別のサービスでアクションが完了した場合にアカウントに表示されます。また、 AWS Batch 2021 年 3 月 10 日より前にサービスを使用していた場合、サービスにリンクされたロールのサポートが開始されると、 はアカウントに AWSServiceRoleForBatch ロール AWS Batch を作成しました。詳細については、「アカウント に表示される新しいロール」を参照してくださいIAM

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

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

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

IAMエンティティが AWSServiceRoleForBatch サービスにリンクされたロールの説明を編集できるようにするには

以下のステートメントをアクセス許可ポリシーに追加します。これにより、IAMエンティティはサービスにリンクされたロールの説明を編集できます。

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch", "Condition": {"StringLike": {"iam:AWSServiceName": "batch.amazonaws.com"}} }

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

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

IAMエンティティが AWSServiceRoleForBatch サービスにリンクされたロールを削除できるようにするには

以下のステートメントをアクセス許可ポリシーに追加します。これにより、IAMエンティティはサービスにリンクされたロールを削除できます。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch", "Condition": {"StringLike": {"iam:AWSServiceName": "batch.amazonaws.com"}} }

サービスリンクロールのクリーンアップ

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

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

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

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

    注記

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

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

AWSServiceRoleForBatch ロールを削除する前に、すべての AWS リージョンで AWSServiceRoleForBatch ロールを使用するすべての AWS Batch コンピューティング環境を削除する必要があります。

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

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

  3. ナビゲーションペインで、Compute environments] (コンピューティング環境) を選択します。

  4. コンピューティング環境を選択します。

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

  6. コンピューティング環境を選択します。

  7. Delete] (削除) を選択します。Delete compute environment] (コンピューティング環境の削除) を選択し、削除したいコンピューティング環境を確認します。

  8. すべてのリージョンでサービスにリンクされたロールを使用する、すべてのコンピューティング環境について、手順 1 ~ 7 を繰り返します。

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

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

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

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

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

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

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

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

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

      注記

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

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

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

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

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

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

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

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

    注記

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

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

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

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

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

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

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

    注記

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

AWS Batch サービスにリンクされたロールでサポートされているリージョン

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