VPC Peering経由でのSecurity Group相互参照(クロスアカウントもOK)がサポートされたので試してみた

2016.03.02

西澤です。遂にVPC Perring越しでのSecurity Group相互参照がサポートされたようです。しかも、クロスアカウント(異なるAWSアカウント同士)も利用可能とのこと。これは本当に嬉しいアップデートですね。早速試してみることにしました。

クロスアカウントでのVPC Peering構成

下記のような環境を準備して試してみることにしました。

CrossAccountSecurityGroup

やることは下記記事とほとんど変わりありません。

事前準備

CIDRに重複が無いことにだけ注意をすれば、適当なVPC、サブネットでも問題ありません。今回は、Peering要求のところだけ、画像付きで手順をご紹介しておきます。

Account AからVPC Peeringを要求

Account AのVPCから、Account BのVPCに対して、VPC Peeringをリクエストします。

vpc_peering1

Account BにてVPC Peeringを承諾

しばらく待つと、Account B側でリクエストされたVPC Peeringが見えるようになるので、Acceptします。

vpc_peering3

Account Aでルーティング追加

Account AのVPCからPeeringしたAccout BのVPCへのルーティングを追加しておきましょう。

vpc_peering4

Account Bでルーティング追加

Account Bのルーティングも同様です。

vpc_peering5

クロスアカウントでのSecurity Group設定

いよいよ今回の本題です。

VPC PeeringしていないSecurity Groupの参照を試してみる

まずは、試しにVPC PeeringをしていないデタラメなSecurity Groupを指定して追加できるか試してみます。

vpc_peering6

予想通り、というか、これまで通り、エラーとなり追加ができませんでした。

VPC Peeringされている別AWSアカウントのSecurity Groupを参照してみる

今度はVPC Peeringで接続されている別AWSアカウントのSecurity Groupを指定してみます。上記と同様に、送信元欄で"カスタムIP"を選んでSecurity Group IDを入力したのですが、すんなり追加できました。

vpc_peering7

マスクしている為、わかりづらいのですが、追加した行の送信元欄は、別アカウントのSecurity Groupであることがわかるように、AWS Account ID/Security Group IDの形式で表示されました。これはとても親切ですね。尚、設定変更時にはAWS Account IDは特に指定せず、Security Group IDを指定のみで設定できました。

Security Groupは、EC2だけでなく、VPCにも設定画面がありますよね(EC2-Classicとか過去の話は割愛)。一応、こちらも確認してみます。

vpc_peering8

VPC側から見た画面は、EC2画面ほどは親切な表示にはなっていませんでした。ただ、追加・変更はVPC側からでももちろん問題ありません。

疎通確認

一応、このSecurity Groupの相互参照を使って通信できることを確認しておきましょう。EC2−AからEC2-Bへの80ポートへの通信が可能であることを確認します。Security Groupをそれぞれに割り当てた上で、EC2-BでWEBサーバを起動しておき、EC2-Aから接続してみます。

[ec2-user@ip-10-222-0-49 ~]$ curl 10.111.0.245
This is ip-10-111-0-245!
[ec2-user@ip-10-222-0-49 ~]$ curl -I 10.111.0.245
HTTP/1.1 200 OK
Date: Wed, 02 Mar 2016 02:28:08 GMT
Server: Apache/2.2.31 (Amazon)
Last-Modified: Wed, 02 Mar 2016 02:26:55 GMT
ETag: "406ac-19-52d079d9c9e13"
Accept-Ranges: bytes
Content-Length: 25
Connection: close
Content-Type: text/html; charset=UTF-8

はい。問題なさそうですね。

まとめ

Security Groupの大きな特徴である相互参照機能は、ELB、EC2、RDS等のAWSリソースの追加・変更にも柔軟に追従することができる非常に便利な機能です。これをVPC Peering経由でも活用できるというのは本当に素晴らしいです。そもそもVPC Peeringしなければいけない理由も、AWSアカウントまたはVPCを分割せざるを得ないセキュリティ要件である場合が多いので、活躍する場面はとても多そうですね。積極的に利用して行こうと思います。