本記事は「作成済みEC2インスタンスに割り当てているセキュリティグループ」をAWS SDK for Python(Boto3)で変更する方法のメモです。
変更するメソッド
メソッドは EC2 : modify_instance_attribute() を使用します:
ec2_client = boto3.client('ec2', 'region')
ec2_client.modify_instance_attribute(
InstanceId = 'string',
Groups = [
'string',
]
)
設定例:
ec2_client = boto3.client('ec2', 'ap-northeast-1')
ec2_client.modify_instance_attribute(
InstanceId = 'i-0da123456',
Groups = [
'sg-35b28551',
'sg-35b28552'
]
)
関連情報の収集
変更する場合、変更前にインスタンスに設定されているグループIDのリストが必要になることも多いかと思います。その場合は EC2 : describe_instance_attribute()
メソッドで取得します。
ec2_client = boto3.client('ec2', 'region')
response = ec2_client.describe_instance_attribute(
Attribute = 'groupSet',
InstanceId = 'string'
)
実行例:
ec2_client = boto3.client('ec2', 'ap-northeast-1')
response = ec2_client.describe_instance_attribute(
Attribute = 'groupSet',
InstanceId = 'i-0da123456'
)
for group in response['Groups']:
print(group['GroupId'])
sg-35b28550
sg-35b28551
このグループIDのリストを追加変更して modify_instance_attribute()
のグループリストに設定する流れとなります。