认证和acl
kafka附带一个可插拔的ACL(Access Control List 访问控制列表)
,它使用zookeeper来存储。通过在server.properties
中设置authorizer.class.name来启用:
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
Kafka acls的格式为 "Principal P is [Allowed/Denied] Operation O From Host H On Resource R”
,你可以使用Kafka authorizer CLI 来添加,删除或查询所有acl。默认情况下,如果ResourcePatterns与特定的资源R没有匹配,则除了超级用户之外,都不允许访问R。如果要更改该行为,可以在server.properties
中包含以下内容。
allow.everyone.if.no.acl.found=true
你也可以在server.properties
添加超级用户,像这样(注意分隔符是分号,因为SSL的用户名是逗号)。
super.users=User:Bob;User:Alice
默认情况下,SSL用户名的格式为“CN=writeuser,OU=Unknown,O=Unknown,L=Unknown,ST=Unknown,C=Unknown”。可以通过在server.properties中设置自定义的PrincipalBuilder来改变它,如下所示:
principal.builder.class=CustomizedPrincipalBuilderClass
可以通过修改server.properties
中的sasl.kerberos.principal.to.local.rules自定义规则。sasl.kerberos.principal.to.local.rules的格式是一个列表,其中每个规则的工作方式与