モニタリングサービスにリンクされたロール - AWS Elastic Beanstalk

モニタリングサービスにリンクされたロール

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

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

サービスリンクロールを削除するには、まずその関連リソースを削除します。これにより、不注意でリソースへのアクセスに必要なアクセス許可が削除されることがなくなり、Elastic Beanstalk リソースが保護されます。

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

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

Elastic Beanstalk が AWSServiceRoleForElasticBeanstalk という名前のサービスにリンクされたロールを使用 - 実行中の環境の状態をモニタリングし、ヘルスイベント通知を発行することを、Elastic Beanstalk に許可します。

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

  • elasticbeanstalk.amazonaws.com

AWSServiceRoleForElasticBeanstalk サービスにリンクされたロールのアクセス許可ポリシーには、Elastic Beanstalk がお客様に代わってアクションを完了するために必要なすべてのアクセス許可が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudformationReadOperationsOnElasticBeanstalkStacks", "Effect": "Allow", "Action": [ "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks" ], "Resource": [ "arn:aws:cloudformation:*:*:stack/awseb-*", "arn:aws:cloudformation:*:*:stack/eb-*" ] }, { "Sid": "AllowOperations", "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeNotificationConfigurations", "autoscaling:DescribeScalingActivities", "autoscaling:PutNotificationConfiguration", "ec2:DescribeInstanceStatus", "ec2:AssociateAddress", "ec2:DescribeAddresses", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:DescribeTargetGroups", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sns:Publish" ], "Resource": [ "*" ] } ] }

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

または、AWS 管理ポリシーを使用して、Elastic Beanstalk へのフルアクセスを許可することもできます。

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

サービスにリンクされたロールを手動で作成する必要はありません。Elastic Beanstalk API を使用して Elastic Beanstalk 環境を作成するとき、サービスロールを指定しないと、Elastic Beanstalk によってサービスにリンクされたロールが作成されます。

重要

AWSServiceRoleForElasticBeanstalk サービスにリンクされたロールのサポートが開始された 2017 年 9 月 27 日より前に、Elastic Beanstalk サービスを使用していた場合、アカウントでそのロールが必要になると、Elastic Beanstalk によってアカウントに AWSServiceRoleForElasticBeanstalk ロールが作成されていました。詳細については、「IAM アカウントに新しいロールが表示される」を参照してください。

環境の作成時、Elastic Beanstalk が AWSServiceRoleForElasticBeanstalk サービスにリンクされたロールをアカウントに作成しようとすると、iam:CreateServiceLinkedRole アクセス許可が必要になります。このアクセス許可がない場合、環境の作成は失敗し、問題を説明するメッセージが表示されます。

別の方法として、サービスにリンクされたロールを作成するアクセス許可を持つ別のユーザーが IAM を使用して、サービスにリンクされたロールを事前に作成できます。この場合は、iam:CreateServiceLinkedRole アクセス許可がなくても、環境を作成できます。

お客様 (または別のユーザー) は、IAM コンソールを使用して、[Elastic Beanstalk] ユースケースでサービスにリンクされたロールを作成できます。IAM CLI または IAM API で、サービスにリンクされたロールをサービス名 (elasticbeanstalk.amazonaws.com) で作成します。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの作成」を参照してください。このサービスにリンクされたロールを削除する場合、この同じプロセスを使用して、もう一度ロールを作成できます。

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

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

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

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

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

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

サービスにリンクされたロールを IAM で削除する前に、すべての Elastic Beanstalk 環境が終了しているか、または別のサービスロールを使用していることを確認する必要があります。

注記

環境を終了しようとしたときに、サービスにリンクされたロールを Elastic Beanstalk サービスが使用していると、終了は失敗する可能性があります。失敗した場合は、数分待ってから再度オペレーションを実行してください。

AWSServiceRoleForElasticBeanstalk を使用する Elastic Beanstalk 環境を終了するには (コンソール)

  1. Elastic Beanstalk コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. [環境アクション] を選択してから、[環境の終了] を選択します。

  4. 画面上のダイアログボックスを使用して、環境の終了を確認します。

EB CLI を使用した Elastic Beanstalk 環境の終了の詳細については、「eb terminate」を参照してください。

API を使用した Elastic Beanstalk 環境の終了の詳細については、「TerminateEnvironment」を参照してください。

サービスにリンクされたロールを手動で削除する

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

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

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