cloudpack佐藤裕行です。

Piculet

AWSのセキュリティグループの設定をRubyのDSLで管理できるCLIツール。

作成者サイト
http://so-wh.at/entry/20131105/p1

Github
https://github.com/winebarrel/piculet

インストール

インストール

gem install piculet --no-ri --no-rdoc

確認

➜  piculet  piculet -v
piculet 0.2.3

➜  piculet  piculet
Usage: piculet [options]
    -p, --profile PROFILE_NAME
    -k, --access-key ACCESS_KEY
    -s, --secret-key SECRET_KEY
    -r, --region REGION
    -a, --apply
    -f, --file FILE
    -n, --names SG_LIST
        --ec2s VPC_IDS
        --dry-run
    -e, --export
    -o, --output FILE
        --split
        --no-color
        --debug

security credentialsを記載

➜  vim ~/.aws/credentials
[default]
aws_access_key_id=AKIxxxxxxxxxxxxxxxx
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxx

セキュリティグループを取得

piculet -e -o Groupfile -r ap-northeast-1
➜ cat Groupfile
ec2 "vpc-[vpc-id]" do
  security_group "default" do
    description "default VPC security group"

    ingress do
      permission :any do
        groups(
          "default"
        )
      end
    end

    egress do
      permission :any do
        ip_ranges(
          "0.0.0.0/0"
        )
      end
    end
  end
end

セキュリティグループが多い場合はsplitオプションを使用すると、
ファイルを分けてくれるため管理がし易い。

➜  piculet  piculet -e -o Groupfile -r ap-northeast-1 --split
Export SecurityGroup
  write `./vpc-xxxxxxx.group`
  write `./vpc-xxxxxxx.group`
  write `Groupfile`

セキュリティグループの適用

他のVPCへの移行やセキュリティグループの編集を行う場合の手順

移行先のcredentials追加

➜  vim ~/.aws/credentials
[hoge]
aws_access_key_id=AKIxxxxxxxxxxxxxxxx
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxx

Groupfile編集

require 'vpc-[移行先もしくは編集先のVPC-ID].group'

テスト

piculet -a -r ap-northeast-1  -p hoge --dry-run

適用

piculet -a -r ap-northeast-1  -p hoge

etc

お手軽なセキュリティグループの管理と移行が可能になった!

元記事はこちらです。
piculetで管理するAWSセキュリティグループ