アマゾンクイックサイト はフルマネージドのクラウドネイティブビジネスインテリジェンス(BI)サービスであり、データへの接続、インタラクティブダッシュボードの作成、QuickSight自体の内部、またはソフトウェアに組み込まれた数万人のユーザーとの共有を容易にします。サービス(SaaS)アプリ。
QuickSight Enterprise Editionは最近、タグを使用して行レベルのセキュリティ(RLS)を追加しました。これは、開発者が20,000つのダッシュボードを数万人のユーザーと共有できるようにすると同時に、各ユーザーが特定のデータのみを表示およびアクセスできるようにする新機能です。 つまり、独立系ソフトウェアベンダー(ISV)がアプリにQuickSightに埋め込まれたダッシュボードを追加する場合、QuickSightでエンドユーザーをプロビジョニングする必要はなく、ダッシュボードが誰であるかに基づいてデータをフィルタリングするタグを設定するだけで済みます。提供されています。 たとえば、ISVが、アプリの100人の顧客の20,000人のユーザーと共有するダッシュボードを設定し、顧客内のすべてのユーザーが同じデータにアクセスできるようにする場合、この新機能を使用すると、 QuickSightでXNUMX人のユーザーを設定または管理する必要なしに、すべてのユーザー。
タグを使用して強制されるRLSにより、各エンドユーザーには関連するデータのみが表示され、QuickSightはユーザーの同時実行性に合わせて自動的にスケーリングされ、すべてのエンドユーザーに一貫して高速なパフォーマンスが表示されます。 この投稿では、これをどのように実装できるかを見ていきます。
ソリューションの概要
ユーザープロビジョニングなしでダッシュボードを埋め込むには、APIを使用します 匿名ユーザー用の埋め込み URL を生成、QuickSightで動作します セッション容量の価格。 このAPIを使用すると、埋め込みサーバー(SaaSアプリのロジック)は、ダッシュボードが表示されているユーザーのIDを決定および管理します(このIDはQuickSight内でプロビジョニングおよび管理されます)。
次の図は、タグ付きのRLSを使用してアプリケーションにアクセスしているユーザーに基づいてデータを保護する組み込みダッシュボードのワークフローの例を示しています。
この場合、ISVには、XNUMX人のエンドユーザーがアクセスするSaaSアプリケーションがあります。 XNUMX人はマネージャーで、もうXNUMX人はサイトスーパーバイザーです。 両方のユーザーが同じアプリケーションとアプリケーションに埋め込まれた同じQuickSightダッシュボードにアクセスし、QuickSightではプロビジョニングされません。 サイトスーパーバイザーがダッシュボードにアクセスすると、サイトに関連するデータのみが表示され、マネージャーがダッシュボードにアクセスすると、管理するすべてのサイトに関連するデータが表示されます。
この動作を実現するために、タグを使用して行レベルのセキュリティを構成できる新機能を使用します。 埋め込まれたダッシュボード上のデータを保護するこの方法は、ダッシュボードがユーザープロビジョニングなしで埋め込まれている場合にのみ機能します(別名 匿名の埋め込み)。 このプロセスには、次のXNUMXつのステップが含まれます。
- ダッシュボードの構築に使用されるデータセットの列にタグキーを設定します。
- ダッシュボードを匿名で埋め込む場合は、実行時にタグキーの値を設定します。
ダッシュボードの構築に使用されるデータセットの列にタグキーを設定します
ISVまたは開発者は、を使用してデータセットに列を設定できます。 CreateDataset
or UpdateDataset
次のようなAPI:
上記のサンプルコードでは、 row-level-permission-tag-configuration
データセットの列にタグキーを定義するために使用できる要素です。 タグごとに、次のオプション項目を定義できます。
- タグ複数値デリミタ –このオプションを列に設定すると、実行時に複数の値をタグに渡すことができ、値はこのオプションに設定された文字列で区切られます。 このサンプルでは、区切り文字列としてコンマが設定されています。
- すべての値に一致 –このオプションを列に設定すると、実行時に列のすべての値を渡すことができ、値はこのオプションに設定された文字列で表されます。 このサンプルでは、アスタリスクがすべて一致する文字列として設定されています。
タグを定義した後、を使用してこれらのルールを有効または無効にできます Status
APIの要素。 この場合、値はに設定されます ENABLED
。 ルールを無効にするには、値は次のようになります。 DISABLED
。 タグを有効にした後、実行時にタグに値を渡して、ダッシュボードにアクセスしているユーザーに基づいて表示されるデータを保護できます。
各データセットには、最大50個のタグキーを含めることができます。
次のような回答があります。 CreateDataset
or UpdateDataset
API:
分析を作成するときに、作成者がタグキーで保護されたデータにアクセスできるようにします
データセットでタグキーを設定して有効にすると、データセットは保護されます。 このデータセットを使用してダッシュボードを作成する場合、作成者にはデータが表示されません。 ダッシュボードを作成するときに、データセット内のデータを表示するためのアクセス許可を付与する必要があります。 QuickSight作成者にデータセット内のデータを表示する権限を与えるには、権限ファイルまたはルールデータセットを作成します。 詳細については、を参照してください。 行レベルのセキュリティのためのデータセットルールの作成。 以下は、ルールデータセットの例です。
ユーザー名 | 列名_1 | 列名_2 | 列名_3 |
admin / sampleauthor |
このサンプルデータセットでは、作成者のユーザー名が[ユーザー名]列にリストされています。 他のXNUMXつの列は、タグキーを設定したデータセットの列です。 このテーブルに追加された作成者のこれらの列の値は空のままです。 これにより、作成者は、分析を作成するときに、これらの列のすべてのデータを制限なく表示できます。
ダッシュボードを埋め込むときに、実行時にタグキーに値を設定します
データセットの列にタグキーを設定した後、開発者はダッシュボードを埋め込むときに実行時にキーに値を設定します。 開発者はAPIを呼び出します GenerateDashboardEmbedURLForAnonymousUser
ダッシュボードを埋め込み、要素のタグキーに値を渡す SessionTags
、次のサンプルコードに示すように:
この機能はQuickSightでプロビジョニングされていないユーザーのデータを保護するため、API呼び出しは AnonymousUser
のみ、したがってこの機能はAPIでのみ機能します GenerateDashboardEmbedURLForAnonymousUser
.
上記のサンプルコードには、次のコンポーネントがあります。
-
tag_name_1
、XNUMXつの値を設定します(value1
&value2
)を使用して、TagMultiValueDelimiter
タグキー(この場合はコンマ)を設定するときに定義されます。 -
tag_name_2
、XNUMXつの値をアスタリスクとして設定します。 これにより、アスタリスクを次のように定義したため、このタグキーにその列のすべての値を割り当てることができます。MatchAllValue
以前に列にタグキーを設定したとき。 -
tag_name_3
、XNUMXつの値を設定します(value3
).
API応答の定義
APIの応答には EmbedURL
, Status
, RequestID
。 このURLをHTMLページに埋め込むことができます。 このダッシュボードのデータは、埋め込みAPIを呼び出すときにタグキーに渡される値に基づいて保護されます GenerateDashboardEmbedURLForAnonymousUser
:
- EmbedUrl(文字列) –ダッシュボードを埋め込むためにサーバー側のWebページに配置できる使い捨てのURL。 このURLは5分間有効です。 APIオペレーションは、URLに
auth_code
最大10時間有効なユーザーセッションへのXNUMX回(およびXNUMX回のみ)のサインオンを可能にする値。 このURLは、RLSタグキーに設定された値に基づいて適用されるRLSルールを使用してダッシュボードをレンダリングします。 - ステータス(整数) –リクエストのHTTPステータス。
- RequestId(文字列) –このオペレーションのAWSリクエストID。
きめ細かなアクセス制御
動的を使用することにより、きめ細かいアクセス制御を実現できます AWS IDおよびアクセス管理 (IAM)ポリシーの生成。 詳細については、を参照してください。 動的に生成されたIAMポリシーを使用したSaaSテナントの分離。 使用する場合 GenerateEmbedUrlForAnonymousUser
埋め込み用のAPIの場合、IAMポリシーでXNUMXつのリソースタイプについて言及する必要があります。匿名ユーザーが仮想的に属する名前空間ARNと、で使用できるダッシュボードARNです。 AuthorizedResourceArns
入力パラメータ値。 このAPIを使用して生成されたセッションは、許可されたリソースおよび名前空間と共有されているリソース(ダッシュボード)にアクセスできます。
匿名ユーザーは名前空間の一部であるため、名前空間を介して明示的に渡されたかどうかに関係なく、名前空間と共有されているダッシュボードにアクセスできます。 AuthorizedResourceArns
パラメータに一致する最初のデバイスのリモートコントロール URL を返します。
発信者IDが任意のユーザーおよび任意のダッシュボードのURLを生成できるようにするには、 Resource
ポリシーのブロックは次のように設定できます *
。 発信者IDが特定の名前空間(たとえば、 Tenant1
) Resource
ポリシーの一部を次のように設定できます arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
。 これはダッシュボードIDについても同じです。 動的ポリシー生成の場合、名前空間とユーザーにプレースホルダーを使用することもできます。
次のコードは、IAMポリシーの例です。
使用事例
OkTankは、ヘルスケア分野のISVです。 彼らは、国のさまざまな地域のさまざまな病院が収益を管理するために使用するSaaSアプリケーションを持っています。 OkTankには、何千人もの医療従事者がアプリケーションにアクセスしており、アプリケーションのQuickSightダッシュボードにビジネスに関連する操作が組み込まれています。 OkTankは、QuickSightでユーザーを個別に管理することを望んでおらず、どの病院のどのユーザーがアプリケーションにアクセスしているかに基づいてデータを保護したいと考えています。 OkTankは、タグを使用した行レベルのセキュリティを使用して、実行時にダッシュボード上のデータを保護しています。
OkTankは、中央、東、南、西の各地域に病院(北病院、南病院、ダウンタウン病院)を持っています。
この例では、次のユーザーがOkTankのアプリケーションと埋め込みダッシュボードにアクセスします。 各ユーザーには、ダッシュボードでアクセスできるデータを定義する特定のレベルの制限ルールがあります。 PowerUser
は、すべての病院と地域のデータを表示できるスーパーユーザーです。
OkTankのアプリケーションのユーザー | 病院 | 地域 |
ノースユーザー | 北病院 | 中央と東 |
北管理者 | 北病院 | すべての地域 |
サウスユーザー | 南病院 | サウス |
南管理者 | 南病院 | すべての地域 |
パワーユーザー | すべての病院 | すべての地域 |
これらのユーザーはいずれもQuickSightでプロビジョニングされていません。 OkTankは、独自のアプリケーションでこれらのユーザーを管理するため、各ユーザーがどの地域と病院に属しているかを認識しています。 これらのユーザーのいずれかがアプリケーションに埋め込まれたQuickSightダッシュボードにアクセスする場合、OkTankはダッシュボード上のデータを保護して、ユーザーが自分の地域と病院のデータのみを表示できるようにする必要があります。
まず、OkTankは、ダッシュボードを強化するために使用しているデータセットにタグキーを作成しました。 彼らの中で UpdateDataset
API呼び出し、 RowLevelPermissionTagConfiguration
データセットの要素は次のとおりです。
次に、実行時にダッシュボードを GenerateDashboardEmbedURLForAnonymousUser
API、彼らは設定します SessionTags
ユーザーごとに。
SessionTags
for NorthUser
セクションに GenerateDashboardEmbedURLForAnonymousUser
API呼び出しは次のとおりです。
SessionTags
for NorthAdmin
以下の通り:
SessionTags
for SouthUser
以下の通り:
SessionTags
for SouthAdmin
以下の通り:
SessionTags
for PowerUser
以下の通り:
次のスクリーンショットは何を示しています SouthUser
南地域の南病院に関連するを参照してください。
次のスクリーンショットは何を示しています SouthAdmin
すべての地域の南病院に関連するを参照してください。
次のスクリーンショットは何を示しています PowerUser
すべての地域のすべての病院に関連するを参照してください。
OkTankは、セッションタグに基づいて、埋め込みダッシュボード上のデータを保護しているため、各ユーザーにはアクセスに基づいて特定のデータのみが表示されます。 あなたはできる ダッシュボードにアクセスする ユーザーのXNUMX人として(右上のドロップダウンメニューでユーザーを変更することにより)、選択したユーザーに基づいてデータがどのように変化するかを確認します。
全体として、タグを使用した行レベルのセキュリティにより、OkTankはSaaSアプリケーション内で魅力的な分析エクスペリエンスを提供できると同時に、QuickSightでユーザーをプロビジョニングおよび管理しなくても、各ユーザーに適切なデータのみが表示されるようにします。 QuickSightは、拡張性が高く安全な分析オプションを提供します。このオプションを設定して、数週間または数か月前ではなく、数日で本番環境に展開できます。
まとめ
QuickSightでプロビジョニングされていないユーザー向けの埋め込みダッシュボードとタグを使用した行レベルのセキュリティの組み合わせにより、開発者とISVは、インフラストラクチャのセットアップや管理なしで、数百万のユーザーに拡張しながら、アプリケーションユーザー向けに高度なカスタマイズされた分析をすばやく簡単にセットアップできます。 。 からのより多くの更新のために QuickSight組み込み分析を参照してください AmazonQuickSightユーザーガイドの新機能.
著者について
ラジ・シバスブラマニアム AWSのスペシャリストソリューションアーキテクトであり、アナリティクスに重点を置いています。 Rajiは、世界中のFortune20およびFortune500企業向けのエンドツーエンドのエンタープライズデータ管理、ビジネスインテリジェンス、および分析ソリューションの設計に100年の経験があります。 彼女は、マネージドマーケット、医師のターゲティング、患者分析など、さまざまなヘルスケアデータセットを使用して、統合されたヘルスケアデータと分析に深い経験を持っています。 余暇には、ハイキング、ヨガ、ガーデニングを楽しんでいます。
スリカントバヘティ は、AmazonQuickSightのスペシャライズドワールドワイドシニアソリューションアーキテクトです。 彼はコンサルタントとしてキャリアをスタートさせ、複数の民間および政府機関で働いていました。 その後、PerkinElmer Health and Sciences&eResearch Technology Incに勤務し、AWSサービスとサーバーレスコンピューティングを使用したレポートプラットフォーム用の高トラフィックのウェブアプリケーション、高度にスケーラブルで保守可能なデータパイプラインの設計と開発を担当しました。
カリーム・サイード-モハメッド はAmazonQuickSightのプロダクトマネージャーです。 彼は、組み込み分析、API、および開発者の経験に焦点を当てています。 QuickSightの前は、AWSMarketplaceとAmazonRetailにPMとして勤務していました。 Kareemは、開発者としてキャリアをスタートさせ、その後、コールセンターテクノロジー、Local Expert、Ads forExpediaのPMを務めました。 彼はしばらくの間マッキンゼーアンドカンパニーのコンサルタントとして働いていました。
- '
- "
- &
- 000
- 100
- 11
- アクセス
- Action
- 広告
- すべて
- Amazon
- 分析論
- API
- API
- アプリ
- 申し込み
- アプリ
- 著者
- AWS
- ビルド
- ビジネス
- ビジネス・インテリジェンス
- コール
- 容量
- キャリア
- コード
- コラム
- 企業
- 会社
- コンピューティング
- コンサルタント
- Customers
- ダッシュボード
- データ
- データ管理
- Developer
- 開発者
- ダウンタウン
- 社員
- Enterprise
- 体験
- スピーディー
- 特徴
- 政府・公共機関
- 健康
- ヘルスケア
- こちら
- ハイ
- ハイキング
- 病院
- 病院
- 認定条件
- HTTPS
- IAM
- アイデンティティ
- 含めて
- 情報
- インフラ
- インテリジェンス
- 相互作用的
- IT
- キー
- キー
- レベル
- ローカル
- 作成
- 管理
- 市場
- 市場
- 一致
- ヶ月
- 新機能
- ノース
- 業務執行統括
- オプション
- その他
- パフォーマンス
- 医師
- プラットフォーム
- 方針
- 電力
- プライベート
- プロダクト
- 生産
- リソースを追加する。
- リソース
- 応答
- 小売
- 収入
- ロール
- ルール
- SaaSの
- スケーリング
- 科学
- セキュリティ
- 見て
- 選択
- サーバレス
- サービス
- セッションに
- 設定
- シェアする
- shared
- ショート
- サイト
- So
- ソフトウェア
- ソリューション
- サウス
- スペース
- 開始
- ステートメント
- Status:
- テクノロジー
- テクノロジー
- 時間
- top
- トラフィック
- 更新版
- users
- 値
- ウェブ
- Webアプリケーション
- ウェスト
- 誰
- 以内
- ワークフロー
- 作品
- 世界
- 年
- ヨガ