EC2セキュリティグループのSourceにセキュリティグループを指定した場合のアクセス確認 - mechamogera/MyTips GitHub Wiki
確認結果
- 前提:EC2セキュリティグループのSourceにはセキュリティグループが指定でき、その場合Sourceに指定したセキュリティグループに所属するEC2からのアクセスが許可される。
- NonVPC環境でEC2セキュリティグループのSourceにセキュリティグループを指定した場合、指定したEC2へのEIP/PublicIPでのアクセスは許可されない(VPC環境の動作は未確認)
- どうもAWSの仕様みたい(AWS Developer Forums: EC2 Security group rule not working ...)
- PublicDNSはEC2内からアクセスすると実体はPrivateIP、EC2外からアクセスするとPublicIPとなるようである
確認内容
確認環境
-
NonVPC
-
EC2サーバー
-
Amazon Linux 64bit
-
SecurityGroup : sg1
-
インスタンス起動後の環境構築手順
$ sudo yum install httod -y
$ sudo /etc/init.d/httpd start
$ echo "aaa" | sudo tee /var/www/html/index.html
- EC2クライアント
- Amazon Linux 64bit
- SecurityGroup : sg2
確認手順
サーバーにEIPを付与しSourceを0.0.0.0/0にした場合の確認
- EC2サーバーにEIPを割り当てる
- sg1セキュリティグループを以下にする
- TCP Port:80 Source:0.0.0.0/0
- curlでEC2クライアントからアクセスしてみる
- ElasticIP:可
- PublicDNS:可
- PrivateDNS:可
- PrivateIP:可
サーバーにEIPを付与しSourceをセキュリティグループにした場合の確認
- EC2サーバーにEIPを割り当てる
- sg1セキュリティグループを以下にする
- TCP Port:80 Source:sg-XXX(sg2のID)
- curlでEC2クライアントからアクセスしてみる
- ElasticIP:不可(curl: (7) couldn't connect to hostに)
- PublicDNS:可
- PrivateDNS:可
- PrivateIP:可
Sourceを0.0.0.0/0にした場合の確認
- sg1セキュリティグループを以下にする
- TCP Port:80 Source:0.0.0.0/0
- curlでEC2クライアントからアクセスしてみる
- PublicIP:可
- PublicDNS:可
- PrivateDNS:可
- PrivateIP:可
Sourceをセキュリティグループにした場合の確認
- sg1セキュリティグループを以下にする
- TCP Port:80 Source:sg-XXX(sg2のID)
- curlでEC2クライアントからアクセスしてみる
- PublicIP:不可(curl: (7) couldn't connect to hostに)
- PublicDNS:可
- PrivateDNS:可
- PrivateIP:可
SourceをPublicIPにした場合のPublicIPでのアクセス確認
- sg1セキュリティグループを以下にする
- TCP Port:80 Source:sg2のPublicIP/32
- curlでEC2クライアントからPublicIPでアクセスしてみる:可
SourceをPrivateIPにした場合のPublicIPでのアクセス確認
- sg1セキュリティグループを以下にする
- TCP Port:80 Source:sg2のPrivateIP/32
- curlでEC2クライアントからPublicIPでアクセスしてみる:不可(curl: (7) couldn't connect to hostに)
SourceをEIPにした場合のPublicIPでのアクセス確認
- EC2クライアントにEIPを割り当てる
- sg1セキュリティグループを以下にする
- TCP Port:80 Source:sg2のEIP/32
- curlでEC2クライアントからPublicIPでアクセスしてみる:可