我如何解决 QuickSight 中出现的行级安全问题?

1 分钟阅读
0

我在 Amazon QuickSight 中对数据集应用了 RLS,但我在访问数据时遇到了问题。

简述

以下是您在 Amazon QuickSight 数据集上使用行级别安全性 (RLS) 时可能会遇到的常见问题:

  • 您无法在 QuickSight 嵌入式仪表板中看到匿名 QuickSight 用户的任何数据。
  • 受限制用户仍然可以看到所有数据。
  • 不受限制的用户看不到任何数据。
  • 您在应用 RLS 时收到错误代码 DatasetRulesInvalidColType
  • 您在创建分析时收到错误代码 DatasetRulesUserDenied

RLS 具有以下限制:

  • RLS 只能用于 QuickSight 的企业版。
  • RLS 对于数据集规则中的字段仅支持文本数据,如字符串、字符和可变长字符串。目前,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 官方已更新 7 个月前