[アップデート] Amazon QuickSight が VPC エンドポイントがサポートされ Direct Connect や VPN からのみアクセスさせたいというユースケースにも対応出来るようになりました

2024.04.08

いわさです。

一週間ちょっと前に QuickSight の API や AWS CLI に次のような内容のアップデートがありました。

Amazon QuickSight: Adds support for setting up VPC Endpoint restrictions for accessing QuickSight Website.

どうやら QuickSight へのアクセス制限に VPC エンドポイントを使えるようになったようです。

Amazon QuickSight には認証機能が備わっているのですが、BI ツール上で社外秘なデータを取り扱うことも多く別のレイヤーからアクセス制限を行いたいことがあります。
これまでは QuickSight の機能としてはアクセス元の IP アドレスによる制限を行うことが出来ました。次の記事で紹介させて頂いたことがあります。

これまでは次のように IP アドレスによる制限のみが可能でした。
これで十分な場合もあれば、より厳格なセキュリティポリシーから許容出来ないケースもありました。

今回 AWS API の更新履歴などをヒントに実際に検証を行って何が出来るようになったのかを整理しましたので、紹介します。

先にまとめ

まず、今回のアップデートによって Amazon QuickSight が VPC エンドポイント(インターフェース型)をサポートしました。
これによって VPC からプライベート通信経路で QuickSight へアクセス出来るようになります。

そして、QuickSight 側ではこれまでのアクセス元の IP アドレス制限だけでなく、VPC エンドポイント ID や VPC ID で許可制限を行うことが出来るようになりました。

一番多そうなユースケースとしては、オンプレミスからサイト間 VPN や Direct Connect 経由のみ QuickSight を公開することが出来るようになります。

やってみましょう

VPC エンドポイントを作成し、そのエンドポイントに対して名前解決が出来れば OK です。
順に設定していってみましょう。

VPC エンドポイントの作成

VPC のエンドポイントメニューから新規作成を行います。
AWS のサービスから com.amazonaws.ap-northeast-1.quicksight-website のサービス名を選択します。(東京リージョンの場合)
エンドポイントタイプは Interface なので、VPC とサブネットを指定することでエンドポイント用の ENI が作成されて使われる形になります。
なお、インターフェースエンドポイントはプロビジョニングされている時間に応じた従量課金となっています。

VPC エンドポイントを作成するとプライベート DNS 名が割り当てられています。

同一 VPC 上の仮想マシンから名前解決を行ってみると当たり前ですが、エンドポイントのプライベート IP アドレスで名前解決することが出来ました。
なお通常使われている ap-northeast-1.quicksight.aws.amazon.com は、引き続きパブリック IP アドレスで解決されました。

C:\Users\Administrator>nslookup ap-northeast-1.quicksight.aws.amazon.com
Server:  ip-172-31-0-2.ap-northeast-1.compute.internal
Address:  172.31.0.2

Non-authoritative answer:
Name:    ae39a3c91cb620bf1.awsglobalaccelerator.com
Addresses:  52.223.0.140
          35.71.128.176
Aliases:  ap-northeast-1.quicksight.aws.amazon.com
          ap-northeast-1.quicksight.cname-proxy.amazon.com

C:\Users\Administrator>nslookup quicksight-website.ap-northeast-1.amazonaws.com
Server:  ip-172-31-0-2.ap-northeast-1.compute.internal
Address:  172.31.0.2

Non-authoritative answer:
Name:    quicksight-website.ap-northeast-1.amazonaws.com
Address:  172.31.38.230

この時点で「https://quicksight-website.ap-northeast-1.amazonaws.com/」にアクセスしてみたところ、QuickSight へアクセスは出来たのですが、エラーページが表示されました。

解決策としてプライベートホストゾーンなどでデフォルトドメインをプライベート IP アドレスへ名前解決を行う必要があります。後述します。

なお、上記エラー画面がそもそも表示されずにタイムアウトしてしまう場合はエンドポイントのセキュリティグループなどを見直してみてください。私は仮想マシンからの HTTPS アクセスを許可するのを忘れており、タイムアウト問題で悩みました。

プライベートホストゾーンの作成

「https://quicksight-website.ap-northeast-1.amazonaws.com/」ではアクセスが出来ませんでした。
また、HTTPS でのアクセスも出来ないので、QuickSight へカスタムドメインや証明書を登録する仕組み、あるいは別の FQDN でアクセスする必要がありそうだということがわかりました。

前者の機能は提供されていなさそうなので、後者が必要であると考え、今回は Route 53 プライベートホストゾーンを使ってみたところうまく行ったのでおそらくのこの方法が有効だと思います。
オンプレミスからアクセスする場合も名前解決周りには気を配ったほうが良いです。

次のように ap-northeast-1.quicksight.aws.amazon.com のプライベートホストゾーンを作成し、VPC へ関連付けします。
これによって対象 VPC でこのホストの名前解決を行った時はプライベートホストゾーンからまず名前解決されるようになります。

レコードを作成します。
VPC エンドポイントはエイリアスレコードとして指定可能なので、次のようにエイリアスレコードを作成しましょう。
エイリアスレコードって何?という方はこちらの記事の記事を見てください。

もう一度対象の仮想マシンから名前解決を行ってみます。

C:\Users\Administrator>nslookup ap-northeast-1.quicksight.aws.amazon.com
Server:  ip-172-31-0-2.ap-northeast-1.compute.internal
Address:  172.31.0.2

Non-authoritative answer:
Name:    ap-northeast-1.quicksight.aws.amazon.com
Address:  172.31.38.230

良いのでは?
ブラウザからもう一度アクセスしてみましょう。

やりました!プライベート経路での QuickSight へのアクセスに成功しました。

VPC エンドポイントによる制限(オプション)

ここまででプライベート通信経路で QuickSight にアクセスすることが出来ました。
さらに、その経路のみを許可するような制限が今回のアップデート出来るようになりました。

QuickSight 管理メニューの「セキュリティとアクセス許可」の「IP と VPC エンドポイントの制限」にアクセスします。
従来はここで IP アドレス制限を行うことが出来たのですが、少し表記が変わって VPC ID や VPC エンドポイント ID も制限出来るようになったようです。

この画面で「制限を強制」を有効化すると、ここで設定されたアクセス元以外からはアクセス出来なくなります。
どうやら IP アドレスなどど併用することが出来そうですね。今回は先程の VPC エンドポイント ID を指定します。

仮想マシンからアクセスしてみると次のようにアクセスすることが出来ました。

ここで許可する VPC エンドポイント ID を変更してみましょう。

おお、アクセス拒否されましたね。期待どおりです。

さいごに

本日は Amazon QuickSight が VPC エンドポイントがサポートされたので実際に使える確認してみました。

東京リージョンでも使えましたね!
今回のアップデートで Direct Connect や VPN からのみアクセスさせたいというユースケースにも対応出来るようになりました。これは実現したかった方も多いのでは。

2024.04.16 追記

What's New でもアナウンスが出ました。
アップデートメリットは概ね私が考えていた内容とあってそうです。