2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

セキュリティーグループのアウトバウンドルールでVPCエンドポイント宛の通信を許可する方法

Posted at

はじめに

セキュリティーグループのアウトバウンドは設定しないことが多いですが、
セキュリティー要件が厳しいシステムだと細かく制御を求められることがあります。

そんなとき、
「VPCエンドポイント宛の通信ってどうやって指定するんだ??」、
「そもそもVPCエンドポイントにIPアドレスあったっけ??」なんてお悩みがわきませんか??

image.png

本記事はそんなお悩みをもった方に向けたものです。

また以降の図ではクライアント側はEC2としていますが、ECSやLambda(VPC内)などセキュリティーグループをアタッチできるリソースは同様の設定方法となります。

1.インターフェース型VPCエンドポイントの場合

・VPCエンドポイントのIPアドレスを指定する

まずは素直にIPアドレスを指定する方法です。
インターフェース型のVPCエンドポイントは作成時に指定したサブネット内にてENIが作成されVPCエンドポイントに割り当てられるので、ENIのプライベートIPアドレスを指定することができます。
またこのENIはVPCエンドポイントを削除しない限りは消えないため、IPアドレスが変化することもありません。
image.png

またVPCエンドポイントを複数作成する場合は、VPCエンドポイント用のサブネットを用意してサブネットのIP CIDRごと許可する、といったアプローチも考えられます。
こうすることで設定値の煩雑さを多少軽減できます。
image.png

・VPCエンドポイントのセキュリティーグループを指定する

次にVPCエンドポイントに割り当てたセキュリティーグループのIDを指定する方法です。
個別にIPアドレスを設定する必要もなく、
他のVPCエンドポイントとセキュリティーグループを共有することもできるので、
IPアドレス指定に対する熱いこだわりがなければ、この方法がおすすめです。
image.png

2.ゲートウェイ型VPCエンドポイントの場合

・マネージドプレフィックスリストを指定する

ゲートウェイ型VPCエンドポイントはENIは存在せず、宛先がグローバルIPアドレスとなります。
例として、S3で利用されているIP CIDRのリストは以下ドキュメントに記載があります。

愚直に上記でIP CIDRを調べて設定してもいいですが、
AWS側が予め各IP CIDRを設定したマネージドプレフィックスリストを用意してくれているので、ありがたく使いましょう。

セキュリティーグループの送信先としてS3のマネージドプレフィックスリストのIDを指定すれば、一括でS3で利用されているIP CIDRを許可できます。
余談ですがマネージドプレフィックスリストはリージョンごとに固定であり、今現在東京リージョンのIDはpl-61a54008です。
image.png
image.png

3-最後に

以上、セキュリティーグループのアウトバウンドルールでVPCエンドポイントを指定する方法でした。

また本記事では記載しませんでしたが、
VPCエンドポイント側のセキュリティーグループのインバウンドルールで、接続元のIPアドレスを設定するということもできます。
正直、個人的にはそこまで細かく制御する意味は薄いと思いますが、
セキュリティー要件の厳しい案件に出会った際は設定を検討してみてください。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?