Kudu security
Kudu includes security features that allow Kudu clusters to be hardened against access
from unauthorized users. Kudu uses strong authentication with Kerberos, while communication
between Kudu clients and servers can now be encrypted with TLS. Kudu also allows you to use
HTTPS encryption to connect to the web UI.
Kudu authentication with Kerberos Kudu can be configured to enforce secure authentication among servers, and between clients and servers. Authentication prevents untrusted actors from gaining access to Kudu, and securely identifies connecting users or services for authorization checks. Authentication in Kudu is designed to interoperate with other secure Hadoop components by utilizing Kerberos.Scalability Kudu authentication is designed to scale to thousands of nodes, which means it must avoid unnecessary coordination with a central authentication authority (such as the Kerberos KDC) for each connection. Instead, Kudu servers and clients use Kerberos to establish initial trust with the Kudu master, and then use alternate credentials for subsequent connections. As described previously, the Kudu master issues internal X.509 certificates to tablet servers on startup, and temporary authentication tokens to clients on first contact.Coarse-grained authorization Kudu supports coarse-grained authorization checks for client requests based on the client's authenticated Kerberos principal (user or service). Access levels are granted based on whitelist-style Access Control Lists (ACLs), one for each level. Each ACL specifies a comma-separated list of users, or may be set to '*
' to indicate that all authenticated users have access rights at the specified level.Encryption Kudu allows you to use TLS to encrypt all communications among servers, and between clients and servers. Web UI encryption The Kudu web UI can be configured to use secure HTTPS encryption by providing each server with TLS certificates. Use the --webserver_certificate_file
and --webserver_private_key_file
properties to specify the certificate and private key to be used for communication.Web UI redaction To prevent sensitive data from being included in the web UI, all row data is redacted. Table metadata, such as table names, column names, and partitioning information is not redacted. Alternatively, you can choose to completely disable the web UI by setting the --webserver_enabled
flag to false
on the Kudu servers.Log redaction To prevent sensitive data from being included in Kudu server logs, all row data will be redacted. You can turn off log redaction using the --redact
flag.Configuring a secure Kudu cluster using Cloudera Manager First you need to enable Kerberos authentication and RPC encryption. Next, configure coarse-grained authorization with ALCs. Lastly, configure HTTPS encryption for both the Kudu master and tablet server web UIs. Configuring a secure Kudu cluster using the command line You should set the configuration parameters on all the servers (master and tablet servers) to ensure that a Kudu cluster is secure.