セキュリティグループの優先順について
どうもこんにちは!ねこふーです🐈
AWSのセキュリティグループのについてふとこんな疑問をもったことはないでしょうか?
ポートとプロトコルが一致したときはどちらのIP優先されるのだろうか?と
HTTPS 443 0.0.0.0/0
HTTPS 443 1.1.1.1/32
0.0.0.0/0があるから全てのアクセスを許可しているの?
1.1.1.1/32があるから1.1.1.1/32しかアクセスできない?と
結果だけ先に言うとセキュリティグループは優先順位などなく、
記載された全てのルールが許可されます。
公式ページでも記載されています。
トラフィックを許可するかどうかを決める前に、すべてのルールを評価します
当たり前ですよね
優先順位なんてあったら複数IPの許可設定とかできないですからね
記事を書いているときにいや、優先順位なんてないじゃんって気がつきました
頭がボケたのか今更になってそんな疑問がでてきたので念のためほんとに優先順位がないのか試しました
準備
EC2を立ててアパッチ入れて外部接続で確認できるサーバを作成
セキュリティグループ作成
セキュリティグループの設定は以下でアクセスしてみます
HTTP通信をフルオープンしている状態
バリつながりますね、当然ですフルオープンですから
では続いてフルオープンになっているセキュリティグループに対して、IP制限を加えました
適当なIPですが優先順位があるならレンジが狭い11.111〜のIPからしか入れないためアクセス拒否されるはず
バリつながる
はい、優先順位なんてないですね
ルールに追加すれば追加した分疎通許可されますね
一応フルオープンのIPを外したら
クルクルになって接続できませんと怒られました
結果優先順位なんてないと証明できましたね。(できているのだろうか…)
なんやかんやでセキュリティグループはAZ内で稼働しているサービスにはほぼ必須でつく機能です。
適当でいいやとフルオープンで開けていたりすると不正アクセスの原因につながります。
AWSのサポートプランがBasicでもTrusted Advisorというサービスでセキュリティグループに無造作に開かれたポートがないか確認できます。
お使いのアカウントで変な設定がないか一度確認してみてはいかがでしょうか?
https://console.aws.amazon.com/trustedadvisor/home?region=ap-northeast-1#/category/security
以上になります。最後までありがとうございました。