クリーンアップにサービスにリンクされたロールを使用する - Amazon EMR

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

クリーンアップにサービスにリンクされたロールを使用する

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

サービスにリンクされたロールは、Amazon EMR のサービスロールおよび Amazon EMR の Amazon EC2 インスタンスプロファイルと連携します。サービスロールとインスタンスプロファイルに関する詳細については、「AWS のサービスおよびリソースへのアクセス許可を Amazon EMR に付与する IAM サービスロールの設定」を参照してください。

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

Amazon EMR のサービスにリンクされたロールは、関連するリソースを削除し、アカウント内のすべての EMR クラスターを終了した後にのみ削除できます。これにより、Amazon EMR リソースが保護されるため、リソースへのアクセス許可が誤って削除されることはありません。

クリーンアップにサービスにリンクされたロールを使用する

Amazon EMR は、サービスベースのAWSServiceRoleForEMRCleanupロールを使用して、Amazon EMR サービスにリンクされたロールがその機能を失った場合に、ユーザーに代わって Amazon EC2 リソースを終了および削除するアクセス許可を Amazon EMR に付与します。Amazon EMR は、サービスにリンクされたロールが存在しない場合、クラスターの作成時に自動的に作成します。

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

  • elasticmapreduce.amazonaws.com

AWSServiceRoleForEMRCleanup サービスにリンクされたロールのアクセス許可ポリシーにより、Amazon EMR は指定されたリソースに対して以下のアクションを実行できます。

  • アクション: ec2 上で DescribeInstances

  • アクション: ec2 上で DescribeSpotInstanceRequests

  • アクション: ec2 上で ModifyInstanceAttribute

  • アクション: ec2 上で TerminateInstances

  • アクション: ec2 上で CancelSpotInstanceRequests

  • アクション: ec2 上で DeleteNetworkInterface

  • アクション: ec2 上で DescribeInstanceAttribute

  • アクション: ec2 上で DescribeVolumeStatus

  • アクション: ec2 上で DescribeVolumes

  • アクション: ec2 上で DetachVolume

  • アクション: DeleteVolume 上で ec2

サービスにリンクされたロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、権限を設定する必要があります。

Amazon EMR のサービスリンクロールの作成

AWSServiceRoleForEMRCleanup ロールを手動で作成する必要はありません。クラスターを初めて起動する場合、または AWSServiceRoleForEMRCleanup サービスにリンクされたロールが存在しない場合、Amazon EMR は AWSServiceRoleForEMRCleanup サービスにリンクされたロールを作成します。サービスにリンクされたロールを作成するには、アクセス許可が必要です。この機能を (ユーザー、グループ、ロールなどの) IAM エンティティのアクセス許可ポリシーに追加するステートメントの例については、「クリーンアップにサービスにリンクされたロールを使用する」を参照してください。

重要

サービスにリンクされたロールがサポートされていない 2017 年 10 月 24 日より前に Amazon EMR を使用した場合、Amazon EMR はアカウントに AWSServiceRoleForEMRCleanup サービスにリンクされたロールを作成しました。詳細については、「IAM アカウントに新しいロールが表示される」を参照してください。

Amazon EMR のサービスリンクロールの編集

Amazon EMR では、 AWSServiceRoleForEMRCleanup サービスにリンクされたロールを編集することはできません。サービスにリンクされたロールを作成した後は、さまざまなエンティティがサービスにリンクされたロールを参照する可能性があるため、サービスにリンクされたロールの名前を変更することはできません。ただし、IAM を使用してサービスにリンクされたロールの説明を編集することはできます。

サービスにリンクされたロールの説明の編集 (IAM コンソール)

サービスにリンクされたロールの説明は、IAM コンソールを使用して編集できます。

サービスにリンクされたロールの説明を編集するには (コンソール)
  1. IAM コンソールのナビゲーションペインで [ロール] を選択します。

  2. 変更するロールの名前を選択します。

  3. [Role description] (ロールの説明) の右にある [Edit] (編集) を選択します。

  4. ボックスに新しい説明を入力し、[Save changes] (変更の保存) を選択します。

サービスにリンクされたロールの説明の編集 (IAM CLI)

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

サービスにリンクされたロールの説明を変更するには (CLI)
  1. (オプション) ロールの現在の説明を表示するには、次のコマンドを使用します。

    $ aws iam get-role --role-name role-name

    CLI コマンドでは、ARN ではなくロール名を使用してロールを参照します。例えば、ロールの ARN が arn:aws:iam::123456789012:role/myrole である場合、そのロールを myrole と参照します。

  2. サービスにリンクされたロールの説明を更新するには、次のいずれかのコマンドを使用します。

    $ aws iam update-role-description --role-name role-name --description description

