

# 将动态掩蔽与 Aurora PostgreSQL 结合使用
<a name="AuroraPostgreSQL.Security.DynamicMasking"></a>

动态数据掩蔽是一项安全功能，可通过控制数据在查询时向用户显示的方式来保护 Aurora PostgreSQL 数据库中的敏感数据。Aurora 通过 `pg_columnmask` 扩展实现此项功能。`pg_columnmask` 提供列级别数据保护，以便为 PostgreSQL 的原生行级安全性和精细访问控制机制提供补充。

使用 `pg_columnmask`，您可以创建掩蔽策略，以便根据用户角色确定数据可见性。当用户使用掩蔽策略查询表时，Aurora PostgreSQL 会在查询时根据用户的角色和策略权重来应用相应的掩蔽函数。底层数据在存储中保持不变。

`pg_columnmask` 支持以下功能：
+ **内置和自定义掩蔽函数**：使用预先构建的函数来处理电子邮件和文本掩蔽等常见模式，或者创建自己的自定义函数，以通过基于 SQL 的掩蔽策略保护敏感数据（PII）。
+ **多种掩蔽策略**：完全隐藏信息、用通配符替换部分值或定义自定义掩蔽方法。
+ **策略优先级**：为单个列定义多个策略。使用权重来确定当多个策略应用于某个列时，应使用哪个掩蔽策略。Aurora PostgreSQL 根据权重和用户角色成员资格应用策略。

`pg_columnmask` 在 Aurora PostgreSQL 版本 16.10 及更高版本以及版本 17.6 及更高版本上可用。它不会产生额外的成本。