本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資料列層級安全性與標籤型規則搭配使用,以在嵌入匿名使用者的儀表板時限制對資料集的存取
適用於:企業版 |
目標受眾:Amazon QuickSight 管理員和 Amazon QuickSight 開發人員 |
當您在應用程式中為未在 QuickSight 中佈建 (已註冊) 的使用者內嵌 Amazon QuickSight 儀表板時,您可以透過標籤實作資料列層級安全 (RLS)。在這種情況下,您使用標籤來指定使用者根據其身分可以在儀表板中看到的資料。
例如,假設貴公司是一家物流公司,提供面向各個零售商客戶的應用程式。這些零售商的數千名使用者存取該應用程式,以查看與訂單從倉庫發貨相關的指標。
您不想在 QuickSight 中管理數千個使用者,因此您使用匿名內嵌將選取的儀表板內嵌到應用程式中,供經過身分驗證和授權的使用者查看。但是,您希望零售商只能看到與其業務相關的資料,而不能看到其他公司的資料。您可以透過標籤使用 RLS,以確保客戶只看到與自己相關的資料。
若要這樣做,請完成下列步驟:
-
新增 RLS 標籤至資料集。
-
使用
GenerateEmbedUrlForAnonymousUser
API 操作在執行期為這些標籤指派值。如需使用
GenerateEmbedUrlForAnonymousUser
API 操作為匿名使用者內嵌儀表板的詳細資訊,請參閱 為匿名 (未註冊) 使用者嵌入 QuickSight 儀表板。
在透過標籤使用 RLS 之前,請記住以下幾點:
-
透過標籤使用 RLS 目前僅支援匿名內嵌,特別是使用
GenerateEmbedUrlForAnonymousUser
API 操作實現的內嵌式儀表板。 -
使用
GenerateEmbedURLForRegisteredUser
API 操作或舊的GetDashboardEmbedUrl
API 操作的內嵌式儀表板不支援透過標籤使用 RLS。 -
AWS Identity and Access Management (IAM) 或 QuickSight 身分類型不支援 RLS 標籤。
-
對 SPICE 資料集套用資料列層級安全時,資料集中的每個欄位最多可以包含 2,047 個 Unicode 字元。超過此限制的欄位將在擷取過程中被截斷。若要進一步了解 SPICE 資料配額,請參閱 匯入資料的 SPICE 配額。
步驟 1:將 RLS 標籤新增至資料集
您可以將以標籤為基礎的規則新增至 Amazon QuickSight 中的資料集。您也可以呼叫 CreateDataSet
或 UpdateDataSet
API 操作來新增以標籤為基礎的規則。如需詳細資訊,請參閱使用 API 將 RLS 標籤新增至資料集。
透過以下程序在 QuickSight 中將 RLS 標籤新增至資料集。
將 RLS 標籤新增至資料集
-
在 QuickSight 開始頁面中,選擇左側的資料集。
-
在資料集頁面上,選擇要新增 RLS 的資料集。
-
在開啟的資料集詳細資訊頁面上,針對資料列層級安全,選擇設定。
-
在開啟的設定資料列層級安全頁面上,選擇以標籤為基礎的規則。
-
針對資料欄,選擇要新增標籤規則的資料欄。
例如,在這個物流公司的案例中,使用的是
retailer_id
資料欄。僅列出資料類型為字串的資料欄。
-
針對標籤,輸入標籤索引鍵。您可以輸入任何您想要的標籤名稱。
例如,在這個物流公司的案例中,使用的標籤索引鍵是
tag_retailer_id
。執列此操作會根據存取應用程式的零售商設定資料列層級安全。 -
(選用) 針對分隔符號,從清單中選擇分隔符號,或輸入所需分隔符號。
為標籤指派多個值時,可以使用分隔符號分隔文字字串。分隔符號的值最長可為 10 個字元。
-
(選用) 針對全部相符,選擇*,或輸入所需的一個或多個字元。
當您想要按資料集中該資料欄的所有值進行篩選時,此選項可以是您想要使用的任何字元。您可以使用這個字元,而不用一一列出值。如果指定該值,則長度需至少為 1 個字元,最多 256 個字元
-
選擇新增。
標籤規則已新增至資料集並列在底部,但尚未套用。若要將另一個標籤規則新增至資料集,請重複步驟 5-9。若要編輯標籤規則,請選擇規則後面的鉛筆圖示。若要刪除標籤規則,請選擇規則後面的刪除圖示。您最多可以為每個資料集新增 50 個標籤。
-
當您準備好將標籤規則套用到資料集時,請選擇套用規則。
-
在開啟的「開啟以標籤為基礎的安全?」頁面上,選擇套用並啟動。
以標籤為基礎的規則現在處於作用中狀態。在設定資料列層級安全頁面上,會出現一個切換開關,可用於開啟和關閉資料集的標籤規則。
若要關閉資料集的所有以標籤為基礎的規則,請關閉以標籤為基礎的規則開關,然後在出現的文字方塊中輸入 "confirm"。
在資料集頁面上,資料集資料列中會出現一個鎖定圖示,表示標籤規則已啟用。
現在您可以使用標籤規則在執行期設定標籤值,如 步驟 2:在執行期為 RLS 標籤指派值 中所述。這些規則僅在作用時影響 QuickSight 讀者。
重要
在資料集上指派並啟用標籤後,請確認授予 QuickSight 作者在創作儀表板時查看資料集中任何資料的許可。
若要授予 QuickSight 作者查看資料集中資料的許可,請建立許可檔案或查詢以用作資料集規則。如需詳細資訊,請參閱建立資料列層級安全的資料集規則。
建立以標籤為基礎的規則後,會出現一個新的管理規則表,其中顯示以標籤為基礎的規則如何相互關聯。若要變更管理規則表中所列的規則,請選擇規則後面的鉛筆圖示。然後新增或移除標籤,並選擇更新。若要將更新的規則套用到資料集,請選擇套用。

