Amazon EC2 Auto Scaling アイデンティティベースのポリシーの例 - Amazon EC2 Auto Scaling (日本語)

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

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

デフォルトでは、 IAM ユーザーとロールに、作成または変更する権限がありません Amazon EC2 Auto Scaling リソースです。また、 AWS マネジメントコンソール、 AWS CLI、または AWS API。A IAM 管理者が作成する必要がある IAM ユーザーおよびロールに必要な特定のリソースに対して特定のAPI操作を実行する権限をユーザーおよびロールに与えるポリシー。続いて、管理者はそれらのアクセス権限が必要な IAM ユーザーまたはグループにそのポリシーをアタッチします。

作成方法を学ぶには IAM JSONポリシードキュメントの例を使用したIDベースのポリシーについては、を参照してください。 [JSON]タブでのポリシーの作成IAM ユーザーガイド.

以下に示しているのは、アクセス権限ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "test" } } }, { "Effect": "Allow", "Action": [ "autoscaling:*LaunchConfiguration*", "autoscaling:Describe*" ], "Resource": "*" }] }

このサンプル ポリシーでは、ユーザーが作成、変更、削除できる権限が付与されます。 Auto Scaling グループが タグを使用する場合のみ、 environment=test。 起動構成はタグをサポートしないため、 Describe アクションはリソース レベルの権限をサポートしません。これらの権限は、条件なしで別のステートメントで指定する必要があります。 ポリシーステートメント内の要素の詳細については、「IAM」を参照してください。Amazon EC2 Auto Scaling アイデンティティベースのポリシー.

ポリシーのベストプラクティス

アイデンティティベースのポリシーは非常に強力です。アカウント内で、Amazon EC2 Auto Scaling リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションを実行すると、AWS アカウントに追加料金が発生する可能性があります。アイデンティティベースのポリシーを作成または編集するときは、以下のガイドラインと推奨事項に従います。

  • AWS 管理ポリシーの使用を開始する – Amazon EC2 Auto Scaling の使用をすばやく開始するには、AWS 管理ポリシーを使用して、従業員に必要なアクセス許可を付与します。これらのポリシーはアカウントですでに有効になっており、AWS によって管理および更新されています。詳細については、IAM ユーザーガイド の「AWS 管理ポリシーを使用したアクセス許可の使用開始」を参照してください 。

  • 最小権限を付与する – カスタムポリシーを作成するときは、タスクを実行するために必要なアクセス許可のみを付与します。最小限のアクセス権限から開始し、必要に応じて追加のアクセス権限を付与します。この方法は、寛容なアクセス権限で始め、後でそれらを強化しようとするよりも安全です。詳細については、IAM ユーザーガイド の「最小権限を付与する」を参照してください。

  • 機密性の高いオペレーションに MFA を有効にする – 追加セキュリティとして、機密性の高リソースまたは API オペレーションにアクセスするために IAM ユーザーに対して、多要素認証 (MFA) の使用を要求します。詳細については、IAM ユーザーガイドの「AWS のデバイスに 多要素認証 (MFA) を使用」を参照してください。

  • 追加セキュリティに対するポリシー条件を使用する – 実行可能な範囲内で、アイデンティティベースのポリシーがリソースにアクセスできる条件を定義します。たとえば、要求が発生しなければならない許容 IP アドレスの範囲を指定するための条件を記述できます。指定された日付または時間範囲内でのみリクエストを許可する条件を書くことも、SSL や MFA の使用を要求することもできます。ポリシー要素の詳細については、IAM ユーザーガイド の「IAM JSON ポリシー要素: 条件」を参照してください。

注記

一部 Amazon EC2 Auto Scaling APIアクションでは、特定の Auto Scaling アクションによって作成または変更できる、ポリシー内のグループ。これらのアクションの対象となるリソースを制限するには、Auto Scaling グループの ARN を個別に指定します。ただし、ベストプラクティスとして、特定のタグを持つ Auto Scaling グループに対するアクションを許可 (または拒否) するタグベースのポリシーを使用することをお勧めします。

事前定義されたAWS管理ポリシー

AWS によって作成された管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与します。これらのポリシーは、必要なアクセス権に基づき、IAM ユーザーにアタッチできます。各ポリシーは のすべてまたは一部の API アクションへのアクセスを提供します。Amazon EC2 Auto Scaling.

