雑記帳
2011-08-29 (Mon) [長年日記]
■ [AWS][Ruby] セキュリティグループに登録されているIPアドレスを置換する
動的なIPアドレスを使っていたり、引っ越しなどがあったりで、セキュリティグループに登録されているIPアドレスが変更になることがある。セキュリティグループがたくさんあったり、登録している設定が多かったりすると、すべて手作業でやるのは面倒かつミスの元なので、例によってスクリプトを作ってみた。
#!/usr/bin/ruby1.9.1
require 'aws-sdk'
AWS.config(YAML.load(File.read('config.yml'))
src = AWS::EC2.new(:ec2_endpoint => 'ec2.ap-northeast-1.amazonaws.com')
src_ip = 'x.x.x.x/32'
dst_ip = 'y.y.y.y/32'
src.security_groups.each do |src_sg|
puts "#{src_sg.id}, #{src_sg.name}"
src_sg.ip_permissions.each do |p|
if p.ip_ranges.include? src_ip
begin
src_sg.authorize_ingress(p.protocol, p.port_range, dst_ip)
src_sg.revoke_ingress(p.protocol, p.port_range, src_ip)
rescue => e
puts e.message
end
end
end
end
作りは単純で、既存のセキュリティグループすべてから、置換もととなるIPアドレス(src_ip)があるかどうかチェックして、もしあれば、新しいIPアドレス(dst_ip)で登録をして、もとのを削除するだけ。
こういう単純作業を、スクリプトを作って簡単にできるのが嬉しい。
[ツッコミを入れる]
