はじめに
AWSのEC2インスタンスなんかに付与するセキュリティグループを作成する際、「インターネットにアクセスする場合、アウトバウンド通信は0.0.0.0/0を指定します」なんて書かれていることが多いが、いつも「ふ〜ん」という感じで設定しており、よく理解していなかった。
つまり、、、
例えば何らかのパッケージのインストールをする場合、「0.0.0.0/0」を指定する必要がある。
これは結局、そのパッケージのインストール元のIPアドレスがわかっていれば、それを指定すればよい。
ただ、実際にはわからない(ことはないと思うが、いちいち指定するのは面倒くさい)ので、「0.0.0.0/0」を指定することで、全てのアドレスへのアクセスを許可している。
ここで、「なんでインバウンドで許可していないのに戻りの通信が戻ってこれるんだ?」と思っていたが、セキュリティグループはステートフルなため、インバウンドで許可したらアウトバウンドで設定する必要はないし、アウトバウンドで許可したらインバウンドで許可する必要はない。
これと対照的なのがネットワークACL。
ネットワークACLはステートレスなため、インバウンドで許可したらアウトバウンドも許可しないと通信が戻っていけないし、逆にアウトバウンドで許可したらインバウンドも許可しないと戻りの通信が戻ってこれなくなる。
おわりに
かなり初歩的なことだが理解していなかった。
理解できてスッキリ。
参考