AWS Client VPNの承認ルールの優先順位と設計ポイント

記事タイトルとURLをコピーする

こんにちは。CI部の鎌田です。

AWS Client VPN、皆様もうお使いでしょうか。 Client VPNの解説は杉村のブログを 参照いただくとして、今回はClient VPNの承認ルールに関してのお話です。

承認ルールとは

AWS Client VPNにおいての承認ルールとは、Client VPNから接続可能な接続先をFirewallルールのように記載しておくものです。 Active Directory 認証を選択しているケースでは、特定のActive Directoryグループに対してのみアクセスを許可する、といったルールも記載が可能です。 承認ルール - AWS クライアント VPN

例えば、下記のような構成があったとしたした場合、192.168.1.10のインスタンスにはvpn-users1のグループにだけアクセスを許可する、といったようなルールが設定できます。

f:id:swx-kamata:20210219151800p:plain

承認ルールのCIDRが重複した場合の挙動

さて、上記の構成図の際に、下記のような形で承認ルールを設計して設定したとしましょう。

接続先IP 許可するグループ
192.168.0.0/16 vpn-admins1
192.168.1.10/32 vpn-users1
192.168.2.10/32 vpn-users2

vpn-admins1のグループに所属するユーザーが、192.168.1.10のサーバーにClient VPN経由で接続するとどうなるでしょうか? 結果としては、アクセスできません。

AWSのネットワーク優先順位

AWSのネットワークに関するドキュメントを参照すると、VPCのドキュメントに the route table uses longest prefix match to prioritize the routes という記述があり、Longest Prefix Matchであることが分かります。

Configurations with specific routes - Amazon Virtual Private Cloud

このことから、上記のようにIPアドレスが承認ルールとして該当する可能性がある2つのルールがある場合、Longest Prefix Matchが適用されて、192.168.1.10/32で設定しているルールが優先的に使われます。 この承認ルールではvpn-users1のグループにしかアクセスを許可していないため、vpn-admins1のグループに所属しているユーザーがアクセスしようとしても、許可されていないグループなのでアクセス許可にならない、という結果となります。

ではどうするのか

では、管理者のようなユーザーが複数のサーバーへのアクセス許可を持っておきたいケースはどうするのか。解決策は、Active Directoryのユーザーに、複数の許可をするグループに所属させる、という方法を採ることです。

先の承認ルールを設定した際のユーザーと、所属グループが下記の通りだったとします。

ユーザー 所属グループ
kamata vpn-users1
mizumoto vpn-users2
sysadmin vpn-admins1

sysadminユーザーが管理者の想定で、vpn-admins1グループに所属している形になっています。これを、管理者用のユーザーであるsysadminだけ次の通りに変えます。

ユーザー 所属グループ
sysadmin vpn-admins1, vpn-users1, vpn-users2

管理者のユーザーは承認ルールに設定する予定の複数グループに所属させることで、Longest Prefix Matchが適用が適用されたケースでも、アクセス許可があるグループに所属しているという判定になり、これでアクセスが可能になります。

まとめ

  • Client VPNの承認ルールはLongest Prefix Matchが適用されて判定される
  • 管理者ユーザーには、Longest Prefix Matchを意識して、複数のActive Directoryのグループに所属させるグループ設計を実施する

この2点に注意して設計していただくことで、「アクセスさせたい先へのアクセスができない」というケースを回避できます。

Client VPNの承認ルールを使いこなして、快適なClient VPNライフを!

通称、認証認可おじさん・Windowsおじさん。PowerShellと認証技術が好物ですが、OSはLinuxが好きです。 AWSドキュメントでは言及されていないようなことや、理解を補助するような内容の執筆を心掛けています。