翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EC2 Auto Scaling のアイデンティティベースのポリシーの例
デフォルトでは、 のまったく新しいユーザー AWS アカウント には、何もするアクセス許可がありません。IAM 管理者は、Amazon IAM EC2 Auto Scaling Word アクションを実行するためのアクセス許可を IAM ID (ユーザーやロールなど) に付与する API ポリシーを作成して割り当てる必要があります。
これらの IAM ポリシードキュメントの例を使用して JSON ポリシーを作成する方法については、Word IAMユーザーガイドのJSON タブでのポリシーの作成」を参照してください。
以下に示しているのは、アクセス許可ポリシーの例です。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/
purpose
": "testing
" } } }, { "Effect": "Allow", "Action": "autoscaling:Describe*", "Resource": "*" }] }
このサンプルポリシーは、グループが
タグを使用している場合に限り、Auto Scaling グループを作成、更新、削除する許可を付与します。purpose=testing
Describe
アクションはリソースレベルの許可をサポートしないため、条件のない別のステートメントで指定する必要があります。起動テンプレートを使用してインスタンスを起動するには、ユーザーに ec2:RunInstances
アクセス許可も必要です。詳細については、「Auto Scaling グループで Amazon EC2 起動テンプレートの使用を制御する」を参照してください。
注記
独自のカスタム IAM ポリシーを作成して、IAM ID (ユーザーまたはロール) が Amazon EC2 Auto Scaling アクションを実行するためのアクセス許可を許可または拒否できます。これらのカスタムポリシーは、指定されたアクセス許可を必要とする IAM ID にアタッチできます。次の例では、いくつかの一般的ユースケースの許可を示します。
一部の Amazon EC2 Auto Scaling API アクションでは、アクションによって作成または変更できる特定の Auto Scaling グループをポリシーに含めることができます。個々の Auto Scaling グループ ARNs を指定することで、これらのアクションのターゲットリソースを制限できます。ただし、ベストプラクティスとして、特定のタグを持つ Auto Scaling グループに対するアクションを許可 (または拒否) するタグベースのポリシーを使用することをお勧めします。
例
作成できる Auto Scaling グループのサイズを制御する
次のポリシーでは、リクエスタが最小サイズとして 1
未満または最大サイズとして 10
より大きい値を指定しない限り、タグ
を持つすべての Auto Scaling グループを作成および更新する許可が付与されます。可能な限りタグを使用して、アカウント内の Auto Scaling グループへのアクセスを制御できるようにします。environment=development
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/
environment
": "development
" }, "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize":1
}, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize":10
} } }] }
または、タグを使用して Auto Scaling グループへのアクセスを制御していない場合は、ARNs を使用して、IAM ポリシーが適用される Auto Scaling グループを識別できます。
Auto Scaling グループには、次のARNがあります。
"Resource": "arn:aws:autoscaling:
region
:account-id
:autoScalingGroup:*:autoScalingGroupName/my-asg
"
複数の ARNs をリストに囲んで指定することもできます。Resource
要素で Amazon EC2 Auto Scaling リソースのARNsを指定する方法の詳細については、「」を参照してくださいAmazon EC2 Auto Scaling のポリシーリソース。
使用できるタグキーとタグ値を制御する
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 グループを制御する
次のポリシーは、グループにタグ
が付けられている場合にのみ、Auto Scaling グループの削除を許可します。environment=development
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/
environment
": "development
" } } }] }
または、条件キーを使用して Auto Scaling グループへのアクセスを制御していない場合は、代わりに Resource
要素でリソースのARNsを指定してアクセスを制御できます。
次のポリシーは、APIが DeleteAutoScalingGroup
で始まる Auto Scaling グループに対してのみ、Word アクションを使用するアクセス許可をユーザーに付与します
。devteam-
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "arn:aws:autoscaling:
region
:account-id
:autoScalingGroup:*:autoScalingGroupName/devteam-
*" }] }
複数の ARNs をリストに囲んで指定することもできます。UUID を含めると、特定の Auto Scaling グループへのアクセスが許可されます。新しいグループの UUID は、同じ名前の削除されたグループの UUID とは異なります。
"Resource": [ "arn:aws:autoscaling:
region
:account-id
:autoScalingGroup:uuid
:autoScalingGroupName/devteam-1
", "arn:aws:autoscaling:region
:account-id
:autoScalingGroup:uuid
:autoScalingGroupName/devteam-2
", "arn:aws:autoscaling:region
:account-id
:autoScalingGroup:uuid
:autoScalingGroupName/devteam-3
" ]
削除できるスケーリングポリシーを制御する
次のポリシーでは、DeletePolicy
アクションを使用してスケーリングポリシーを削除する許可が付与されます。ただし、処理対象の Auto Scaling グループに
タグがある場合、そのアクションを拒否します。可能な限りタグを使用して、アカウント内の 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 グループにタグ
が付けられている場合にのみ、インスタンスの更新を開始、ロールバック、キャンセルするアクセス許可を付与します。environment=testing
Describe
アクションはリソースレベルの許可をサポートしないため、条件のない別のステートメントで指定する必要があります。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:StartInstanceRefresh", "autoscaling:CancelInstanceRefresh", "autoscaling:RollbackInstanceRefresh" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/
environment
": "testing
" } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeInstanceRefreshes", "Resource": "*" }] }
StartInstanceRefresh
呼び出しで希望する設定を指定するには、次のような関連するアクセス許可が必要になる場合があります。
-
ec2:RunInstances – 起動テンプレートを使用して EC2 インスタンスを起動するには、ユーザーは IAM ポリシーで アクセス
ec2:RunInstances
許可を持っている必要があります。詳細については、「Auto Scaling グループで Amazon EC2 起動テンプレートの使用を制御する」を参照してください。 -
ec2:CreateTags – 作成時にEC2インスタンスとボリュームにタグを追加する起動テンプレートから Word インスタンスを起動するには、ユーザーは IAM ポリシーで アクセス
ec2:CreateTags
許可を持っている必要があります。詳細については、「インスタンスおよびボリュームにタグ付けするために必要なアクセス許可」を参照してください。 -
iam:PassRole – インスタンスプロファイル (EC2 ロールのコンテナ) を含む起動テンプレートから IAM インスタンスを起動するには、ユーザーは IAM ポリシーで アクセス
iam:PassRole
許可も持っている必要があります。詳細と IAM ポリシーの例については、「」を参照してくださいAmazon IAM インスタンスで実行されるアプリケーションの EC2 ロール。 -
ssm:GetParameters – AWS Systems Manager パラメータを使用する起動テンプレートから EC2 インスタンスを起動するには、ユーザーは IAM ポリシーで アクセス
ssm:GetParameters
許可も持っている必要があります。詳細については、「起動テンプレートAMIIDsで の代わりに AWS Systems Manager パラメータを使用する」を参照してください。
サービスにリンクされたロールの作成
Amazon EC2 Auto Scaling では、 のユーザーが Amazon EC2 Auto Scaling API アクションを初めて AWS アカウント 呼び出すときに、サービスにリンクされたロールを作成するためのアクセス許可が必要です。サービスにリンクされたロールがまだ存在しない場合、Amazon EC2 Auto Scaling はそれをアカウントに作成します。サービスにリンクされたロールは、Amazon EC2 Auto Scaling が AWS のサービス ユーザーに代わって他の を呼び出すことができるように、アクセス許可を付与します。
この自動ロール作成を成功させるには、ユーザーには 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 グループを作成または更新し、リクエストでカスタムサフィックスサービスにリンクされたロールを指定するユーザーは、iam:PassRole
許可が必要です。
異なるサービスにリンクされたロールに異なるキーへのアクセスを許可する場合は、 アクセスiam:PassRole
許可を使用して AWS KMS カスタマーマネージドキーのセキュリティを保護できます。組織の必要に応じて、開発チームに 1 つの キー、QA チームにもう 1 つの キー、そして財務チームにもう 1 つの キー を持つことができます。まず、AWSServiceRoleForAutoScaling_devteamkeyaccess という名前のサービスにリンクされたロールなど、必要なキーにアクセスできるサービスにリンクされたロールを作成します。次に、ユーザーやロールなどの IAM ID にポリシーをアタッチします。
次のポリシーは、名前が
で始まる Auto Scaling グループに devteam-
AWSServiceRoleForAutoScaling_devteamkeyaccess
ロールを渡すための許可を付与します。Auto Scaling グループを作成する IAM ID が別のサービスにリンクされたロールを指定しようとすると、エラーが発生します。サービスにリンクされたロールを指定しない場合、代わりにデフォルトの AWSServiceRoleForAutoScaling ロールが使用されます。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
account-id
:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess
", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region
:account-id
:autoScalingGroup:*:autoScalingGroupName/devteam-
*" ] } } }] }
カスタムサフィックス付きのサービスにリンクされたロールの詳細については、「Amazon EC2 Auto Scaling のサービスにリンクされたロール」を参照してください。