はじめに

Transit Gatewayにて相互接続された環境にAWS Client VPN経由で接続する場合の構成を備忘録としてまとめました。

どなたかのご参考になれば幸いです。

構成イメージ

Site-to-Site VPN の場合は直接 Transit Gateway に接続する事ができますが、AWS Client VPN の場合は AWS Client VPN用のVPC を用意する必要があります。

構成としては下記のイメージとなります。

AWS Client VPN の構築

構築については下記ドキュメントを参考に進めました。

https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/cvpn-getting-started.html

Client VPN Endpoint の作成

認証方法については次の方法(組み合わせも可)がありますが、今回は相互認証で構築しました。

  • AD認証
  • 証明書ベースの相互認証
  • SAMLベースのフェデレーション認証

ドキュメント手順「ステップ2」のエンドポイント作成まで完了すると pending-associate の状態となります。

エンドポイントを作成するサブネットと関連付けを行う必要がありますが、今回は用意したPrivate Subnet と関連付けを行いました。

関連付けが完了するとENIが作成され、SGはdefault SG がアタッチされていました。

関連付け完了後は「認証ルール」、「Client VPN Endpoint のルートテーブル」の追加設定が必要となります。

認証ルールの追加

クライアント PC から接続を許可するネットワークを設定する項目となるので、関連付けを行った VPC 及び Transit Gateway 経由で接続する VPC のネットワークを認証ルールに追加します。

特定のADユーザ・グループのみ許可する設定も可能です。

Client VPN Endpoint のルートテーブルの追加

Client VPN Endpoint にもルートテーブルの設定が存在します。

関連付けを行ったVPCについては、Default Route として自動追加されますが、Transit Gateway経由で接続するVPC宛のルーティングは追加する必要があります。

ターゲットネットワークとしてはエンドポイントと関連付けを行ったサブネットとなるため、Transit Gatewayへのルーティングは、ターゲットサブネットに関連付けされた  Route Table に追加する必要があります。

接続確認

AWSマネジメントコンソールからVPN設定ファイルをダウンロードし、クライアント証明書とキーをセットする事でVPN接続が完了し、Transit Gateway経由で接続されたVPCにアクセスが可能となります。

AWS Client VPN 経由のアクセス制限について

AWS Client VPN 経由の通信についてはエンドポイントでNATされる形となるので、アクセス先のSGではエンドポイントENIのプライベートIPアドレスか関連付けを行ったSubnetのネットワークをアクセス元として指定する形となります。

または、エンドポイントENIにアタッチしたSGのアウトバウンドで制御する方法もあるかと思います。

※Transit GatewayによるVPC間通信の場合、セキュリティグループID参照は不可となります。

最後に

上記とおり、特段詰まることなく進める事が出来ました。

Transit Gateway に接続される VP Cが増えた場合は、Transit Gateway のRoute Table、VPC の Route Table に加え、AWS Client VPN 側のルートテーブル・認証ルールの追加も必要となりますので忘れずに対応しましょう。