Amazon EC2 Auto Scaling のサービスにリンクされたロール - Amazon EC2 Auto Scaling (日本語)

Amazon EC2 Auto Scaling のサービスにリンクされたロール

Amazon EC2 Auto Scaling は、ユーザーに代わっての他の Amazon Web Services を呼び出すために必要なアクセス許可を持つサービスにリンクされたロールを使用します。サービスにリンクされたロールは、AWS のサービスに直接リンクされた一意のタイプの IAM ロールです。

サービスにリンクされたロールは、Amazon Web Services のサービスにアクセス許可を委任するためのセキュアな方法を提供します。これは、リンクされたサービスのみが、サービスにリンクされたロールを引き受けることができるためです。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの使用」を参照してください。また、サービスにリンクされたロールにより、すべての API コールが AWS CloudTrail を介して表示可能になります。これがモニタリングと監査の要件を満たすのに役立つのは、Amazon EC2 Auto Scaling によってお客様に代わって実行されるすべてのアクションを追跡できるためです。詳細については、「Amazon EC2 Auto Scaling API 呼び出しをAWS CloudTrail」を参照してください。

以下のセクションでは、Amazon EC2 Auto Scaling サービスにリンクされたロールを作成および管理する方法について説明します。まず、サービスにリンクされたロールを作成、編集、または削除するためのアクセス許可を設定して IAM エンティティ (ユーザー、グループ、ロールなど) に付与します。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの使用」を参照してください。

Overview

Amazon EC2 Auto Scaling サービスにリンクされたロールには 2 つのタイプがあります。

  • アカウントのデフォルトのサービスにリンクされた、AWSServiceRoleForAutoScalingと呼ばれる ロール (AWSServiceRoleForAutoScaling)。このロールは、自動的に Auto Scaling グループに割り当てられます。ただし、別のサービスにリンクされたロールを指定している場合を除きます。

  • ロールの作成時に指定したカスタムサフィックス付きのサービスにリンクされたロール (例: AWSServiceRoleForAutoScaling_mysuffix)。

カスタムサフィックス付きのサービスにリンクされたロールのアクセス許可は、デフォルトのサービスにリンクされたロールのアクセス許可と同じです。いずれの場合も、ロールを編集することはできません。また、Auto Scaling グループが使用中の場合は削除することもできません。唯一の違いは、ロール名サフィックスです。

Amazon EC2 Auto Scaling によって起動されたインスタンスをカスタマー管理キーで暗号化できるように、AWS Key Management Service キーポリシーを編集するときに、いずれかのロールを指定できます。ただし、特定のカスタマー管理キーへのきめ細かなアクセスを許可する場合は、サービスにリンクされたロールカスタムサフィックスを使用する必要があります。カスタムサフィックス付きのサービスにリンクされたロールを使用すると、以下のことが可能です。

  • カスタマー管理キーをより詳細にコントロールする

  • CloudTrail Logs でどの Auto Scaling グループが API コールを行ったかを追跡する機能

一部のユーザーにのみアクセスを許可するカスタマー管理キー を作成する場合は、以下のステップに従って、カスタムサフィックス付きのサービスにリンクされたロールを使用できます。

  1. カスタムサフィックス付きのサービスにリンクされたロールを作成します。詳細については、「サービスにリンクされたロールを作成する (マニュアル)」を参照してください。

  2. サービスにリンクされたロールにカスタマー管理キー へのアクセスを許可します。サービスにリンクされたロールにキーの使用を許可するキーポリシーの詳細については、「暗号化されたボリュームで使用するのに必要な AWS KMS キーポリシー」を参照してください。

  3. IAM ユーザーまたはロールに、作成したサービスにリンクされたロールへのアクセスを許可します。IAM ポリシーの作成の詳細については、「どのサービスにリンクされたロールを渡せるかを制御する (PassRole を使用)」を参照してください。ユーザーが、サービスにリンクされたロールを渡すためのアクセス許可なしでそのロールを指定しようとすると、エラーが表示されます。

サービスにリンクされたロールによって付与されるアクセス許可

Amazon EC2 Auto Scaling では AWSServiceRoleForAutoScaling サービスにリンクされたロール、またはカスタムサフィックス付きのサービスにリンクされたロールを使用して、ユーザーに代わって AWS API が実行します。

このロールの許可ポリシーは、Amazon EC2 Auto Scaling がリソースで以下のアクションを実行できるようにします。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"EC2InstanceManagement", "Effect":"Allow", "Action":[ "ec2:AttachClassicLinkVpc", "ec2:CancelSpotInstanceRequests", "ec2:CreateFleet", "ec2:CreateTags", "ec2:DeleteTags", "ec2:Describe*", "ec2:DetachClassicLinkVpc", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource":"*" }, { "Sid":"EC2InstanceProfileManagement", "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"ec2.amazonaws.com*" } } }, { "Sid":"EC2SpotManagement", "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"*", "Condition":{ "StringEquals":{ "iam:AWSServiceName":"spot.amazonaws.com" } } }, { "Sid":"ELBManagement", "Effect":"Allow", "Action":[ "elasticloadbalancing:Register*", "elasticloadbalancing:Deregister*", "elasticloadbalancing:Describe*" ], "Resource":"*" }, { "Sid":"CWManagement", "Effect":"Allow", "Action":[ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm" ], "Resource":"*" }, { "Sid":"SNSManagement", "Effect":"Allow", "Action":[ "sns:Publish" ], "Resource":"*" }, { "Sid":"EventBridgeRuleManagement", "Effect":"Allow", "Action":[ "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:DeleteRule", "events:DescribeRule" ], "Resource":"*", "Condition":{ "StringEquals":{ "events:ManagedBy":"autoscaling.amazonaws.com" } } } ] }

