Amazon EMR on EKS でのサービスにリンクされたロールの使用 - Amazon EMR

Amazon EMR on EKS でのサービスにリンクされたロールの使用

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

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

サービスリンクロールは、まずその関連リソースを削除しなければ削除できません。これにより、リソースへのアクセス許可を誤って削除することが防止され、Amazon EMR on EKS リソースが保護されます。

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

Amazon EMR on EKS でのサービスにリンクされたロールのアクセス許可

Amazon EMR on EKS では、サービスにリンクされたロール AWSServiceRoleForAmazonEMRContainers を使用します。

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

  • emr-containers.amazonaws.com

ロールのアクセス許可ポリシー AmazonEMRContainersServiceRolePolicy は、以下のポリシーステートメントで示すように、指定したリソースに対して一連のアクションを実行することを Amazon EMR on EKS に許可します。

注記

マネージドポリシーの内容は変わるため、ここに示すポリシーは古くなっている可能性があります。AWS Management Console で、最新のポリシー AmazonEMRContainersServiceRolePolicy を確認してください。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListNodeGroups", "eks:DescribeNodeGroup", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "acm:ImportCertificate", "acm:AddTagsToCertificate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/emr-container:endpoint:managed-certificate": "true" } } }, { "Effect": "Allow", "Action": [ "acm:DeleteCertificate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/emr-container:endpoint:managed-certificate": "true" } } } ] }

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

Amazon EMR on EKS でのサービスにリンクされたロールの作成

サービスリンクロールを手動で作成する必要はありません。サービスにリンクされたロールは、仮想クラスターの作成時に Amazon EMR on EKS によって自動的に作成されます。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ方法でアカウントにロールを再作成できます。サービスにリンクされたロールは、仮想クラスターの作成時に Amazon EMR on EKS によって再度作成されます。

IAM コンソールを使用して、Amazon EMR on EKS ユースケースでサービスにリンクされたロールを作成することもできます。AWS CLI または AWS API では、emr-containers.amazonaws.com サービス名を使用してサービスにリンクされたロールを作成します。詳細については、IAM ユーザーガイドの「サービスリンクロールの作成」を参照してください。このサービスリンクロールを削除しても、同じ方法でロールを再作成できます。

Amazon EMR on EKS でのサービスにリンクされたロールの編集

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

Amazon EMR on EKS でのサービスにリンクされたロールの削除

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

注記

リソースの削除を試みた際に、対応するロールが Amazon EMR on EKS サービスで使用されている場合、削除が失敗することがあります。失敗した場合は、数分待ってから操作を再試行してください。

AWSServiceRoleForAmazonEMRContainers で使用されている Amazon EMR on EKS リソースを削除するには
  1. Amazon EMR コンソールを開きます。

  2. 仮想クラスターを選択します。

  3. Virtual Cluster ページで、[削除] を選択します。

  4. この手順をアカウント内の他のすべての仮想クラスターに対して繰り返します。

IAM を使用してサービスリンクロールを手動で削除するには

IAM コンソール、AWS CLI、または AWS API を使用して、AWSServiceRoleForAmazonEMRContainers サービスリンクロールを削除します。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの削除」を参照してください。

Amazon EMR on EKS のサービスにリンクされたロールがサポートされるリージョン

Amazon EMR on EKS では、このサービスを利用できるすべてのリージョンで、サービスにリンクされたロールの使用がサポートされます。詳細については、「Amazon EMR on EKS サービスエンドポイントとサービスクォータ」を参照してください。