[アップデート] AWS Verified Access のエンドポイントプロトコル TCP サポートが GA となったので Amazon RDS へ接続してみた

[アップデート] AWS Verified Access のエンドポイントプロトコル TCP サポートが GA となったので Amazon RDS へ接続してみた

Clock Icon2025.02.07

いわさです。

今朝、AWS Verified Access の TCP サポートが GA になったとアナウンスがありました。

https://aws.amazon.com/about-aws/whats-new/2025/02/aws-verified-access-zero-trust-resources-non-https-protocols/

このアップデートですが、昨年末の AWS re:Invent 2024 でプレビュー機能としてリリースされたものです。従来は主に HTTPS 経由の Web アプリケーションとしての利用が想定されていましたが、TCP をサポートしたことで様々なアプリケーション用途に利用できるようになりました。

https://dev.classmethod.jp/articles/aws-verified-access-secure-access-resources-non-https-protocols-preview/

例えば、以下は Verified Access を経由してプライベートネットワーク内の Windows インスタンスに RDP 接続を行ったものです。あるいはカスタムポートを使用するアプリケーションや、クライアントサーバー型のサーバーにセキュアに接続するなど、従来のクライアント VPN に替わるものとして様々な利用ができるようになります。

https://dev.classmethod.jp/articles/aws-verified-access-ec2-rdp/

今回こちらの機能が GA になったので、まだあまり検証されていなさそうな Amazon RDS への接続に使ってみました。
次のように IAM Identity Center を信頼プロバイダーとして設定してみます。

975F3864-ED38-4774-A7CA-A8D3094EDF58.png
構成

Verified Access を作成

事前にプライベートネットワーク上に適当な RDS for PostgreSQL を作成しておきます。
外部からアクセス可能な VPC 構成としておらず、パブリックアクセス機能も無効化しており、当然ながらこの時点ではローカル環境からこの RDS インスタンスに接続できません。
Verified Access を使うことでローカルマシンからアクセスできるようにするところをゴールにします。

10D73EFC-472F-4380-A0ED-31EFA7E4E472.png
プライベートネットワーク内の RDS for PostgreSQL

Verified Access + IAM Identity Center の構成方法は過去に何度か記事にしていきますので本記事では今回のアップデートに関する部分のみ抜粋します。
具体的には Verified Access エンドポイント作成時の接続先に RDS を選択します。

B19E5A7B-06BB-4C87-B305-0D8ABBE57ADA.png
エンドポイントタイプに Amazon RDS を指定できる

このエンドポイント作成が Pending から Active ステータスになるまで待つ必要があるのですが、今回は 20 分弱かかりました。だいたい 10 ~ 30 分くらい見ておきましょう。

そして、TCP の場合は Connectivity Client というものをインストールし、そのクライアントアプリケーション上で信頼プロバイダーの認証・認可を受けることで、ローカル環境から Verified Access が発行するドメインでアクセスできるようになります。
Connectivity Client は以下からインストールが可能です。私の検証環境は Apple M1 Max なので「Connectivity Client for Mac with Apple Silicon version 1.0.1」をダウンロードしました。
なお今回の GA にあわせて Connectivity Client が 1.0.1 にバージョンアップされていますので以前インストールを試されていた方はクライアント環境の更新をしておくと良いでしょう。

https://docs.aws.amazon.com/verified-access/latest/ug/connectivity-client.html

Verified Access エンドポイントのステータスが「Active」になっていると、Verified Access インスタンスコンソールからクラアント設定をエクスポート出来ます。
これを macOS の場合は「/Library/Application\ Support/Connectivity\ Client」に配置します。

22DC71A9-510E-4D26-86BE-902956D7BF70.png

あとは Connectivity Client を起動し、サインインボタンを押すとブラウザが立ち上がるので信頼プロバイダー(今回だと IAM Identity Center)へ認証します。

38DA3B28-9716-4BD5-8A67-0387DF9B5658.png

なお、私が試した際には Connectivity Client 上で最初エラーになりまして、Cloudflare WARP を OFF にして再度実行したところ成功しました。

D862F8E1-07C6-4639-B762-FB15F5B9D275.png

DB27ED9B-D237-4593-B2A2-5B6D7AC63877.png

あとは、Verified Access エンドポイントが作成したドメインを経由して psql で接続させてみます。
RDS の標準のドメインではないのでそこだけ注意しましょう。

056B08CB-3B62-45BD-A398-7F5187CBD1E8.png

% psql -h vae-0e8248ec3308aa6d1.vai-0c43b6db59f98a816.prod.verified-access.ap-northeast-1.amazonaws.com -U postgr
es
Password for user postgres: 
psql (14.15 (Homebrew), server 16.3)
WARNING: psql major version 14, server major version 16.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=> 

成功しました。

さいごに

本日は AWS Verified Access のエンドポイントプロトコル TCP サポートが GA となったので Amazon RDS へ接続してみました。

プライベートネットワーク上でカスタムアプリケーションを実行しているが、現状クライアント VPN などで接続させているような環境などの場合、コストや管理の面から Verified Access 採用の余地があると思います。
HTTPS 以外のプロトコルサポートによって柔軟性がかなり上がっているので、以前見送っていた方もこの GA を機にぜひ再検討してみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.