このロールを引き受けるために autoscaling.amazonaws.com サービスを信頼します。

サービスにリンクされたロールを作成する (自動)

Amazon EC2 Auto Scaling ではAWSServiceRoleForAutoScalingサービスにリンクされたロールは、Auto Scaling グループを初めて作成するときに適用されます。ただし、カスタムサフィックス付きのサービスにリンクされたロールを手動で作成し、グループの作成時に指定する必要があります。

重要

サービスにリンクされたロールを作成するための IAM アクセス許可が必要です。それ以外の場合、自動作成は失敗します。詳細については、IAM ユーザーガイドおよびサービスにリンクされたロールを作成するために必要なアクセス許可このガイドの「サービスにリンクされたロールのアクセス許可」を参照してください。

Amazon EC2 Auto Scaling は、サービスにリンクされたロールのサポートを 2018 年 3 月に開始しました。それ以前に Auto Scaling グループを作成していた場合、Amazon EC2 Auto Scaling はAWSServiceRoleForAutoScalingロールをアカウントに作成しています。詳細については、IAM ユーザーガイドの「私の AWS アカウント に新しいロールが表示される」を参照してください。

サービスにリンクされたロールを作成する (マニュアル)

サービスにリンクされたロールを作成するには (コンソール)

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [Roles]、[Create role] の順に選択します。

  3. [Select type of trusted entity (信頼されたエンティティのタイプの選択)] で、[AWS のサービス] を選択します。

  4. [このロールを使用するサービスを選択] で、[EC2 Auto Scaling]、[EC2 Auto Scaling] ユースケースの順に選択します。

  5. [Next: Permissions (次へ: アクセス許可)]、[Next: Tags (次へ: タグ)]、[Next: Review (次へ: レビュー)] の順に選択します。注意: サービスにリンクされたロールの作成時にタグ付けを行うことはできません。

  6. [Review (レビュー)] ページで、[ロール名] を空白のままにして AWSServiceRoleForAutoScaling という名前でサービスにリンクされたロールを作成するか、サフィックスを入力して AWSServiceRoleForAutoScaling_suffix という名前でサービスにリンクされたロールを作成します。

  7. (オプション) [ロールの説明] で、サービスにリンクされたロールの説明を編集します。

  8. [Create role] を選択します。

サービスにリンクされたロールを作成するには ()AWS CLI

次の create-service-linked-role CLI コマンドを使用して AWSServiceRoleForAutoScaling_suffix という名前の Amazon EC2 Auto Scaling のサービスにリンクされたロールを作成します。

aws iam create-service-linked-role --aws-service-name autoscaling.amazonaws.com --custom-suffix suffix

このコマンドの出力には、サービスにリンクされたロールの ARN が含まれており、これを使用してサービスにリンクされたロールにカスタマー管理キーへのアクセスを許可できます。

{ "Role": { "RoleId": "ABCDEF0123456789ABCDEF", "CreateDate": "2018-08-30T21:59:18Z", "RoleName": "AWSServiceRoleForAutoScaling_suffix", "Arn": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_suffix", "Path": "/aws-service-role/autoscaling.amazonaws.com/", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "autoscaling.amazonaws.com" ] }, "Effect": "Allow" } ] } } }

詳細については、IAM ユーザーガイドの「サービスリンクロールの作成」を参照してください。

サービスにリンクされたロールを編集する

Amazon EC2 Auto Scaling 用に作成されたサービスにリンクされたロールは編集できません。サービスにリンクされたロールを作成した後、ロールの名前またはアクセス許可を変更することはできません。ただし、ロールの説明は編集できます。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの編集」を参照してください。

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

Auto Scaling グループを使用していない場合、そのサービスにリンクされたロールを削除することをお勧めします。ロールを削除すると、使用されていないエンティティやアクティブにモニタリングおよび維持されていないエンティティがなくなります。

サービスにリンクされたロールを削除するには、まずその関連依存リソースを削除します。これにより、リソースに対する Amazon EC2 Auto Scaling アクセス許可を誤って取り消すことがなくなります。サービスにリンクされたロールが複数の Auto Scaling グループで使用されている場合、サービスにリンクされたロールを削除する前に、そのロールを使用するすべての Auto Scaling グループを削除する必要があります。詳細については、「Auto Scaling インフラストラクチャの削除」を参照してください。

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

AWSServiceRoleForAutoScaling というサービスにリンクされたロールを削除した場合は、Auto Scaling グループの作成時に別のサービスにリンクされたロールを指定しないと、Amazon EC2 Auto Scaling グループによって再び作成されます。

Amazon EC2 Auto Scaling のサービスにリンクされたロールがサポートされるリージョン

Amazon EC2 Auto Scaling では、AWSこのサービスを利用できるリージョンのすべてで、サービスにリンクされたロールの使用がサポートされます。