Amazon Web Services ブログ
AWS Transit Gateway でのセキュリティグループ参照の導入
2024/9/25 より、AWS Transit Gateway にてセキュリティグループ参照のサポートを開始しました。この新機能により、同一 Amazon Web Services (AWS) リージョン内の Transit Gateway に接続した他の Amazon Virtual Private Cloud (Amazon VPC) で定義された、セキュリティグループを参照するインバウンドセキュリティルールを作成できるようになりました。Transit Gateway を介したアウトバウンドセキュリティルールの参照は、現時点ではサポートされていません。
Transit Gateway は、サードパーティの仮想アプライアンスをプロビジョニングすることなく、複数の Amazon VPC とオンプレミスネットワークを接続するハブアンドスポークネットワークの構築を支援するネットワークトランジットハブです。これにより、アーキテクチャの合理化や制御、セキュリティの向上が可能です。Transit Gateway は、高可用性で拡張性が高く、シームレスに設定でき、リージョン内の Transit Gateway ごとに数千の VPC アタッチメントをサポートできるフルマネージド型サービスです。詳細については、クォータに関するドキュメントを参照してください。
Transit Gateway の新しいセキュリティグループ参照機能により、セキュリティグループの管理が効率化されます。これを実現するために、IPv6 や IPv4 アドレス、CIDR の代わりにセキュリティグループ参照を使用してルールを作成します。これにより、特にセキュリティグループ参照に大きく依存している場合、VPC ピアリングから Transit Gateway への移行が容易になります。また、この機能は何千もの VPC にわたる大規模なネットワーキングをサポートし、効率化されたセキュリティグループ管理を通じてセキュリティ体制の向上を提供します。
本稿では、Transit Gateway 間でのセキュリティグループ参照の有効化 / 無効化する方法や一般的なシナリオでの使用方法を示します。
開始方法: Transit Gateway を通じてセキュリティグループ参照を使用する方法
AWS マネジメントコンソールや AWS SDK、AWS API を使用して、新しい Transit Gateway または Transit Gateway VPC アタッチメントを作成する際、あるいは既存のものを編集する際に、セキュリティグループ参照サポートオプションを有効または無効にすることができます。
Transit Gateway レベルでのセキュリティグループ参照サポート設定と、Transit Gateway VPC アタッチメントレベルでの設定の違いを理解することが重要です。これにより、ネットワークアーキテクチャのセキュリティ要件に合わせたアクセス制御セットを選択することができます。
この機能を使用するには、Transit Gateway と Transit Gateway VPC アタッチメントの両方でセキュリティグループ参照サポートを有効にする必要があります。
図1. Transit Gateway を介して接続された 3 つの VPC
図1 に示されたアーキテクチャを考えてみましょう。
- Transit Gateway とその 3 つのアタッチメント (VPC 1、VPC 2、VPC 3) でセキュリティグループ参照が有効になっている場合、Transit Gateway を介して 3 つの VPC でセキュリティグループ参照が可能になります。
- Transit Gateway と VPC 1 および VPC 2 のアタッチメントでセキュリティグループ参照が有効になっている場合 (VPC 3では無効)、Transit Gateway を介して VPC 1 と VPC 2 間でセキュリティグループ参照が可能ですが、VPC 3 とは不可能です。
- Transit Gateway でセキュリティグループ参照が無効になっている場合、個々の Transit Gateway VPC アタッチメントでオプションが有効になっているかどうかに関係なく、Transit Gateway を介したセキュリティグループ参照はできません。
1. Transit Gateway レベルのセキュリティグループ参照サポート
Transit Gateway レベルのセキュリティグループ参照サポートは、デフォルトで全ての Transit Gateway で無効になっています。 この機能の導入以前に作成された Transit Gateway も含まれます。
この機能を Transit Gateway レベルで有効化するには、コンソール上のセキュリティグループ参照サポートオプションをチェックします (図 2)。本稿執筆時点では、Transit Gateway を介して VPC をAWS Local Zones または AWS Outposts に拡張する場合、この機能はサポートされていません。
セキュリティグループ参照に関する詳細は、セキュリティグループ参照ドキュメントを参照してください。
図2. コンソール内の Transit Gateway レベルでのセキュリティグループ参照サポートオプション
この機能を無効化するには、セキュリティグループ参照サポートオプションのチェックを外してください。
無効化すると、Transit Gateway 全体でセキュリティグループ参照機能が動作しなくなります。 その結果、参照されたセキュリティグループのみに依存するインスタンス間のトラフィックは、Transit Gateway のセキュリティグループ参照に依存しないIPv4 または IPv6 アドレス / CIDR を使用する別のルールに一致しない限り、ドロップされます。
この機能は、API または CLI で SecurityGroupReferencingSupport
オプションを使用して有効または無効にすることもできます。次に例をいくつか示します。
新しい Transit Gateway (MyTransitGateway
) で有効化:
aws ec2 create-transit-gateway --description MyTransitGateway --options SecurityGroupReferencingSupport=enable
既存の Transit Gateway (Transit Gateway ID tgw-1234abcd
) で有効化:
aws ec2 modify-transit-gateway --transit-gateway-id tgw-1234abcd --options SecurityGroupReferencingSupport=enable
既存の Transit Gateway (Transit Gateway ID tgw-1234abcd
) で無効化:
aws ec2 modify-transit-gateway --transit-gateway-id tgw-1234abcd --options SecurityGroupReferencingSupport=disable
Transit Gateway レベルの設定を変更しても、個々の Transit Gateway アタッチメントの設定には影響しません。各アタッチメントは、この機能に対して個別の設定を保持しています。
2. Transit Gateway VPC アタッチメントレベルのセキュリティグループ参照サポート
Transit Gateway VPC アタッチメントレベルのセキュリティグループ参照サポートは、この機能の導入以前に作成されたものも含み、デフォルトで全ての Transit Gateway VPC アタッチメントで有効になっています。
コンソールでこのオプションをコントロールするには、セキュリティグループ参照サポートオプションを見つけてください (図3)。この機能を有効化するにはチェックを入れ、無効化する場合はチェックを外します。
図3. コンソール内の Transit Gateway VPC アタッチメントレベルでのセキュリティグループ参照サポートオプション
VPC アタッチメントレベルでのセキュリティグループ参照サポート設定の変更は、Transit Gateway レベルの設定とは独立して動作します。ただし、この機能が正しく動作するためには、Transit Gateway と個々の VPC アタッチメントの両方で有効にする必要があります。
この二重構成アプローチにより、管理者は Transit Gateway レベルでセキュリティグループ参照機能を有効にしながら、特定の VPC アタッチメントに対してこの機能を無効化またはオプトアウトすることができるようなきめ細かな制御が可能になります。
このオプションは、API や CLI を用いても有効化あるいは無効化できます。以下の例では、セキュリティグループの参照が有効化された新しい Transit Gateway VPC アタッチメントを作成します:
aws ec2 create-transit-gateway-vpc-attachment --transit-gateway-id tgw-0262a0e521EXAMPLE
--vpc-id vpc-07e8ffd50f49335df
--subnet-id subnet-0752213d59EXAMPLE
--options SecurityGroupReferencingSupport=enable
API/CLI コールで SecurityGroupReferencingSupport
を定義しなかった場合、デフォルト設定は有効になっています。
以下の例では、Transit Gateway レベルの設定が異なる場合でも、Transit Gateway VPC アタッチメント ID tgw-attach-09fbd47ddf
に対してこの機能を無効にしています:
aws ec2 modify-transit-gateway-vpc-attachment --transit-gateway-attachment-id tgw-attach-09fbd47ddf
--options SecurityGroupReferencingSupport=disable
VPC アタッチメントレベルでセキュリティグループ参照を無効化すると、新しいインバウンドセキュリティグループの参照を設定できなくなります。以前まで参照されたルールで許可されていたインスタンス間のトラフィックは、この機能のみに依存していた場合、ドロップされます。
セキュリティグループ参照が有効化された VPC アタッチメントを削除する際、セキュリティグループの参照が無効になります。この操作を行う前に、describe-security-group-references と describe-stale-security-groups の API または CLI コールをお勧めします。
最後に、別のセキュリティグループで参照されているセキュリティグループを削除すると、セキュリティグループ参照を使用しているルールが無効になります。
セキュリティグループ参照のユースケース
以下の一般的な例は、あるリージョン内の Transit Gateway に接続された複数の VPC にまたがるリソースへの厳密なアクセス制御を行う際に、セキュリティグループ参照がどのように役立つかを示しています。
1. Transit Gateway で接続された異なる VPC 間に展開された異なるアプリケーション層間のリソース共有
以下のアーキテクチャ (図4) は、3 つのVPC (VPC 1、VPC 2、VPC 3) にまたがるウェブ、アプリケーション、データベースの各層で構成されており、Transit Gateway によって VPC 同士の相互接続が可能となっています。目的は、VPC 1 のウェブ層インスタンスが VPC 2 のアプリケーション層インスタンスにアクセスできるようにすることです。また、VPC 2 のアプリケーション層インスタンスは、VPC 3 のデータベース層インスタンスへのアクセスが必要です。
セキュリティグループは VPC の IP アドレスファミリー (IPv4 または IPv6) とは独立しているため、デュアルスタック (IPv4 または IPv6) VPC や IPv6 専用サブネットにまたがるインスタンス間のトラフィックを許可できます。したがって、ウェブ、アプリケーション、データベースインスタンスは、IPv4 アドレス、IPv6 アドレス、またはその両方の組み合わせを使用することができます。
図4. Transit Gateway を介してウェブ層、アプリケーション層、データベース層が通信している
ウェブ層インスタンスがアプリケーション層インスタンスにポート 443 (HTTPS) でアクセスすることを許可するために、VPC 2 のアプリケーション層のセキュリティグループのインバウンドルールで、VPC 1 で定義されたウェブ層のセキュリティグループを参照できます:
aws ec2 authorize-security-group-ingress —group-name SG-App-Tier —protocol tcp —port 443 —source-group SG-Web-Tier —groupowner vpc1-web-tier-owner
同様に、アプリケーション層インスタンスがデータベース層インスタンスにポート 3306 でアクセスすることを許可するために、VPC 3 のデータベース層のセキュリティグループのインバウンドルールで、VPC 2 で定義されたアプリケーション層のセキュリティグループを参照できます:
aws ec2 authorize-security-group-ingress —group-name SG-DB-Tier —protocol tcp —port 3306 —source-group SG-App-Tier —groupowner vpc2-app-tier-owner
2. 集中型共有サービス VPC への安全なアクセスを強化および効率化する
ファイアウォールを使用せず、セキュリティグループ管理の複雑さを心配することなく、共有サービス VPC に対するセキュリティアクセスを特定のアプリケーションのみに強化したい場合があります。
以下のアーキテクチャ (図5) では、VPC 1 内の複数のアプリケーション層インスタンスが、共有サービス VPC の AWS Directory Service にアクセスする必要があります。2 つの VPC は、Transit Gateway を介して接続しています。
VPC 1 のアプリケーション層インスタンスがディレクトリにアクセスできるようにするため、共有サービス VPC のディレクトリサービス層のセキュリティグループのインバウンドルールに、VPC 1 のアプリケーション層のセキュリティグループを追加できます。これにより、VPC 1 のインスタンスはセキュリティグループ参照を通して Directory Service と通信できるようになります。
図5. Transit Gateway を介して Directory Service に接続されたアプリケーション層インスタンス
検査用VPC がある場合、AWS Gateway Load Balancer やAWS Network Firewall を介した Transit Gateway によるセキュリティグループ参照は機能しません。
3. 共有 VPC モデルにおけるリソース共有
共有 VPC モデル (前述のユースケースで説明した共有サービス VPC とは異なる) では、アプリケーションは Transit Gatewayを通じて、複数の共有 VPC にまたがることができます。セキュリティを強化しつつ、セキュリティアクセス制御を効率化するために、Transit Gateway を介したセキュリティグループの参照を使用することができます。
以下の例 (図 6) では、共有 VPC 1 内の AWS アカウント 1 のプライベートサブネットにあるアプリケーションインスタンスが、共有 VPC 2 内の AWS アカウント 5 のプライベートサブネットにある別のアプリケーションにアクセスする必要があります。Transit Gateway を通じて異なる AWS アカウントの VPC 間でセキュリティグループを相互参照することが可能になりました。そのため、AWS アカウント 1 の共有 VPC 1 で定義されたアプリケーション層インスタンスのセキュリティグループを、AWS アカウント 5 の共有 VPC 2 にあるアプリケーション層のセキュリティグループのインバウンドルールで参照できます。
図6. Transit Gateway を介して接続されたアプリケーション層インスタンス
考慮事項
- 本稿執筆時点では、セキュリティグループ参照は Outposts および一部のタイプの Local Zones ではサポートされていません。サービスの中断を避けるため、一部のタイプの Local Zones と Outposts で拡張された VPC では、セキュリティグループ参照のフラグを無効にしておく必要があります。詳細については、ドキュメントを参照してください。
- 本稿執筆時点では、異なる AWS リージョンのセキュリティグループを参照することはできません。2 つの VPC を接続するには、両方の VPC が同じ Transit Gateway に接続され、同じリージョンに存在する必要があります。
- セキュリティグループ参照は、サードパーティのミドルボックスや Bump-in-the-Wire (BITM) アプライアンスを介しては機能しません。サードパーティのミドルボックスや BITM アプライアンスを介したインスタンス間のトラフィックは、セキュリティグループの参照を使用して許可することはできません。
- 本稿執筆時点では、Transit Gateway 上のマルチキャストではセキュリティグループの参照はサポートされていません。
- 本稿執筆時点では、アウトバウンドセキュリティグループに対するセキュリティグループの参照はサポートされていません。
詳細な考慮事項については、ドキュメント内の Reference security groups across a transit gateway の項目で言及されています。
Transit Gateway の動作は次の表にまとめられています。
Transit gateway レベルの制御 | VPC attachment レベルの制御 | セキュリティグループの参照結果 | |
新規または既存の Transit Gateway の動作 | 有効 | 有効 | 有効 |
無効 (デフォルト) | 有効 (デフォルト) | 無効 (デフォルト) | |
有効 | 無効 | 無効 | |
無効 | 無効 | 無効 |
まとめ
Transit Gateway を介したセキュリティグループの参照の導入により、Transit Gateway 間のリソースへのセキュリティアクセス制御を直接的かつ便利に強化できるようになりました。この新機能は、VPC ピアリングから Transit Gateway への直接的な移行経路を提供します。特に、多くのセキュリティグループの参照を本番環境に展開している場合に有効です。
本稿では、Transit Gateway を介したセキュリティグループの参照の有効化と無効化、およびこの機能の利点について説明しました。
この機能は、AWS 商用リージョン、AWS GovCloud (US) リージョン、およびAWS China リージョンで利用可能です。
Transit Gateway について詳しく知りたい際は、Transit Gateway のドキュメントを参照してください。本稿に関する質問がある場合は、AWS re:Post で新しいスレッドを開始するか、AWS サポートにお問い合わせください。
本稿は、2024年9月25日に Networking & Content Delivery で公開された “Introducing security group referencing for AWS Transit Gateway” を翻訳したものです。翻訳は Solutions Architect の武松が担当しました。