ALTER CLUSTER
功能描述
细粒度透明加密密钥轮转,创建细粒度透明加密集群时自动调用ALTER CLUSTER ENCRYPTION KEY ROTATION创建密钥。
DEK和CEK保存在系统表PG_TDE中,每次轮转时会对系统表每一行进行UPDATE。
该语法仅9.1.1.200及以上集群版本支持。
密钥缓存和轮转
执行ALTER CLUSTER ENCRYPTION KEY ROTATION命令进行密钥轮转后,系统会生成新的数据加密密钥(DEK)。每次轮转产生的密钥都会在首次访问时从KMS解密并缓存到本地缓存中,以减少后续访问KMS的网络开销。
TDE缓存容量通过GUC参数tde_cache_config(该参数需联系技术支持设置)的cachesize字段设置,默认值为100000。当缓存中的密钥数量达到容量上限时,系统会按照最近最少使用策略淘汰旧密钥,为新密钥腾出空间。
若缓存容量设置过小,无法容纳所有历史轮转密钥,则被淘汰的密钥在下次访问时将产生缓存未命中,系统需重新从KMS获取并解密该密钥后再次写入缓存,这会增加I/O访问延迟。
缓存超时时间通过GUC参数tde_cache_config(该参数需联系技术支持设置)的cachetime字段设置,默认值-1表示不启用超时淘汰。当设置为正数时,系统会定期清理超过该时间未被访问的缓存密钥,同样会导致后续访问时需要重新连接KMS。
建议合理规划密钥轮转的频率,根据业务实际需要缓存的密钥数量设置cachesize,确保缓存能够容纳所有活跃密钥,避免因缓存淘汰产生额外的KMS访问开销。同时,根据密钥访问的时间局部性特征合理设置cachetime,在内存占用与访问性能之间取得平衡。
注意事项
只有拥有数据库所有者权限的用户才能执行ALTER CLUSTER。
语法格式
1 | ALTER CLUSTER ENCRYPTION KEY ROTATION; |