【入門編】 VPCピアリングにおけるセキュリティグループのクロスアカウント参照とIPアドレス指定 – クラウドインフラと仮想化ネットワーク実践ガイド

VPCピアリングの「門番」を攻略せよ!セキュリティグループによるクロスアカウント制御の極意

こんにちは!インフラエンジニアとして日々クラウドの海を泳いでいるSREです。

AWSを触り始めると必ずぶつかるのが「VPC」という概念ですよね。最初は「一つの巨大な社内ネットワーク」として構築していても、規模が大きくなると「AプロジェクトとBプロジェクトでVPCを分けたい」「本番環境と開発環境は完全に分離したい」というニーズが出てきます。

そこで登場するのがVPCピアリング。二つのVPCを直接つなぐ「専用のトンネル」を作るようなものですが、ここで一番頭を悩ませるのが「セキュリティ」です。

今日は、その中でも少し高度で、かつ現場でめちゃくちゃ重宝する「セキュリティグループのクロスアカウント参照」について、郵便配達の仕組みに例えて優しく解説していきます。

—

1. VPCピアリングとセキュリティグループ、何が難しいの?

まず、VPCピアリングは「二つのVPCをまたぐトンネル」です。このトンネルを通るパケットをどう制御するか、これがインフラエンジニアの腕の見せ所です。

普通、セキュリティグループ(SG)でアクセス許可を出すとき、こんな風に書きますよね。

  • 「IPアドレス 10.0.1.0/24 からの通信を許可する」

これでも動きます。でも、もし相手のVPCでIPアドレスが変更になったり、サブネットが増えたりしたらどうでしょう?ルールを全部書き直さないといけませんよね。これでは管理が大変です。

そこで登場するのが「セキュリティグループIDによる参照」です。

—

2. 郵便配達で例える「セキュリティグループ参照」

イメージしてください。あなたは「Aさん(Webサーバー)」に手紙を届けたい「配達員(パケット)」です。

  • IP指定の場合:

「住所が 10.0.1.5 の人に届けろ」という指示。引っ越し(IP変更)をしたら、配達員はもう届けられません。

  • SG参照の場合:

「名札に『会員証(特定のセキュリティグループ)』を持っている人だけに届けろ」という指示。これなら、たとえその人が引っ越し(IPが変わる)をしても、名札さえ持っていれば正しく届けられますよね。

「IPアドレスという住所ではなく、名札という属性で制御する」。これがセキュリティグループ参照の神髄です。

—

3. クロスアカウントの壁を越える

さらに、相手が「別のアカウント」にある場合、単に名札を指定するだけではエラーになります。AWSは「他人から勝手に自分の家の門番(SG)を参照される」のを防ぐためです。

ここで必要なのが、「許可リスト(参照設定)」です。

設定の手順はたったの2ステップ

1. 受け手側(WebサーバーがいるVPC): 「〇〇アカウントの、△△というセキュリティグループからの参照を許可するよ!」と設定する。
2. 送り手側(アプリケーションサーバーがいるVPC): 「あっちのサーバーのセキュリティグループIDを指名して通信を許可する!」と設定する。

これだけで、たとえアカウントが違っても、安全かつスマートに通信を通すことができます。

—

4. 実践!CLIで設定してみよう

頭で理解したところで、実際に現場で使うコマンドの例を見てみましょう。

手順1:受け手側での許可設定

まずは、自分の家の門番に「あっちのアカウントからの訪問者は通していいよ」と伝えます。

# 受け手側のVPCで実行
# 相手のアカウントID(123456789012)からの参照を許可
aws ec2 authorize-security-group-ingress \
    --group-id sg-0123456789abcdef0 \
    --ip-permissions '[{"IpProtocol": "-1", "UserIdGroupPairs": [{"GroupId": "sg-9876543210fedcba", "UserId": "123456789012"}]}]'

手順2:送り手側での通信許可

次に、自分のサーバーから「あのSGを持っている相手になら繋いでいいよ」と設定します。

# 送り手側のVPCで実行
# 相手のセキュリティグループIDを指定するだけ!
aws ec2 authorize-security-group-ingress \
    --group-id sg-9876543210fedcba \
    --protocol tcp \
    --port 80 \
    --source-group sg-0123456789abcdef0

—

5. 現場のSREからのアドバイス

この手法、本当に便利で美しいのですが、いくつか注意点があります。

  • 依存関係に注意: 参照されている側のセキュリティグループを削除しようとすると、エラーが出て消せません。「誰かに参照されている」という事実は、AWSがしっかりと管理してくれています。
  • ピアリングの維持: もちろん、VPCピアリング自体が有効でないと通信は届きません。パケットは「ピアリングというトンネル」を通り、「セキュリティグループという門番」を通過する、という二段構えで考えてくださいね。

まとめ:なぜこれがベストプラクティスなのか?

IPアドレスをルールに書くと、ネットワーク構成が変わるたびに「穴あけ作業」が発生し、ミスも増えます。しかし、セキュリティグループIDによる参照を使えば、「関係性」を定義するだけで管理が完了します。

「住所」ではなく「人(役割)」で管理する。これこそが、クラウド時代のネットワーク設計の基本です。

最初は少し難しく感じるかもしれませんが、一度設定してしまえば、その後は環境の変化を恐れる必要がなくなります。ぜひ、次のプロジェクトで試してみてください。皆さんのインフラが、より堅牢でスマートなものになることを応援しています!

コメント

タイトルとURLをコピーしました