LoginSignup
4
4

More than 5 years have passed since last update.

awspecを活用して、SecurityGroup修正業務を堅実に実施する

Last updated at Posted at 2015-08-24

深淵なる理由によりSecurityGroupの修正業務が発生したので、awspecを利用して堅実に実施してみます。

1. 修正前のSecurityGroupの状態をawspecでspecファイル化

まずawspecの環境を作ります。awspecで利用するIAMのポリシーは必ずリードオンリー権限のみにしてください。

$ mkdir awspec
$ cd awspec/
$ awspec init
 + spec/
 + spec/spec_helper.rb
 + Rakefile
 + spec/.gitignore
 + .rspec
$ cat <<EOF > spec/secrets.yml
region: ap-northeast-1
aws_access_key_id: XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOF

SecurityGroupの状態をawspec generate security_groupコマンドを使ってspecファイル化します。

$ echo "require 'spec_helper'" > spec/security_group_current_spec.rb
$ awspec generate security_group my-vpc >> spec/security_group_current_spec.rb

これで現状のSecurityGroupのspecファイルが生成されました。
実際にrake specを実行してみます。

$ rake spec

...

Finished in 8.77 seconds (files took 2.66 seconds to load)
217 examples, 0 failures

グリーンになることを確認しました。

2. 今回修正するIPアドレスをspecに追記

今回は 203.0.113.1からのHTTPアクセスを許可します。

describe security_group('sg-12a345b6') do
  it { should exist }
  its(:group_id) { should eq 'sg-12a345b6' }
  its(:group_name) { should eq 'my-security-group-name' }

...

  its(:inbound) { should be_opened(80).protocol('tcp').for('203.0.113.1/32') } # 深淵なる理由により80ポートを開放
end

コメントが書けるのが意外に便利だったりします。

rake specを実行してレッドになることを確認します。

3. マネジメントコンソールなどでSecurityGroupの修正を実施

手動。。。

4. チェック

修正後、rake specを実行してグリーンになることを確認します。

終わり!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4