(選用) 對 RLS 標籤新增 OR 條件
您也可以將 OR 條件新增至以標籤為基礎的規則,以進一步自訂向 QuickSight 帳戶使用者呈現資料的方式。當您對以標籤為基礎的規則使用 OR 條件時,如果規則中定義的標籤有至少一個有效,則 QuickSight 中會顯示視覺化效果。
對以標籤為基礎的規則新增 OR 條件
-
在管理規則表中,選擇新增 OR 條件。
-
在出現的選取標籤下拉式清單中,選取要對其建立 OR 條件的標籤。您最多可以在管理規則表中新增 50 個 OR 條件。您可以將多個標籤新增至資料集中的單一資料欄,但至少有一個資料欄標籤需要包含在規則中。
-
選擇更新將條件新增至規則中,然後選擇套用將更新後的規則套用到資料集。
使用 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
" }
僅 GenerateEmbedUrlForAnonymousUser
API 操作支援無需在 QuickSight 中註冊使用者的 RLS 支援。在此操作中,您可以在 SessionTags
下定義與資料集資料欄關聯的標籤的值。
本例定義下列指派:
-
值
West
、Central
和South
在執行期指派給tag_retailer_id
標籤。逗號用作分隔符號,這在資料集中的TagMultipleValueDelimiter
中定義。若要使用資料欄中的全部值,您可以將該值設為 *,該值在建立標籤時定義為MatchAllValue
。 -
指派值
shift_manager
給tag_role
標籤。
使用產生的 URL 的使用者只能檢視 role
資料欄中具有 shift_manager
值的資料列。該使用者只能檢視 retailer_id
資料欄中的值 West
、Central
或 South
。
如需使用 GenerateEmbedUrlForAnonymousUser
API 操作為匿名使用者內嵌儀表板的詳細資訊,請參閱《Amazon QuickSight API 參考》中 為匿名 (未註冊) 使用者嵌入 QuickSight 儀表板 或 GenerateEmbedUrlForAnonymousUser 中的內容