Application Auto Scaling アイデンティティベースポリシーの例 - Application Auto Scaling

Application Auto Scaling アイデンティティベースポリシーの例

デフォルトでは、新しい IAM ユーザーには、何かを実施するためのアクセス権限がありません。IAM 管理者は、Application Auto Scaling API アクションを実行するための許可をエンドユーザーに付与する IAM ポリシーを作成して割り当てる必要があります。

以下のサンプル JSON ポリシードキュメントを使用して IAM ポリシーを作成する方法については、「IAM ユーザーガイド」の「JSON タブでのポリシーの作成」を参照してください。

Application Auto Scaling API とアクションに必要な許可

以下のポリシーは、Application Auto Scaling API の呼び出し時に、一般的なユースケースに対して許可を付与します。アクセスコントロール をセットアップする時、および IAM ユーザーまたはロールにアタッチできる許可ポリシーを記述する時は、このセクションを参照してください。各ポリシーは Application Auto Scaling API アクションのすべて、または一部に対するアクセス権限を付与します。IAM ユーザーまたはロールに、ターゲットサービスと 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、およびスケーリングを設定する各ターゲットサービスに対する必要な許可を IAM ユーザーに付与する必要があります。以下のポリシーを使用して、ターゲットサービスと CloudWatch での作業に必要な最小限の許可をユーザーに付与します。

AppStream 2.0 fleets

以下の許可ポリシーは、必要とされるすべての 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 replicas

以下の許可ポリシーは、必要とされるすべての 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 document classification and entity recognizer endpoints

以下の許可ポリシーは、必要とされるすべての Amazon Comprehend および CloudWatch API アクションへのアクセス権を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "comprehend:UpdateEndpoint", "comprehend:DescribeEndpoint", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

DynamoDB tables and global secondary indexes

以下の許可ポリシーは、必要とされるすべての DynamoDB および CloudWatch API アクションへのアクセス権を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:UpdateTable", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

ECS services

以下の許可ポリシーは、必要とされるすべての ECS および CloudWatch API アクションへのアクセス権を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:UpdateService", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

ElastiCache replication groups

以下の許可ポリシーは、必要とされるすべての 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 clusters

以下の許可ポリシーは、必要とされるすべての 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 tables

以下の許可ポリシーは、必要とされるすべての Amazon Keyspaces および CloudWatch API アクションへのアクセス権を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cassandra:Select", "cassandra:Alter", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

Lambda functions

以下の許可ポリシーは、必要とされるすべての 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) broker storage

以下の許可ポリシーは、必要とされるすべての 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 clusters

以下の許可ポリシーは、必要とされるすべての 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 endpoints

以下の許可ポリシーは、必要とされるすべての SageMaker および CloudWatch API アクションへのアクセス権を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:UpdateEndpointWeightsAndCapacities", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

Spot Fleets (Amazon EC2)

以下の許可ポリシーは、必要とされるすべてのスポットフリートおよび CloudWatch API アクションに対するアクセス権を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeSpotFleetRequests", "ec2:ModifySpotFleetRequest", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

Custom resources

以下の許可ポリシーは、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 と統合されるほとんどのサービスには、コンソールでスケーリングを設定するのに役立つ機能があります。

ほとんどの場合、各サービスには、Application Auto Scaling API アクションへのアクセス許可を含む、コンソールへのアクセスを定義する AWS 管理 (事前定義) IAM ポリシーが用意されています。詳細については、コンソールを使用するサービスのドキュメントを参照してください。

独自のカスタム IAM ポリシーを作成して、AWS Management Console で特定の Application Auto Scaling API アクションを表示および使用するためのきめ細かなアクセス許可をユーザーに付与することもできます。前のセクションのサンプルポリシーを使用することが可能ですが、これらは AWS CLI または SDK を使用して行われるリクエスト向けに設計されています。コンソールではこの機能を実行するために追加の API アクションを使用するので、これらのポリシーは正常に動作しない可能性があります。たとえば、ステップスケーリングを設定するには、CloudWatch アラームを作成および管理するための追加のアクセス許可が必要な場合があります。

ヒント

コンソールでタスクを実行するために必要な API アクションを探すには、AWS CloudTrail などのサービスを使用できます。詳細については、「AWS CloudTrail User Guide」を参照してください。

以下は、ユーザーがスポットフリートのスケーリングポリシーを設定することを許可する許可ポリシーの例です。スポットフリートの IAM アクセス許可に加えて、コンソールからフリートスケーリング設定にアクセスする IAM ユーザーは、動的スケーリングをサポートするサービスに対する適切なアクセス許可が必要です。

{ "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 コンソールの使用に必要な許可」を参照してください。