配置属性

名称描述
hadoop.kms.http.port9600 KMS REST API的HTTP端口。
hadoop.kms.http.host0.0.0.0 KMS REST API的绑定主机地址。
hadoop.kms.http.administrators管理员访问控制列表(ACL),该配置用于控制哪些用户可以访问默认的KMS服务。值应为逗号分隔的用户和组列表。用户列表在前,通过空格与组列表分隔,例如"user1,user2 group1,group2"。用户和组都是可选的,因此"user1"、" group1"、""、"user1 group1"、"user1,user2 group1,group2"都是有效的(注意" group1"中的前导空格)。'*'表示授予所有用户和组访问权限,例如'*'、'* '和' *'都是有效的。
hadoop.kms.ssl.enabledfalse 是否启用SSL。默认为false,即禁用状态。
hadoop.http.max.threads1000 最大线程数。
hadoop.http.max.request.header.size65536 HTTP请求头的最大尺寸。
hadoop.http.max.response.header.size65536 HTTP响应头的最大尺寸。
hadoop.http.temp.dir${hadoop.tmp.dir}/kms KMS临时目录。
hadoop.http.socket.backlog.size500 KMS服务器接收队列大小。
hadoop.http.idle_timeout.ms60000 KMS服务器连接超时时间(毫秒)。
hadoop.kms.key.provider.urijceks://file@/${user.home}/kms.keystore KMS所依赖的后端KeyProvider的URI地址。
hadoop.security.keystore.java-keystore-provider.password-file 如果使用JavaKeyStoreProvider,则为密钥库密码的文件名。
hadoop.kms.cache.enabletrue 是否启用KMS作为底层KeyProvider的缓存。 当缓存启用时,像getKeyVersion、getMetadata和getCurrentKey这样的操作有时会返回缓存数据而无需查询底层KeyProvider。 当密钥被删除或修改时,缓存值会被清除。
hadoop.kms.cache.timeout.ms600000 KMS密钥版本和密钥元数据缓存的过期时间,单位为毫秒。这会影响getKeyVersion和getMetadata操作。
hadoop.kms.current.key.cache.timeout.ms30000 KMS当前密钥缓存的过期时间,单位为毫秒。这会影响getCurrentKey操作。
hadoop.kms.audit.aggregation.window.ms10000 在聚合窗口(以毫秒为单位)内的重复审计日志事件将被合并以减少日志流量。在窗口结束时,会打印一条关于聚合事件的汇总消息,并显示聚合事件的数量统计。
hadoop.kms.authentication.typesimple KMS的身份验证类型。可以是'simple'(默认)或'kerberos'。
hadoop.kms.authentication.kerberos.keytab${user.home}/kms.keytab 配置的Kerberos主体凭据对应的keytab文件路径。
hadoop.kms.authentication.kerberos.principalHTTP/localhost 用于HTTP端点的Kerberos主体名称。 根据Kerberos HTTP SPNEGO规范,主体名称必须以'HTTP/'开头。
hadoop.kms.authentication.kerberos.name.rulesDEFAULT 用于解析Kerberos主体名称的规则。
hadoop.kms.authentication.signer.secret.providerrandom 指定用于签名认证cookie的密钥存储方式。可选值为'random'(默认)、'string'和'zookeeper'。 如果在多KMS实例配置中使用,应选择'zookeeper'选项。
hadoop.kms.authentication.signer.secret.provider.zookeeper.path/hadoop-kms/hadoop-auth-signature-secret KMS实例用于存储和获取密钥的Zookeeper ZNode路径。
hadoop.kms.authentication.signer.secret.provider.zookeeper.connection.string#HOSTNAME#:#PORT#,... Zookeeper连接字符串,由逗号分隔的主机名和端口列表组成。
hadoop.kms.authentication.signer.secret.provider.zookeeper.auth.typenone Zookeeper认证类型,'none'(默认)或'sasl'(Kerberos)。
hadoop.kms.authentication.signer.secret.provider.zookeeper.kerberos.keytab/etc/hadoop/conf/kms.keytab 用于连接Zookeeper的Kerberos密钥表凭证的绝对路径。
hadoop.kms.authentication.signer.secret.provider.zookeeper.kerberos.principalkms/#HOSTNAME# 用于连接Zookeeper的Kerberos服务主体名称。
hadoop.kms.audit.loggerorg.apache.hadoop.crypto.key.kms.server.SimpleKMSAuditLogger KMS的审计日志记录器。这是一个以逗号分隔的KMSAuditLogger类名列表。默认仅使用文本格式的SimpleKMSAuditLogger。 如果未配置此项,将使用默认值。
hadoop.kms.key.authorization.enabletrue布尔属性,用于启用/禁用按密钥授权
hadoop.security.kms.encrypted.key.cache.size100缓存大小。这是每个密钥名称下可缓存的加密密钥(EEK)最大数量。
hadoop.security.kms.encrypted.key.cache.low.watermark0.3缓存的最低水位线。对于每个密钥名称,如果在get调用后,缓存的EEK数量小于(大小 * 低水位线),则该密钥名称下的缓存将异步填充。对于每个密钥名称,只有1个线程可以运行进行异步填充。
hadoop.security.kms.encrypted.key.cache.num.fill.threads2跨密钥名称允许填充缓存队列的最大异步线程总数。
hadoop.security.kms.encrypted.key.cache.expiry43200000缓存过期时间,单位为毫秒。内部使用Guava缓存作为实现方案。 过期策略采用expireAfterAccess