Application Auto Scaling 用のサービスリンクロール
Application Auto Scaling は、ユーザーに代わって AWS のその他サービスを呼び出す上で必要な許可のために、サービスリンクロールを使用します。サービスリンクロールは、AWS のサービスに直接リンクされた特殊なタイプの AWS Identity and Access Management (IAM) ロールです。サービスリンクロールは、AWS のサービスに許可を委任するためのセキュアな方法を提供します。これは、リンクされたサービスのみが、サービスリンクロールを引き受けることができるためです。
内容
概要
Application Auto Scaling と統合されるサービスについては、Application Auto Scaling がユーザーのためにサービスリンクロールを作成します。サービスリンクロールはサービスごとに 1 つあります。サービスリンクロールはそれぞれ、指定されたサービスプリンシパルを信頼してそのロールを継承します。詳細については、「Application Auto Scaling を使用できる AWS のサービス」を参照してください。
Application Auto Scaling は、各サービスリンクロールに必要な許可のすべてを含めます。これらのマネージド許可は、Application Auto Scaling によって作成および管理され、各リソースタイプに対して許可されるアクションを定義します。各ロールが付与する許可の詳細については、「Application Auto Scaling 用の AWS マネージドポリシー」を参照してください。
以下のセクションでは、Application Auto Scaling サービスリンクロールを作成し、管理する方法について説明します。これは、IAM エンティティ (ユーザー、グループ、またはロールなど) がサービスリンクロールの作成、編集、または削除を行うための許可を設定することから始めます。
サービスリンクロールの作成に必要な許可
Application Auto Scaling には、AWS アカウントのユーザーが所定のサービスの RegisterScalableTarget
を初めて呼び出すときにサービスリンクロールを作成するための許可が必要です。Application Auto Scaling は、アカウントにターゲットサービス用のサービスリンクロールが既に存在しない場合、そのロールを作成します。サービスリンクロールは Application Auto Scaling に許可を付与して、ユーザーに代わってターゲットサービスを呼び出すことができるようにします。
この自動ロール作成が正常に行われるには、ユーザーが iam:CreateServiceLinkedRole
アクションに対する許可を持っている必要があります。
"Action": "iam:CreateServiceLinkedRole"
以下は、スポットフリート用のサービスリンクロールを作成するアクセス許可を付与するアイデンティティベースのポリシーです。以下にあるように、サービスリンクロールは ARN としてポリシーの Resource
フィールドに指定し、サービスリンクロールのサービスプリンシパルは条件として指定できます。各サービスの ARN については、「サービスリンクロールの ARN リファレンス」を参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/ec2.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest
",
"Condition": {
"StringLike": {
"iam:AWSServiceName":"ec2.application-autoscaling.amazonaws.com
"
}
}
}
]
}
注記
iam:AWSServiceName
IAM 条件キーは、ロールがアタッチされるサービスプリンシパルを指定するもので、このポリシー例では
として記述されています。サービスプリンシパルを推測しようとしないでください。サービスのサービスプリンシパルを確認するには、「Application Auto Scaling を使用できる AWS のサービス」を参照してください。ec2.application-autoscaling
.amazonaws.com
サービスリンクロールを作成する (自動)
サービスリンクロールを手動で作成する必要はありません。Application Auto Scaling は、ユーザーが RegisterScalableTarget
を呼び出す時に、適切なサービスリンクロールを作成します。例えば、Amazon ECS サービスのオートスケーリングをセットアップする場合は、Application Auto Scaling が AWSServiceRoleForApplicationAutoScaling_ECSService
ロールを作成します。
サービスリンクロールを作成する (手動)
サービスリンクロールを作成するには、IAM コンソール、AWS CLI、または IAM API を使用できます。詳細については、IAM ユーザーガイドの「サービスリンクロールの作成」を参照してください。
サービスリンクロールの作成 (AWS CLI)
以下の create-service-linked-role CLI コマンドを使用して、Application Auto Scaling サービスリンクロールを作成します。リクエストでは、サービス名の「prefix」を指定します。
サービス名のプレフィックスを確認するには、「Application Auto Scaling を使用できる AWS のサービス」セクションで、各サービス用のサービスリンクロールのサービスプリンシパルに関する情報を参照してください。サービス名とサービスプリンシパルは同じプレフィックスを共有します。例えば、AWS Lambda サービスリンクロールを作成するには、lambda.application-autoscaling.amazonaws.com
を使用します。
aws iam create-service-linked-role --aws-service-name
prefix
.application-autoscaling.amazonaws.com
サービスリンクロールを編集する
Application Auto Scaling によって作成されたサービスリンクロールで編集できるのは、それらの説明のみです。詳細については、IAM ユーザーガイドの「サービスリンクロールの編集」を参照してください。
サービスリンクロールを削除する
サポートされているサービスで Application Auto Scaling を使用しなくなった場合は、対応するサービスリンクロールを削除することをお勧めします。
サービスリンクロールは、関連する AWS リソースを削除した後でしか削除できません。これは、リソースに対する Application Auto Scaling 許可を誤って取り消すことがないようにします。詳細については、スケーラブルリソースのドキュメントを参照してください。例えば、Amazon ECS サービスを削除するには、Amazon Elastic Container Service デベロッパーガイドの「サービスの削除」を参照してください。
サービスリンクロールは、IAM を使用して削除できます。詳細については、IAM ユーザーガイド の「サービスにリンクされたロールの削除」を参照してください。
サービスリンクロールの削除後に RegisterScalableTarget
を呼び出すと、Application Auto Scaling がそのロールを再度作成します。
Application Auto Scaling サービスリンクロールがサポートされるリージョン
Application Auto Scaling は、このサービスを利用できるすべての AWS リージョンでサービスリンクロールの使用をサポートします。
サービスリンクロールの ARN リファレンス
サービス | ARN |
---|---|
AppStream 2.0 | arn:aws:iam:: |
Aurora | arn:aws:iam:: |
Comprehend | arn:aws:iam:: |
DynamoDB | arn:aws:iam:: |
ECS | arn:aws:iam:: |
ElastiCache | arn:aws:iam:: |
Keyspaces | arn:aws:iam:: |
Lambda | arn:aws:iam:: |
MSK | arn:aws:iam:: |
Neptune | arn:aws:iam:: |
SageMaker | arn:aws:iam:: |
Spot Fleets | arn:aws:iam:: |
カスタムリソース | arn:aws:iam:: |
注記
AWS CloudFormation スタックテンプレートにある AWS::ApplicationAutoScaling::ScalableTarget リソースの RoleARN
プロパティには、指定するサービスリンクロールがまだ存在しない場合でも、サービスリンクロールの ARN を指定できます。Application Auto Scaling が、そのロールを自動的に作成します。