名称 | 值 | 说明 |
hadoop.kms.http.port | 9600 | KMS REST API 的 HTTP 端口。 |
hadoop.kms.http.host | 0.0.0.0 | KMS REST API 的绑定主机。 |
hadoop.kms.http.administrators | | 管理员的 ACL,此配置用于控制谁可以访问默认 KMS servlet。该值应为以逗号分隔的用户和组列表。用户列表排在前面,并用空格分隔,后跟组列表,例如“user1,user2 group1,group2”。用户和组都是可选的,因此“user1”、“group1”、“”、“user1 group1”、“user1,user2 group1,group2”都是有效的(请注意“group1”中的前导空格)。“*”授予所有用户和组的访问权限,例如“*”、“* ”和“*”都是有效的。 |
hadoop.kms.ssl.enabled | false | 是否启用 SSL。默认值为 false,即禁用。 |
hadoop.http.max.threads | 1000 | 最大线程数。 |
hadoop.http.max.request.header.size | 65536 | 最大 HTTP 请求头大小。 |
hadoop.http.max.response.header.size | 65536 | 最大 HTTP 响应头大小。 |
hadoop.http.temp.dir | ${hadoop.tmp.dir}/kms | KMS 临时目录。 |
hadoop.http.socket.backlog.size | 500 | KMS 服务器接受队列大小。 |
hadoop.http.idle_timeout.ms | 60000 | KMS 服务器连接超时(以毫秒为单位)。 |
hadoop.kms.key.provider.uri | jceks://file@/${user.home}/kms.keystore | KMS 的后备 KeyProvider 的 URI。 |
hadoop.security.keystore.java-keystore-provider.password-file | | 如果使用 JavaKeyStoreProvider,则为密钥库密码的文件名。 |
hadoop.kms.cache.enable | true | KMS 是否充当后备 KeyProvider 的缓存。当启用缓存时,诸如 getKeyVersion、getMetadata 和 getCurrentKey 等操作有时会返回缓存数据,而无需咨询后备 KeyProvider。在删除或修改密钥时会刷新缓存值。 |
hadoop.kms.cache.timeout.ms | 600000 | KMS 密钥版本和密钥元数据缓存的过期时间(以毫秒为单位)。这会影响 getKeyVersion 和 getMetadata。 |
hadoop.kms.current.key.cache.timeout.ms | 30000 | KMS 当前密钥缓存的过期时间(以毫秒为单位)。这会影响 getCurrentKey 操作。 |
hadoop.kms.audit.aggregation.window.ms | 10000 | 聚合窗口(以毫秒为单位指定)内的重复审计日志事件会被取消,以减少日志流量。会在窗口结束时打印一条聚合事件的单一消息,以及聚合事件的数量。 |
hadoop.kms.authentication.type | simple | KMS 的身份验证类型。可以是“simple”(默认)或“kerberos”。 |
hadoop.kms.authentication.kerberos.keytab | ${user.home}/kms.keytab | 包含已配置 Kerberos 主体的凭据的密钥表的路径。 |
hadoop.kms.authentication.kerberos.principal | HTTP/localhost | 用于 HTTP 端点的 Kerberos 主体。主体必须以“HTTP/”开头,按照 Kerberos HTTP SPNEGO 规范。 |
hadoop.kms.authentication.kerberos.name.rules | DEFAULT | 用于解析 Kerberos 主体名称的规则。 |
hadoop.kms.authentication.signer.secret.provider | random | 指示用于存储用于对身份验证 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.type | none | 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.principal | kms/#HOSTNAME# | 用于连接到 Zookeeper 的 Kerberos 服务主体。 |
hadoop.kms.audit.logger | org.apache.hadoop.crypto.key.kms.server.SimpleKMSAuditLogger | KMS 的审计记录器。它是 KMSAuditLogger 类名称的逗号分隔列表。默认值仅为文本格式的 SimpleKMSAuditLogger。如果未配置此项,则将使用默认值。 |
hadoop.kms.key.authorization.enable | true | 布尔属性,用于启用/禁用每个密钥授权 |
hadoop.security.kms.encrypted.key.cache.size | 100 | 缓存的大小。这是在每个密钥名称下可以缓存的 EEK 的最大数量。 |
hadoop.security.kms.encrypted.key.cache.low.watermark | 0.3 | 缓存的低水位线。对于每个密钥名称,如果在 get 调用后,缓存的 EEK 数量少于(大小 * 低水位线),则此密钥名称下的缓存将异步填充。对于每个密钥名称,仅 1 个线程可以运行异步填充。 |
hadoop.security.kms.encrypted.key.cache.num.fill.threads | 2 | 允许填充缓存中队列的异步线程的总体最大数量,跨密钥名称。 |
hadoop.security.kms.encrypted.key.cache.expiry | 43200000 | 缓存到期时间,以毫秒为单位。内部使用 Guava 缓存作为缓存实现。到期方法为 expireAfterAccess |