特定のEC2のインスタンスタイプを変更できる、IAMポリシーに設定するアクションを教えてください。
2025.01.17
困っていた内容
特定のEC2のインスタンスタイプを変更できる、IAMポリシーに設定するアクションを教えてください。
どう対応すればいいの?
インスタンスタイプを変更するには、主に以下の2つのアクションを許可する必要があります。
- ec2:DescribeInstanceTypesアクション
- ec2:ModifyInstanceAttributeアクション(条件として"ec2:Attribute": "InstanceType"を設定)
また、ec2:ModifyInstanceAttributeアクションのResourceで、変更対象のEC2インスタンスのARNを指定する必要があります。
ポリシー例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:DescribeInstanceTypes",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ec2:ModifyInstanceAttribute",
"Resource": "arn:aws:ec2:ap-northeast-1:アカウントID:instance/インスタンスID", //アカウントIDとインスタンスIDを自身の環境のIDに置き換える
"Condition": {
"StringEquals": {
"ec2:Attribute": "InstanceType"
}
}
}
]
}
また、マネジメントコンソール上からインスタンスタイプの変更を実施する際は、EC2が停止状態であるといった注意点があるため、上記のポリシーのみでは十分な操作ができないことが考えられます。「ec2:StopInstances」や「ec2:StartInstances」、「ec2:DescribeInstances」を含むことで実現できると考えられます。。
-
マネジメントコンソールの場合
EC2ダッシュボードから該当インスタンスを選択し、[アクション] > [インスタンスの設定] > [インスタンスタイプの変更] を選択します。
-
CLIの場合の変更方法
CLI例
aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxx --instance-type インスタンスタイプ