Quick Suite(Quick Sight)のダッシュボードをアクセス制限付きで匿名公開するには?

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

さとうです。

Quick SuiteのQuick Sight機能で、ダッシュボードをユーザ登録不要で公開できる匿名ユーザー向けの埋め込み機能があることはご存知でしょうか。

Amazon Quick Sight の埋め込み分析 - Amazon Quick Suite

このダッシュボードは通常パブリックに公開されるものですが、社内向けに限定公開したいなどアクセス制限付きで公開する方法を紹介したいと思います。

※Quick SuiteにリブランディングされからQuickSightがQuick Sightと呼ばれるようになったので、表現はそれに倣っています。

埋め込みの種類について

まずダッシュボードを公開するための埋め込み機能ですが、以下4つの方法があります。

タイプ アクセス対象 共有方法
ワンクリック埋め込み 登録済ユーザ URL/iframe
ワンクリック匿名埋め込み 匿名ユーザ URL/iframe
Amazon Quick Sight APIsを使用した埋め込み 登録済ユーザ URL/iframe
Amazon Quick Sight APIsを使用した匿名埋め込み 匿名ユーザ URL/iframe

ワンクリック埋め込みはQuick Sightの管理画面から公開用のURLを生成する方法で、URLをWikiに埋め込んだりチャットで共有するなど静的コンテンツ向けの機能です。

Amazon Quick Sight APIsを使用した埋め込みはSDKからセッション付きのURLを発行する方法で、Webアプリケーションにダッシュボードを埋め込むといった動的コンテンツ向けの機能です。

このうち、簡単に提供できるワンクリック匿名埋め込みを使う方法をご紹介します。

ワンクリック匿名埋め込みのアクセス制御の考え方

匿名埋め込みはパブリックに公開されることを前提とした機能です。

URLで埋め込む場合

URLで埋め込む場合、URLが既知になれば誰でもアクセス可能な状態になります。

iframeで埋め込む場合

iframeで埋め込む場合、埋め込み先のドメインを許可リストに入れる必要があります。

そのため、例えば埋め込先みをSharePointのようなテナント別に固有のFQDNが払い出されるサイトに限定して埋め込むことで、SharePointにアクセス可能なユーザのみにダッシュボードを公開するといった制御は可能です。もちろんFQDNをテナント間で共有するようなサイトであればその限りではありません。

ただし、iframeに埋め込むURLに含まれるセッションIDは固定化されたものなので、このURLが外部に流出して既知になればパブリックアクセスが可能になってしまいます。

匿名ユーザにアクセス制限付きで提供するには?

Quick SightのIPアドレス/VPC制限機能を組み合わせて公開することで埋め込まれたダッシュボードにもアクセス制限を設定することができます。

このアクセス制限は匿名埋め込みで公開されたダッシュボードにも有効になります。

IP/VPC の制限の管理 - Amazon Quick Suite

設定方法

Quick Suiteから以下の通り、埋め込みURLを取得することができます。

アカウントレベルの機能有効化が必要になる作業が含まれるため注意してください。

  1. セッションキャパシティのサブスクリプションを購入する
  2. ダッシュボードのパブリック共有をアカウントレベルで許可する
  3. 埋め込みたいダッシュボードでパブリックアクセスを有効化する
  4. 埋め込みのURLまたはiframeをダッシュボードからコピーで取得する
  5. (iframeで埋め込む場合) 埋め込むサイトのドメインを許可リストに追加する

作業の詳細は以下のブログを参照されるとよいと思います。

aws.amazon.com

やってみた

グローバルIPアドレスでアクセス制限を実施した上で、ワンクリック匿名埋め込みで発行したダッシュボードのURLにアクセスした場合の表示例です。

許可されたIPアドレス以外からはAccess Deniedになることが確認できます。

許可されたIPアドレスからのアクセス

許可されていないIPアドレスからのアクセス

料金について

匿名埋め込みは性質上、セッションキャパシティのサブスクリプションを購入する必要があります。

このキャパシティは管理者などのユーザ単位の課金とは別で発生するもので、月間または年間のサブスクリプション形式となります。

注意書きにある通りセッションは1ユーザにつき永続するものではなく、30分単位で発生するものです。

* A session is a 30-minute period.

また、Quick Sightに登録されたユーザであっても匿名埋め込みされたURLからアクセスするとセッション単位の課金対象になるので注意してください。

aws.amazon.com

ワンクリック匿名埋め込みでできないこと

匿名アクセスという性質上、できないことも存在します。

アクセス情報の追跡

匿名アクセスなので、誰がアクセスしたかといったユーザの識別情報を特定することはできません。

CloudTrailの監査ログから匿名アクセスのセッションを追跡することは可能ですが、ユーザ名は "publicAnonymousUser/<ランダム識別子> になりアクセス先のダッシュボードがわかるくらいで送信元のIPアドレスなどもログからは判断できなかったので、有意な情報は含まれていません。

行レベルセキュリティ

ダッシュボードで公開するデータ自体に行レベルセキュリティ(RLS)でアクセスを制限したいケースもあると思いますが、これはQuick Sightのユーザ登録を前提とした機能なので匿名アクセスでは利用することができません。

まとめ

Quick Sightのダッシュボードを社内の不特定多数に従量課金で公開したいといったケースではIP/VPC制限と組み合わせた公開も選択肢の1つになります。

佐藤 航太郎(執筆記事の一覧)

エンタープライズクラウド部 クラウドモダナイズ課
2025年1月入社で何でも試したがりの雑食系です。