に対する AWS 管理ポリシーを次に示します。Amazon EC2 Auto Scaling:

  • AutoScalingConsoleFullAccess — を使用して Amazon EC2 Auto Scaling へのフルアクセスを付与します。AWS マネジメントコンソール.

  • AutoScalingConsoleReadOnlyAccess — を使用して Amazon EC2 Auto Scaling への読み取り専用アクセスを付与します。AWS マネジメントコンソール.

  • AutoScalingFullAccess — へのフルアクセス権を付与します。Amazon EC2 Auto Scaling.

  • AutoScalingReadOnlyAccess — への読み取り専用アクセス権を付与します。Amazon EC2 Auto Scaling.

また、 AmazonEC2FullAccess すべての Amazon EC2 リソースおよび関連サービス(以下を含む) Amazon EC2 Auto Scaling、 CloudWatch、および Elastic Load Balancing.

カスタマー管理ポリシーの例

独自のカスタム IAM 許可を許可または拒否するポリシー IAM 実行するユーザーまたはグループ Amazon EC2 Auto Scaling アクション。これらのカスタムポリシーは、指定されたアクセス権限が必要な IAM ユーザーまたはグループにアタッチできます。次の例では、いくつかの一般的ユースケースのアクセス許可を示します。

初めてポリシーを作成する場合は、まずアカウントに IAM ユーザーを作成し、このユーザーにポリシーをアタッチすることをお勧めします。コンソールを使用して、ユーザーにポリシーをアタッチしながら各ポリシーの効果を確認できます。

作成および更新時 Auto Scaling いくつかのアクションでは、他の特定のアクションを実行する必要があります。これらのその他のアクションは、 Action 要素 IAM 方針声明。たとえば、 Elastic Load Balancing、 CloudWatch、および Amazon SNS ユーザーに提供するアクセス権に応じて、必要になる場合があります。

使用できるタグキーとタグ値を制御します

条件を使用できるのは、 IAM 適用できるタグキーとタグ値を制御するポリシー Auto Scaling グループ。

ユーザーに対して、 Auto Scaling 特定のタグを指定している場合にのみ、 aws:RequestTag 条件キー。特定のタグキーのみを許可するには、 aws:TagKeys 条件キーと ForAllValues 修飾子。

次のポリシーでは、そのリクエストでキー environment を使用してタグを指定することをユーザーに要求します。は、 "?*" 値 は、 タグキーに値があることを強制します。ワイルドカードを含める場合は、StringLike 条件演算子を使用する必要があります。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/environment": "?*" } } }] }

次のポリシーでは、ユーザーがタグ付けできるのは Auto Scaling タグのあるグループ purpose=webserver および cost-center=cc123、および のみを許可します。 purpose および cost-center タグ(他のタグは指定できません)。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "webserver", "aws:RequestTag/cost-center": "cc123" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["purpose", "cost-center"] } } }] }

次のポリシーでは、ユーザーはリクエストに少なくとも1つのタグを指定する必要があり、 cost-center および owner キー。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["cost-center", "owner"] } } }] }
注記

条件においては、条件キーでは大文字と小文字が区別されず、条件値では大文字と小文字が区別されます。したがって、タグキーの大文字と小文字を区別するには、条件の値としてタグキーが指定される aws:TagKeys 条件キーを使用します。

へのアクセスを制御する Auto Scaling タグに基づくリソース

また、 IAM に付加されたタグに基づいてアクセスを制御するポリシー Auto Scaling をグループ化します。 autoscaling:ResourceTag 条件キー。

作成と管理へのアクセスを制御する Auto Scaling グループと拡張ポリシー

次のポリシーでは、ユーザーにすべての Amazon EC2 Auto Scaling 文字列を含むアクション Scaling その名前を Auto Scaling グループに タグがあります purpose=webserver。 なぜなら、 Describe アクションはリソース レベルの権限をサポートしません。これらの権限は、条件なしで別のステートメントで指定する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["autoscaling:*Scaling*"], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/purpose": "webserver" } } }, { "Effect": "Allow", "Action": "autoscaling:Describe*Scaling*", "Resource": "*" }] }

削除できるスケーリングポリシーを制御

