デフォルトでは、AWS アカウント の新しいユーザーには、何かを実施するためのアクセス許可がありません。IAM 管理者は、IAM アイデンティティ (ユーザーやロールなど) に Application Auto Scaling API アクションを実行するアクセス許可を与える IAM ポリシーを作成して割り当てる必要があります。
以下のサンプル JSON ポリシードキュメントを使用して IAM ポリシーを作成する方法については、IAM ユーザーガイドの「[JSON] タブでのポリシーの作成」を参照してください。
内容
Application Auto Scaling API アクションに必要な許可
以下のポリシーは、Application Auto Scaling API の呼び出し時に、一般的なユースケースに対して許可を付与します。アイデンティティベースのポリシーを作成するときは、このセクションを参照してください。各ポリシーは、Application Auto Scaling API アクションのすべて、または一部に対するアクセス許可を付与します。また、エンドユーザーがターゲットサービスと CloudWatch に対するアクセス許可があることを確認する必要もあります (詳細については、次のセクションを参照してください)。
以下のアイデンティティベースのポリシーは、すべての Application Auto Scaling API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"application-autoscaling:*"
],
"Resource": "*"
}
]
}
以下のアイデンティティベースのポリシーは、スケジュールされたアクションではなく、スケーリングポリシーを設定するために必要なすべての Application Auto Scaling API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"application-autoscaling:RegisterScalableTarget",
"application-autoscaling:DescribeScalableTargets",
"application-autoscaling:DeregisterScalableTarget",
"application-autoscaling:PutScalingPolicy",
"application-autoscaling:DescribeScalingPolicies",
"application-autoscaling:DescribeScalingActivities",
"application-autoscaling:DeleteScalingPolicy"
],
"Resource": "*"
}
]
}
以下のアイデンティティベースのポリシーは、スケーリングポリシーではなく、スケジュールされたアクションを設定するために必要なすべての Application Auto Scaling API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"application-autoscaling:RegisterScalableTarget",
"application-autoscaling:DescribeScalableTargets",
"application-autoscaling:DeregisterScalableTarget",
"application-autoscaling:PutScheduledAction",
"application-autoscaling:DescribeScheduledActions",
"application-autoscaling:DescribeScalingActivities",
"application-autoscaling:DeleteScheduledAction"
],
"Resource": "*"
}
]
}
ターゲットサービスと CloudWatch での API アクションに必要な許可
ターゲットサービスで Application Auto Scaling を正常に設定して使用するには、Amazon CloudWatch、およびスケーリングを設定する各ターゲットサービスに対するアクセス許可をエンドユーザーに付与する必要があります。以下のポリシーを使用して、ターゲットサービスと CloudWatch での作業に必要な最小限のアクセス許可を付与します。
内容
AppStream 2.0 フリート
以下のアイデンティティベースのポリシーは、必要とされるすべての AppStream 2.0 および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"appstream:DescribeFleets",
"appstream:UpdateFleet",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
Aurora レプリカ
以下のアイデンティティベースのポリシーは、必要とされるすべての Aurora および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds:AddTagsToResource",
"rds:CreateDBInstance",
"rds:DeleteDBInstance",
"rds:DescribeDBClusters",
"rds:DescribeDBInstances",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
Amazon Comprehend ドキュメントの分類とエンティティ認識のエンドポイント
以下のアイデンティティベースのポリシーは、必要とされるすべての Amazon Comprehend および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"comprehend:UpdateEndpoint",
"comprehend:DescribeEndpoint",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
DynamoDB テーブルとグローバルセカンダリインデックス
以下のアイデンティティベースのポリシーは、必要とされるすべての DynamoDB および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:DescribeTable",
"dynamodb:UpdateTable",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
ECS サービス
以下のアイデンティティベースのポリシーは、必要とされるすべての ECS および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeServices",
"ecs:UpdateService",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
ElastiCache レプリケーショングループ
以下のアイデンティティベースのポリシーは、必要とされるすべての ElastiCache および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"elasticache:ModifyReplicationGroupShardConfiguration",
"elasticache:IncreaseReplicaCount",
"elasticache:DecreaseReplicaCount",
"elasticache:DescribeReplicationGroups",
"elasticache:DescribeCacheClusters",
"elasticache:DescribeCacheParameters",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
Amazon EMR クラスター
以下のアイデンティティベースのポリシーは、必要とされるすべての Amazon EMR および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"elasticmapreduce:ModifyInstanceGroups",
"elasticmapreduce:ListInstanceGroups",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
Amazon Keyspaces テーブル
以下のアイデンティティベースのポリシーは、必要とされるすべての Amazon Keyspaces および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cassandra:Select",
"cassandra:Alter",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
Lambda 関数
以下のアイデンティティベースのポリシーは、必要とされるすべての Lambda および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:PutProvisionedConcurrencyConfig",
"lambda:GetProvisionedConcurrencyConfig",
"lambda:DeleteProvisionedConcurrencyConfig",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
Amazon Managed Streaming for Apache Kafka (MSK) ブローカーストレージ
以下のアイデンティティベースのポリシーは、必要とされるすべての Amazon MSK および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kafka:DescribeCluster",
"kafka:DescribeClusterOperation",
"kafka:UpdateBrokerStorage",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
Neptune クラスター
以下のアイデンティティベースのポリシーは、必要とされるすべての Neptune および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds:AddTagsToResource",
"rds:CreateDBInstance",
"rds:DescribeDBInstances",
"rds:DescribeDBClusters",
"rds:DescribeDBClusterParameters",
"rds:DeleteDBInstance",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
SageMaker エンドポイント
以下のアイデンティティベースのポリシーは、必要とされるすべての SageMaker および CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sagemaker:DescribeEndpoint",
"sagemaker:DescribeEndpointConfig",
"sagemaker:DescribeInferenceComponent",
"sagemaker:UpdateEndpointWeightsAndCapacities",
"sagemaker:UpdateInferenceComponentRuntimeConfig",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
スポットフリート (Amazon EC2)
以下のアイデンティティベースのポリシーは、必要とされるすべてのスポットフリートおよび CloudWatch API アクションへのアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeSpotFleetRequests",
"ec2:ModifySpotFleetRequest",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
カスタムリソース
以下のアイデンティティベースのポリシーは、API Gateway API 実行アクションへのアクセス許可を付与します。また、このポリシーは、必要とされるすべての CloudWatch アクションへのアクセス許可も付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
AWS Management Consoleで作業するための許可
Application Auto Scaling にスタンドアロンコンソールはありません。Application Auto Scaling と統合するほとんどのサービスには、それらのコンソールでスケーリングを設定することを目的とした機能があります。
多くの場合、各サービスは、そのコンソールへのアクセス権を定義する事前定義された AWS マネージド IAM ポリシーを提供し、これには Application Auto Scaling API アクションに対する許可が含まれます。詳細については、コンソールを使用するサービスのドキュメントを参照してください。
AWS Management Consoleで特定の Application Auto Scaling アクションを表示して使用するためのきめ細かな許可をユーザーに付与する、独自のカスタム IAM ポリシーを作成することもできます。前のセクションのサンプルポリシーを使用することが可能ですが、これらは AWS CLI または SDK を使用して行われるリクエスト向けに設計されています。コンソールではこの機能を実行するために追加の API アクションを使用するので、これらのポリシーは正常に動作しない可能性があります。例えば、ステップスケーリングを設定するには、CloudWatch アラームを作成して管理するための追加の許可がユーザーに必要となる場合があります。
ヒント
コンソールでタスクを実行するために必要な API アクションを探すには、AWS CloudTrail などのサービスを使用できます。詳細については、AWS CloudTrail ユーザーガイドを参照してください。
以下のアイデンティティベースのポリシーは、スポットフリートのスケーリングポリシーを設定するためのアクセス許可を付与します。スポットフリートの IAM アクセス許可に加えて、Amazon EC2 コンソールからフリートスケーリング設定にアクセスするコンソールユーザーには、動的スケーリングをサポートするサービスに対する適切なアクセス許可が必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"application-autoscaling:*",
"ec2:DescribeSpotFleetRequests",
"ec2:ModifySpotFleetRequest",
"cloudwatch:DeleteAlarms",
"cloudwatch:DescribeAlarmHistory",
"cloudwatch:DescribeAlarms",
"cloudwatch:DescribeAlarmsForMetric",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DisableAlarmActions",
"cloudwatch:EnableAlarmActions",
"sns:CreateTopic",
"sns:Subscribe",
"sns:Get*",
"sns:List*"
],
"Resource": "*"
},
{
"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
"
}
}
}
]
}
このポリシーは、コンソールユーザーが Amazon EC2 コンソールでスケーリングポリシーを表示して変更し、CloudWatch コンソールで CloudWatch アラームを作成して管理することを可能にします。
API アクションを調整して、ユーザーアクセスを制限できます。例えば、application-autoscaling:*
を application-autoscaling:Describe*
に置き換えると、ユーザーには読み取り専用アクセスが与えられます。
また、必要に応じて CloudWatch 許可を調整して、CloudWatch 機能へのユーザーアクセスを制限することもできます。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch コンソールへのアクセス許可」を参照してください。