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 リソースを削除するには
-
Amazon EMR コンソールを開きます。
-
仮想クラスターを選択します。
-
Virtual Cluster
ページで、[削除] を選択します。 -
この手順をアカウント内の他のすべての仮想クラスターに対して繰り返します。
IAM を使用してサービスリンクロールを手動で削除するには
IAM コンソール、AWS CLI、または AWS API を使用して、AWSServiceRoleForAmazonEMRContainers
サービスリンクロールを削除します。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの削除」を参照してください。
Amazon EMR on EKS のサービスにリンクされたロールがサポートされるリージョン
Amazon EMR on EKS では、このサービスを利用できるすべてのリージョンで、サービスにリンクされたロールの使用がサポートされます。詳細については、「Amazon EMR on EKS サービスエンドポイントとサービスクォータ」を参照してください。