次のポリシーでは、autoscaling:DeletePolicy アクションを使用してスケーリングポリシーを削除することをユーザーに許可します。ただし、 Auto Scaling のグループには、 environment=production.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "autoscaling:DeletePolicy", "Resource": "*" }, { "Effect": "Deny", "Action": "autoscaling:DeletePolicy", "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "production" } } }] }

容量制限の制御 Auto Scaling グループ

Amazon EC2 Auto Scaling では、作成できる Auto Scaling グループのサイズを制限できます。次のポリシーでは、すべての Auto Scaling タグを持つグループ allowed=true1 未満の最小サイズまたは 10 を超える最大サイズを指定しない限り、 。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/allowed": "true" }, "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize": 1 }, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize": 10 } } }] }

どの IAM ロールを渡すことができます (PassRole を使用)

ユーザーが Amazon EC2 Auto Scaling インスタンスプロファイル( IAM 役割)、次の例のように、ユーザーが役割を渡すことを許可するステートメントを含むポリシーを使用する必要があります。ARN を指定することにより、ポリシーはユーザーに名前で始まるロールのみを渡す許可を与えます。 qateam-。 詳細については、以下を参照してください。 IAM 実行アプリケーションの役割 Amazon EC2 インスタンス.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qateam-*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ec2.amazonaws.com" ] } } } ] }

ユーザーに の容量の変更を許可 Auto Scaling グループ

次のポリシーでは、ユーザーは SetDesiredCapacity および TerminateInstanceInAutoScalingGroup API アクション。は、 Resource 要素はワイルドカード(*)を使用して、ユーザーが Auto Scaling グループ。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:SetDesiredCapacity", "autoscaling:TerminateInstanceInAutoScalingGroup" ], "Resource": "*" }] }

タグを使用して、 Auto Scaling 前のステートメントを調整して、ユーザーに Auto Scaling 名前が次の文字で始まるグループ: devteam-。 ARN 値の指定の詳細については、以下を参照してください。 Resources.

"Resource": "arn:aws:autoscaling:region:123456789012:autoScalingGroup:*:autoScalingGroupName/devteam-*"

複数の ARN をリストに含めて指定することもできます。UUID を含めることで、特定の Auto Scaling グループに確実にアクセス権が付与されます。新しいグループの UUID は、削除された同じ名前のグループの UUID とは異なります。

"Resource": [ "arn:aws:autoscaling:region:123456789012:autoScalingGroup:7fe02b8e-7442-4c9e-8c8e-85fa99e9b5d9:autoScalingGroupName/devteam-1", "arn:aws:autoscaling:region:123456789012:autoScalingGroup:9d8e8ea4-22e1-44c7-a14d-520f8518c2b9:autoScalingGroupName/devteam-2", "arn:aws:autoscaling:region:123456789012:autoScalingGroup:60d6b363-ae8b-467c-947f-f1d308935521:autoScalingGroupName/devteam-3" ]

ユーザーに起動構成の作成および使用を許可

次のポリシーでは、インスタンス タイプが t2.microただし、起動構成の名前が qateam-。 ARN 値の指定の詳細については、以下を参照してください。 Resources. 起動構成は、 Auto Scaling グループ名が qateam-.

ステートメントの最後の部分では、起動設定を記述し、AWS アカウントの特定の Amazon EC2 リソースにアクセスするためのアクセス許可をユーザーに付与します。これにより、Amazon EC2 Auto Scaling コンソールから起動設定を作成および管理するための最小限のアクセス許可がユーザーに付与されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "autoscaling:CreateLaunchConfiguration", "Resource": "arn:aws:autoscaling:region:123456789012:launchConfiguration:*:launchConfigurationName/qateam-*", "Condition": { "StringEquals": { "autoscaling:InstanceType": "t2.micro" } } }, { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "autoscaling:LaunchConfigurationName": "qateam-*" } } }, { "Effect": "Allow", "Action": [ "autoscaling:DescribeLaunchConfigurations", "ec2:DescribeImages", "ec2:DescribeVolumes", "ec2:DescribeInstances", "ec2:DescribeInstanceAttribute", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeVpcClassicLink", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Resource": "*" }] }

