我不太清楚 GENERATE_EEK 和 GET_METADATA 的 ACL 允许什么。
从对 HDFS 透明加密的幼稚理解来看,GENERATE_EEK 似乎是为加密区域 (EZ) 生成 EDEK 的请求。
所以说假设
- 使用名为 keyforuserA 的 keyadmin 用户创建一个密钥。
- 接下来为该 key 创建一个策略 keyforuserA 并授予 userA DECRYPT_EEK 权限。
- 在 /ezforuserA 下为 userA 创建一个加密区域,给定 userA 对该 ez 的读取和写入权限。为此,我需要在步骤 2 中的策略或全局策略中将密钥 keyforuserA 的 GET_METADATA 权限授予 hdfs 超级用户。
现在这个 userA 可以读取和写入任何文件到 /ezforuserA 中的 EZ
当用户 A 想要在 EZ 中执行写入操作时,namenode 请求 KMS 生成一个 EDEK,然后将其交还给用户 A,并且由于用户 A 可以在 keyforuserA 上执行 DECRYPT_EEK,因此他可以在 EZ 中读写。
GENERATE_EEK 什么时候开始发挥作用?hdfs 用户是否需要每个密钥的此权限?
GET_METADATA 的类似问题 .. 这什么时候开始发挥作用?