How scaling plans work with IAM - AWS Auto Scaling

How scaling plans work with IAM

Before you use IAM to manage who can create, access, and manage AWS Auto Scaling scaling plans, you should understand what IAM features are available to use with scaling plans.

Identity-based policies

With IAM identity-based policies, you can specify allowed or denied actions and resources, and the conditions under which actions are allowed or denied. Scaling plans support specific actions, resources, and condition keys. To learn about all of the elements that you use in a JSON policy, see IAM JSON policy elements reference in the IAM User Guide.

Actions

Administrators can use AWS JSON policies to specify who has access to what. That is, which principal can perform actions on what resources, and under what conditions.

The Action element of a JSON policy describes the actions that you can use to allow or deny access in a policy. Policy actions usually have the same name as the associated AWS API operation. There are some exceptions, such as permission-only actions that don't have a matching API operation. There are also some operations that require multiple actions in a policy. These additional actions are called dependent actions.

Include actions in a policy to grant permissions to perform the associated operation.

Scaling plan actions in IAM policy statements use the following prefix before the action: autoscaling-plans:. Policy statements must include either an Action or NotAction element. Scaling plans have their own sets of actions that describe tasks that you can perform with this service.

To specify multiple actions in a single statement, separate them with commas as shown in the following example.

"Action": [ "autoscaling-plans:DescribeScalingPlans", "autoscaling-plans:DescribeScalingPlanResources"

You can specify multiple actions using wildcards (*). For example, to specify all actions that begin with the word Describe, include the following action.

"Action": "autoscaling-plans:Describe*"

To see a complete list of scaling plan actions that can be used in policy statements, see Actions, resources, and condition keys for AWS Auto Scaling in the Service Authorization Reference.

Resources

The Resource element specifies the object or objects to which the action applies.

Scaling plans have no service-defined resources that can be used as the Resource element of an IAM policy statement. Therefore, there are no Amazon Resource Names (ARNs) for you to use in an IAM policy. To control access to scaling plan actions, always use an * (asterisk) as the resource when writing an IAM policy.

Condition keys

The Condition element (or Condition block) lets you specify conditions in which a statement is in effect. For example, you might want a policy to be applied only after a specific date. To express conditions, use predefined condition keys.

Scaling plans do not provide any service-specific condition keys, but they do support using some global condition keys. To see all AWS global condition keys, see AWS global condition context keys in the IAM User Guide.

The Condition element is optional.

Examples

To view examples of identity-based policies for scaling plans, see Identity-based policy examples for scaling plans.

Resource-based policies

Other Amazon Web Services, such as Amazon Simple Storage Service, support resource-based permissions policies. For example, you can attach a permissions policy to an S3 bucket to manage access permissions to that bucket.

Scaling plans do not support resource-based policies.

Access Control Lists (ACLs)

Scaling plans do not support Access Control Lists (ACLs).

Authorization based on tags

Scaling plans cannot be tagged. They also have no service-defined resources that can be tagged. Therefore, they do not support controlling access based on tags on a resource.

Scaling plans may contain taggable resources, such as Auto Scaling groups, that support controlling access based on tags. For more information, see the documentation for that AWS service.

IAM roles

An IAM role is an entity within your AWS account that has specific permissions.

Using temporary credentials

You can use temporary credentials to sign in with federation, to assume an IAM role, or to assume a cross-account role. You obtain temporary security credentials by calling AWS STS API operations such as AssumeRole or GetFederationToken.

Scaling plans support using temporary credentials.

Service-linked roles for scaling plans

AWS Auto Scaling uses service-linked roles for the permissions that it requires to call other AWS services on your behalf. Service-linked roles make setting up scaling plans easier because you don't have to manually add the necessary permissions. For more information, see Using service-linked roles in the IAM User Guide.

AWS Auto Scaling uses a few types of service-linked roles to call other AWS services on your behalf when you work with a scaling plan:

  • Predictive scaling service-linked role — Allows AWS Auto Scaling to access historical metric data from CloudWatch. Also allows creation of scheduled actions for Auto Scaling groups based on a load forecast and capacity prediction. For more information, see Predictive scaling service-linked role.

  • Amazon EC2 Auto Scaling service-linked role — Allows AWS Auto Scaling to access and manage target tracking scaling policies for Auto Scaling groups. For more information, see Service-linked roles for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

  • Application Auto Scaling service-linked role — Allows AWS Auto Scaling to access and manage target tracking scaling policies for other scalable resources. There is one service-linked role for each service. For more information, see Service-linked roles for Application Auto Scaling in the Application Auto Scaling User Guide.

You can use the following procedure to determine if your account already has a service-linked role.

To determine whether a service-linked role already exists
  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. In the navigation pane, choose Roles.

  3. Search the list for AWSServiceRole to find the service-linked roles that exist in your account. Look for the name of the service-linked role that you want to check.

Service roles

AWS Auto Scaling has no service roles for scaling plans.