翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
匿名ユーザー用のダッシュボードの埋め込み時におけるデータセットへのアクセスを制限するためのタグベースのルールでの行レベルのセキュリティの使用
適用先: Enterprise Edition |
対象者: Amazon QuickSight 管理者と Amazon QuickSight デベロッパー |
QuickSight にプロビジョニング (登録) されていないユーザー向けの Amazon QuickSight ダッシュボードをアプリケーションに埋め込むときは、タグによる行レベルのセキュリティ (RLS) を使用することができます。この場合は、タグを使用して、ユーザーが誰であるかに基づいてダッシュボードに表示できるデータを指定します。
例えば、さまざまな小売業者のための顧客向けアプリケーションを所有する物流会社があるとしましょう。これらの小売業者の何千人ものユーザーが、アプリケーションにアクセスし、倉庫からの注文の出荷状況に関する指標を確認します。
何千人ものユーザーを QuickSight で管理したくないので、匿名埋め込みを使用して、認証済みおよび承認済みユーザーが表示できるアプリケーションに、選択したダッシュボードを埋め込みます。ただし、小売業者にはビジネス用のデータのみが表示され、他のデータは表示されないようにする必要があります。タグによる RLS を使用すると、顧客に関連するデータのみが表示されるようにできます。
そのためには、以下のステップを実行します。
-
RLS タグをデータセットに追加します。
-
GenerateEmbedUrlForAnonymousUser
API オペレーションを使用して、実行時にこれらのタグに値を割り当てます。GenerateEmbedUrlForAnonymousUser
API オペレーションを使用した匿名ユーザー向けダッシュボードの埋め込みに関する詳細については、匿名 (未登録) ユーザー向けの QuickSight ダッシュボードの埋め込み を参照してください。
タグによる RLS を使用するには、次の点に注意してください。
-
タグによる RLS の使用は、現在、匿名埋め込み (特に、
GenerateEmbedUrlForAnonymousUser
API オペレーションを使用する埋め込みダッシュボード) でのみサポートされています。 -
タグによる RLS の使用は、
GenerateEmbedURLForRegisteredUser
API オペレーションまたは古いGetDashboardEmbedUrl
API オペレーションを使用する埋め込みダッシュボードではサポートされていません。 -
RLS タグは、AWS Identity and Access Management (IAM) または QuickSight のアイデンティティタイプにはサポートされていません。
-
SPICE データセットを行レベルのセキュリティに適用する場合、データセット内の各フィールドに最大 2,047 文字の Unicode 文字を含めることができます。このクォータを超えるフィールドは、取り込み中に切り捨てられます。SPICE データクォータの詳細については、「SPICE インポートされたデータのクォータ」を参照してください。
ステップ 1: データセットに RLS タグを追加する
Amazon QuickSight でデータセットにタグベースのルールを追加できます。または、CreateDataSet
または UpdateDataSet
API オペレーションを呼び出すことによってタグベースのルールを追加することもできます。詳細については、「API を使用してデータセットに RLS タグを追加する」を参照してください。
以下の手順に従って、QuickSight でデータセットに RLS タグを追加します。
RLS タグをデータセットに追加する
-
QuickSight のスタートページの左側で [Datasets] (データセット) をクリックします。
-
[Datasets] (データセット) ページで、RLS を追加するデータセットを選択します。
-
[Dataset details] (データセットの詳細) ページが開くので、[Row-level security] (行レベルのセキュリティ) で、[Set up] (セットアップ) を選択します。
-
開いた [Set up row-level security] (行レベルのセキュリティを設定) ページで、[Tag-based rules] (タグベースのルール) を選択します。
-
[Column] (列) では、タグルールを追加する列を選択します。
例えば、この物流会社の場合は、
retailer_id
列が使用されます。文字列データ型の列のみがリストされます。
-
[Tag] (タグ) には、タグキーを入力します。任意のタグ名を入力できます。
例えば、この物流会社の場合は、タグキー
tag_retailer_id
が使用されます。こうすることで、アプリケーションにアクセスする小売業者に基づいた行レベルのセキュリティが設定されます。 -
(オプション) [Delimiter] (区切り記号) には、リストから区切り記号を選択するか、独自の区切り記号を入力します。
タグに複数の値を割り当てるときは、区切り記号を使用してテキスト文字列を区切ることができます。区切り記号の値は、最長で 10 文字にすることができます。
-
(オプション) [Match all] (すべて一致) には、[*] を選択するか、独自の文字 (1 つ、または複数) を入力します。
このオプションは、データセット内のその列にあるすべての値でフィルタリングしたいときに使用する任意の文字にすることができます。値を 1 つずつリストする代わりに、この文字を使用できます。この値を指定する場合は、1 文字から 256 文字までの長さにすることができます。
-
[追加] を選択します。
タグルールがデータセットに追加されて最下部にリストされますが、まだ適用はされていません。データセットに別のタグルールを追加するには、ステップ 5~9 を繰り返します。タグルールを編集するには、ルールの後の鉛筆アイコンを選択します。タグルールを削除するには、ルールの後の削除アイコンを選択します。データセットには最大 50 個のタグを追加できます。
-
データセットにタグルールを適用する準備ができたら、[Apply rules] (ルールを適用) をクリックします。
-
[Turn on tag-based security?] (タグベースのセキュリティをオンにしますか?) で [Apply and activate] (適用とアクティベート) をクリックします。
これでタグベースのルールがアクティブになりました。[Set up row-level security] (行レベルのセキュリティを設定) ページに、データセットのタグルールをオンとオフに切り替えるためのトグルが表示されます。
データセット用のすべてのタグベースのルールを無効にするには、[タグベースのルール] トグルをオフにし、表示されるテキストボックスに「確認」と入力します。
[Datasets] (データセット) ページでは、タグルールが有効であることを示すロックアイコンがデータセット行に表示されます。
これで、ステップ 2: ランタイム時に値を RLS タグに割り当てる で説明されているように、ランタイム時にタグルールを使用してタグ値を設定できるようになりました。このルールはアクティブ時、QuickSight の閲覧者のみに影響します。
重要
データセットでのタグの割り当てと有効化が完了したら、ダッシュボードの作成時にデータセット内のすべてのデータを表示するための許可を QuickSight 作成者に付与するようにしてください。
QuickSight 作成者にデータセット内のデータを表示する権限を与えるには、データセットルールとして使用する権限ファイルまたはクエリを作成します。詳細については、「行レベルのセキュリティに対するデータセットルールの作成」を参照してください。
タグベースのルールを作成すると、タグベースのルールが相互にどのように関連しているかを示す新しい [ルールを管理] テーブルが表示されます。[ルールを管理] テーブルにリストされているルールを変更するには、ルールの後の鉛筆アイコンを選択します。その後、タグを追加または削除し、[更新] を選択します。更新したルールをデータセットに適用するには、[適用] を選択します。
(オプション) RLS タグに OR 条件を追加する
また、OR 条件をタグベースのルールに追加して、QuickSight アカウントユーザーにデータを表示する方法をさらにカスタマイズすることもできます。タグベースのルールで OR 条件を使用すると、ルールで定義された少なくとも 1 つのタグが有効であれば、QuickSight のビジュアルが表示されます。
タグベースのルールに OR 条件を追加するには
-
[ルールを管理] テーブルで、[OR 条件を追加] を選択します。
-
表示される [タグを選択] ドロップダウンリストで、OR 条件を作成するタグを選択します。[ルールを管理] テーブルには、最大 50 個の OR 条件を追加できます。データセット内の 1 つの列に複数のタグを追加できますが、1 つのルールには少なくとも 1 つの列タグが含まれている必要があります。
-
[更新] を選択してルールに条件を追加し、[適用] を選択して更新されたルールをデータセットに適用します。
API を使用してデータセットに RLS タグを追加する
別の手段として、CreateDataSet
または UpdateDataSet
API オペレーションを呼び出すことによって、データセットにタグベースの行レベルのセキュリティを設定し、有効化することもできます。以下の例を使って説明します。
重要
データセットでのタグの割り当てと有効化が完了したら、ダッシュボードの作成時にデータセット内のすべてのデータを表示するための許可を QuickSight 作成者に付与するようにしてください。
QuickSight 作成者にデータセット内のデータを表示する権限を与えるには、データセットルールとして使用する権限ファイルまたはクエリを作成します。詳細については、「行レベルのセキュリティに対するデータセットルールの作成」を参照してください。
RowLevelPermissionTagConfiguration
要素の詳細については、Amazon QuickSight API リファレンスの RowLevelPermissionTagConfiguration を参照してください。
ステップ 2: ランタイム時に値を RLS タグに割り当てる
RLS のタグは、匿名埋め込みにのみ使用できます。GenerateEmbedUrlForAnonymousUser
API オペレーションを使用してタグの値を設定できます。
以下の例は、前のステップでデータセットで定義された RLS タグに値を割り当てる方法を示しています。
POST /accounts/
AwsAccountId
/embed-url/anonymous-user HTTP/1.1 Content-type: application/json { “AwsAccountId”: “string”, “SessionLifetimeInMinutes”: integer, “Namespace”: “string”, // The namespace to which the anonymous end user virtually belongs “SessionTags”: // Optional: Can be used for row-level security [ { “Key”: “tag_retailer_id”, “Value”: “West,Central,South” } { “Key”: “tag_role”, “Value”: “shift_manager” } ], “AuthorizedResourceArns”: [ “string” ], “ExperienceConfiguration”: { “Dashboard”: { “InitialDashboardId”: “string” // This is the initial dashboard ID the customer wants the user to land on. This ID goes in the output URL. } } }
以下は、応答の定義の例です。
HTTP/1.1 Status Content-type: application/json { "EmbedUrl": "
string
", "RequestId": "string
" }
QuickSight でのユーザーの登録を伴わない RLS サポートは、GenerateEmbedUrlForAnonymousUser
API オペレーションのみでサポートされています。このオペレーションでは、SessionTags
で、データセット列に関連付けられたタグの値を定義できます。
この場合、以下の割り当てが定義されています。
-
West
、Central
、およびSouth
の各値は、ランタイム時にtag_retailer_id
タグに割り当てられます。区切り文字には、データセットのTagMultipleValueDelimiter
で定義されたカンマが使用されます。列でコール値を使用するには、値を、タグの作成時にMatchAllValue
として定義された * に設定します。 -
値
shift_manager
はtag_role
タグに割り当てられます。
生成された URL を使用するユーザーは、role
列に値 shift_manager
がある行のみを表示できます。このユーザーは、retailer_id
列の West
、Central
、または South
値のみを表示できます。
GenerateEmbedUrlForAnonymousUser
API オペレーションを使用した匿名ユーザー向けのダッシュボードの埋め込みに関する詳細については、匿名 (未登録) ユーザー向けの QuickSight ダッシュボードの埋め込み、または Amazon QuickSight API リファレンスの GenerateEmbedUrlForAnonymousUser を参照してください。