サービスにリンクされたロールの説明の編集 (IAM API)

サービスにリンクされたロールの説明は、IAM API を使用して編集できます。

サービスにリンクされたロールの説明を変更するには (API)
  1. (オプション) ロールの現在の説明を表示するには、次のコマンドを使用します。

    IAM API: GetRole

  2. ロールの説明を更新するには、次のコマンドを使用します。

    IAM API: UpdateRoleDescription

Amazon EMR のサービスリンクロールの削除

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

サービスにリンクされたロールのクリーンアップ

IAM を使用してサービスにリンクされたロールを削除する前に、まずサービスにリンクされたロールにアクティブなセッションがないことを確認し、サービスにリンクされたロールによって使用されるリソースを削除する必要があります。

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

  2. ナビゲーションペインで [ロール] を選択します。 AWSServiceRoleForEMRCleanup サービスにリンクされたロールの名前 (チェックボックスではありません) を選択します。

  3. 選択したサービスにリンクされたロールの概要ページで、Access Advisor を選択します。

  4. [アクセスアドバイザー] タブで、サービスにリンクされたロールの最新のアクティビティを確認します。

    注記

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

によって使用されている Amazon EMR リソースを削除するには AWSServiceRoleForEMRCleanup
  • アカウントのすべてのクラスターを終了します。詳細については、「クラスターを終了する」を参照してください。

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

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

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

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

  3. ページ上部にある ロールのアクションロールの削除 を選択します。

  4. 確認ダイアログボックスで、サービスの最終アクセス時間データを確認します。このデータには、選択した各ロールが最後に AWS サービスにアクセスした日時が表示されます。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。続行するには、[はい、削除します] を選択します。

  5. IAM コンソール通知を見て、サービスにリンクされたロールの削除の進行状況を監視します。IAM サービスにリンクされたロールの削除は非同期であるため、削除のためにサービスにリンクされたロールを送信すると、削除タスクが成功または失敗する可能性があります。タスクが失敗した場合は、通知から View details] (詳細を表示) または View Resources] (リソースを表示) を選択して、削除が失敗した理由を知ることができます。そのロールで使用中のリソースがサービスにあるために削除に失敗した場合、この失敗の理由にはリソースのリストも含まれます。

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

から IAM コマンドを使用して AWS Command Line Interface 、サービスにリンクされたロールを削除できます。サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされないとき、そのリクエストは拒否される場合があります。

サービスにリンクされたロールを削除するには (CLI)
  1. 削除タスクのステータスを確認するには、レスポンスから deletion-task-id を取得する必要があります。サービスにリンクされたロールの削除リクエストを送信するには、次のコマンドを入力します。

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

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

    削除タスクのステータスは、NOT_STARTEDIN_PROGRESSSUCCEEDED、または FAILED となります。削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。

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

IAM API を使用して、サービスにリンクされたロールを削除できます。サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされないとき、そのリクエストは拒否される場合があります。

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

    削除タスクのステータスを確認するには、レスポンスから DeletionTaskId を取得する必要があります。

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

    削除タスクのステータスは、NOT_STARTEDIN_PROGRESSSUCCEEDED、または FAILED となります。削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。

でサポートされているリージョン AWSServiceRoleForEMRCleanup

Amazon EMR では、以下のリージョンで AWSServiceRoleForEMRCleanup サービスにリンクされたロールの使用がサポートされています。

リージョン名 リージョン識別子 Amazon EMR でのサポート
米国東部 (バージニア北部) us-east-1 はい
米国東部 (オハイオ) us-east-2 はい
米国西部 (北カリフォルニア) us-west-1 はい
米国西部 (オレゴン) us-west-2 はい
アジアパシフィック (ムンバイ) ap-south-1 はい
アジアパシフィック (大阪) ap-northeast-3 はい
アジアパシフィック (ソウル) ap-northeast-2 はい
アジアパシフィック (シンガポール) ap-southeast-1 はい
アジアパシフィック (シドニー) ap-southeast-2 はい
アジアパシフィック (東京) ap-northeast-1 はい
カナダ (中部) ca-central-1 はい
欧州 (フランクフルト) eu-central-1 はい
欧州 (アイルランド) eu-west-1 はい
欧州 (ロンドン) eu-west-2 はい
欧州 (パリ) eu-west-3 はい
南米 (サンパウロ) sa-east-1 はい