如何對 QuickSight 中的資料列層級安全問題進行疑難排解?

1 分的閱讀內容
0

我在 Amazon QuickSight 中將 RLS 套用至我的資料集,但是我遇到資料存取方面的問題。

簡短描述

以下是您在 Amazon QuickSight 資料集上使用資料列層級安全 (RLS) 時,可能會遇到的常見問題:

  • 您無法在 QuickSight 內嵌入儀表板中看到匿名 QuickSight 使用者的任何資料。
  • 受限使用者仍然可以看到所有資料。
  • 不受限使用者看不到任何資料。
  • 在您套用 RLS 時,您會收到錯誤碼 DatasetRulesInvalidColType
  • 在您建立分析時,您會收到錯誤碼 DatasetRulesUserDenied

注意:使用 RLS 時,請考慮下列事項:

  • RLS 僅適用於企業版 QuickSight。
  • RLS 僅支援文字資料,如資料集規則中欄位的字串、char 和 varchar。目前,RLS 不適用於日期或數字欄位。
  • 每位使用者套用的完整規則記錄集不得超過 999。具有 999 個以上規則的資料集可能無法將 RLS 規則套用至資料集。
  • 您無法將 RLS 套用至具有預設 null 值的空白資料列,因為 QuickSight 會將 null 值視為空白欄位值。不過,欄位中的空格會被視為常值,因此資料集規則會套用至這些資料列。
  • 只有新增至資料集規則的使用者,才能根據定義的規則查看資料。其他使用者看不到資料。
  • 在資料集規則中使用多個欄位時,規則會以 AND 運算子運作。目前不支援 OR 運算子。
  • 僅針對具有 GenerateEmbedUrlForAnonymousUser API 的匿名使用者的內嵌儀表板,支援 RLS 以標籤為基礎的規則。若是針對具有 GenerateEmbedUrlForRegisteredUser API 的已註冊使用者的內嵌式儀表板,請考慮使用者層級的規則。

解決方案

我無法在 QuickSight 內嵌入儀表板中看到匿名使用者的任何資料

如果您針對匿名內嵌儀表板使用以標籤為基礎的規則,則無法查看或修改資料。若要查看資料,必須將以使用者為基礎的 RLS 規則新增至資料集。

在下列範例資料集規則中,John Stiles 只能看到物流部門的資料,而 Martha Rivera 則可以看到資料集中的所有資料。

UserName,Department 
JohnStiles,Logistics 
MarthaRivera,

注意:您可以在資料集上套用以標籤為基礎的規則和以使用者為基礎的 RLS 規則。

受限使用者仍然可以看到所有資料

如果資料集包含太多規則,即使您已成功套用 RLS,受限使用者仍然可以看到所有資料。若要解決此問題,請確定您的資料集只包含 999 個或更少規則。如果您依 UserName 來限制使用者,且資料集規則中的使用者數量超過 999 個,請建立 QuickSight 群組。將使用者新增至群組,並在資料集規則中使用 GroupName,而非 UserName

不受限使用者看不到任何資料

以下是不受限使用者無法看到資料的可能原因:

  • 使用者在資料集規則中不存在。檢查資料集規則,確認所有預期使用者都在該規則中列出。
  • UserNameGroupName 與 QuickSight 中的使用者或群組不相符。從資料集規則中檢查 UserNameGroupName,以確認其與 QuickSight 中的使用者或群組相符。

在您套用 RLS 時,您會收到錯誤碼 DatasetRulesInvalidColType

在您使用 RLS 作為日期或數值欄位時,則會發生 DatasetRulesInvalidColType 錯誤。

檢查用於評估資料集規則中 RLS 的欄位,以確認資料類型是否為字串。您還可以透過編輯資料集,在 QuickSight 中將數值欄位轉換為字串

在您建立分析時,您會收到錯誤碼 DatasetRulesUserDenied

當使用者不在資料集規則中時,則會發生此 DataRulesUserDenied 錯誤。若要解決此錯誤,請將使用者新增至資料集規則,然後重新整理資料集


相關資訊

使用資料列層級安全 (RLS) 搭配以使用者為基礎的規則,以限制對資料集的存取

在針對匿名使用者內嵌儀表板時,使用資料列層級安全 (RLS) 搭配標籤為基礎的規則,來限制對資料集的存取

使用 AND 和 OR 運算子新增篩選條件 (群組篩選條件)

AWS 官方
AWS 官方已更新 2 年前