Auto Scalingの起動設定で指定できるインスタンスタイプをSCPで制限する
こんにちは。サービスグループの武田です。
Auto Scalingグループを使用する際、起動するEC2インスタンスの設定テンプレートとして、「起動設定」と「起動テンプレート」があります。今回は「起動設定」を対象として、作成する際に指定されたインスタンスタイプが含まれていた場合、拒否するようなSCPを設定してみました。
今回作成したポリシーは次のようなものです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "autoscaling:CreateLaunchConfiguration", "Resource": "*", "Condition": { "StringLike": { "autoscaling:InstanceType": "t2.*" } } } ] }
T2ファミリーをインスタンスタイプとして指定する「起動設定」の作成を拒否します。「起動設定」の条件キーにはautoscaling:InstanceType
が使用できるため、これで指定しています。その他の条件キーなどについてはドキュメントを参照してください。
このポリシーを検証用アカウントにアタッチしてコマンドを実行してみます。
$ aws autoscaling create-launch-configuration --launch-configuration-name test1 --image-id ami-09ebacdc178ae23b7 --instance-type t3.micro $ aws autoscaling create-launch-configuration --launch-configuration-name test2 --image-id ami-09ebacdc178ae23b7 --instance-type t2.micro An error occurred (AccessDenied) when calling the CreateLaunchConfiguration operation: User: arn:aws:sts::123456789012:assumed-role/test-role/botocore-session-1630308446 is not authorized to perform: autoscaling:CreateLaunchConfiguration on resource: arn:aws:autoscaling:ap-northeast-1:123456789012:launchConfiguration:*:launchConfigurationName/test2 with an explicit deny
t3.micro
を指定した「起動設定」は作成に成功していますが、t2.micro
を指定した「起動設定」は失敗しました。ポリシーが効いていますね。
まとめ
Auto Scalingで起動するインスタンスのインスタンスタイプをSCPで制限してみました。冒頭で述べたようにAuto Scalingグループは「起動設定」と「起動テンプレート」が指定できます。今回検証したのは「起動設定」のみですので、その点は注意してください。