このポリシーに次のような API アクションを追加して、ユーザーに追加のオプションを提供できます。

  • iam:ListInstanceProfiles: : インスタンスプロファイルを一覧表示します。

  • ec2:CreateSecurityGroup: : 新しいセキュリティグループを作成します。

  • ec2:AuthorizeSecurityGroupIngress: : インバウンドルールを追加します。

  • ec2:CreateKeyPair: : 新しいキーペアを作成します。

ユーザーに起動テンプレートの作成および使用を許可

エンドポイントポリシーの例については、「」を参照してください。テンプレートサポートの起動.

サービスリンクされた役割の作成に必要な権限

Amazon EC2 Auto Scaling には、ユーザーが初めて AWS アカウントコール Amazon EC2 Auto Scaling API アクション。サービスにリンクされたロールがまだ存在しない場合は、Amazon EC2 Auto Scaling によってアカウント内に作成されます。サービスにリンクされたロールにより、ユーザーに代わって他の APP サービスを呼び出すために必要なアクセス許可が Amazon EC2 Auto Scaling に付与されます。

この自動ロール作成を成功させるには、ユーザーには iam:CreateServiceLinkedRole アクションへのアクセス権限が必要です。

"Action": "iam:CreateServiceLinkedRole"

次に、ユーザーが Amazon EC2 Auto Scaling サービスリンク型ロール Amazon EC2 Auto Scaling.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling", "Condition": { "StringLike": { "iam:AWSServiceName":"autoscaling.amazonaws.com" } } } ] }

どのサービス連携ロールを渡すことができるかを制御します (PassRole を使用)

カスタムサフィックスの付いたサービスにリンクされたロールを Auto Scaling グループに渡すことをユーザーが必要とする場合は、必要なアクセスに応じてユーザーまたはロールにポリシーをアタッチします。ユーザーがアクセスする必要のあるサービスにリンクされたロールのみにこのポリシーを制限することをお勧めします。カスタムサフィックス付きのサービスにリンクされたロールの詳細については、「」を参照してください。のサービス連携ロール Amazon EC2 Auto Scaling.

以下の例は、別のサービスにリンクされたロールに別のキーへのアクセスを許可する場合に、カスタマー管理の CMK のセキュリティを促進するのに役立ちます。必要に応じて、開発チームに 1 つの CMK、QA チームにもう 1 つの CMK、そして財務チームにもう 1 つの CMK を設定できます。まず、必要なCMKにアクセスできるサービスリンクロールを作成します。たとえば、 AWSServiceRoleForAutoScaling_devteamkeyaccess。 次に、そのサービスにリンクしたロールを Auto Scaling グループに所属し、ポリシーを IAM 表示されます。

この例のポリシーでは、ユーザーは AWSServiceRoleForAutoScaling_devteamkeyaccess 作成するために Auto Scaling 名前が次の文字で始まるグループ: devteam-。 別のサービスリンクロールを指定しようとすると、エラーが発生します。サービスリンクされた役割を指定しない場合、デフォルトは 自動スケーリングのためのAWSServiceRole 役割が代わりに使用されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region:123456789012:autoScalingGroup:*:autoScalingGroupName/devteam-*" ] } } } ] }

APIに必要な権限

から次のアクションを呼び出す場合 Amazon EC2 Auto Scaling API、ユーザーは、 Amazon EC2 および IAM 特定のアクションを実行します。次のアクションを Action 要素 IAM 方針声明。

起動設定を使用して Auto Scaling グループを作成する

  • autoscaling:CreateAutoScalingGroup

  • iam:CreateServiceLinkedRole ( 既定のサービスリンクロールを使用していて、そのロールがまだ存在していない場合に必要)

起動テンプレートを使用して Auto Scaling グループを作成する

  • autoscaling:CreateAutoScalingGroup

  • ec2:RunInstances

  • iam:CreateServiceLinkedRole ( 既定のサービスリンクロールを使用していて、そのロールがまだ存在していない場合に必要)

起動テンプレートを使用する Auto Scaling グループを更新する

  • autoscaling:UpdateAutoScalingGroup

  • ec2:RunInstances

起動設定を作成する

  • autoscaling:CreateLaunchConfiguration

  • ec2:DescribeImages

  • ec2:DescribeInstances

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeKeyPairs

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSpotInstanceRequests

  • ec2:DescribeVpcClassicLink