Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/src/main/sphinx/release/release-378.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@

## Security

* Require value for the ``internal-communication.shared-secret`` configuration
property when authentication is enabled. ({issue}`11944`)
* Require value for [the shared secret configuration for internal
communication](/security/internal-communication) when any authentication is
enabled. ({issue}`11944`)

## CLI

Expand Down
2 changes: 2 additions & 0 deletions docs/src/main/sphinx/security.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ Cluster access security
security/inspect-pem
security/inspect-jks

.. _security-authentication:

Authentication
==============

Expand Down
3 changes: 2 additions & 1 deletion docs/src/main/sphinx/security/authentication-types.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ Authentication types

Trino supports multiple authentication types to ensure all users of the system
are authenticated. Different authenticators allow user management in one or more
systems. Using :doc:`TLS <tls>` is required for all authentications types.
systems. Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` are required for all authentications types.

You can configure one or more authentication types with the
``http-server.authentication.type`` property. The following authentication types
Expand Down
3 changes: 3 additions & 0 deletions docs/src/main/sphinx/security/certificate.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ Trino server on initial connection.
client certificates in order to use this authentication type. Consider
instead using another :ref:`authentication type <cl-access-auth>`.

Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` is required for certificate authentication.

Using certificate authentication
--------------------------------

Expand Down
9 changes: 5 additions & 4 deletions docs/src/main/sphinx/security/internal-communication.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ The Trino cluster can be configured to use secured communication with internal
authentication of the nodes in the cluster, and optionally added security with
:ref:`TLS <glossTLS>`.

Internal authentication
-----------------------
Shared secret for internal authentication
-----------------------------------------

Requests between Trino nodes are authenticated using a shared secret. For secure
internal communication, the shared secret must be set to the same value on all
nodes in the cluster:
internal communication, and for any :ref:`external authentication
<security-authentication>`, the shared secret must be set to the same value in
:ref:`config.properties <config_properties>` on all nodes in the cluster:

.. code-block:: text

Expand Down
3 changes: 3 additions & 0 deletions docs/src/main/sphinx/security/jwt.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ in a workflow like the following:
between users and the Trino coordinator, where their new system submits
queries on behalf of users.

Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` is required for JWT authentication.

Using JWT authentication
------------------------

Expand Down
10 changes: 5 additions & 5 deletions docs/src/main/sphinx/security/kerberos.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ Trino can be configured to enable Kerberos authentication over HTTPS for
clients, such as the :doc:`Trino CLI </security/cli>`, or the JDBC and ODBC
drivers.

To enable Kerberos authentication for Trino, configuration changes are made on
the Trino coordinator. No changes are required to the worker configuration.
The worker nodes continue to connect to the coordinator over
unauthenticated HTTP. However, if you want to secure the communication between
Trino nodes with SSL/TLS, configure :doc:`/security/internal-communication`.
To enable Kerberos authentication for Trino, Kerberos-related configuration
changes are made on the Trino coordinator.

Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` is required for Kerberos authentication.

Environment configuration
-------------------------
Expand Down
10 changes: 5 additions & 5 deletions docs/src/main/sphinx/security/ldap.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ username and password is supported. The Trino client sends a username
and password to the coordinator, and the coordinator validates these
credentials using an external LDAP service.

To enable LDAP authentication for Trino, configuration changes are made on
the Trino coordinator. No changes are required to the worker configuration;
only the communication from the clients to the coordinator is authenticated.
However, if you want to secure the communication between
Trino nodes with SSL/TLS configure :doc:`/security/internal-communication`.
To enable LDAP authentication for Trino, LDAP-related configuration changes are
made on the Trino coordinator.

Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` is required for LDAP authentication.

Trino server configuration
---------------------------
Expand Down
3 changes: 3 additions & 0 deletions docs/src/main/sphinx/security/oauth2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ Set the callback/redirect URL to ``https://<trino-coordinator-domain-name>/oauth
when configuring an OAuth 2.0 authorization server like an OpenID-connect
provider.

Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` is required for OAuth 2.0 authentication.

Trino server configuration
--------------------------

Expand Down
2 changes: 2 additions & 0 deletions docs/src/main/sphinx/security/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ order of steps. Do not skip or combine steps.
HTTPS, if possible.
* Use a globally trusted TLS certificate.

#. **Configure** a :doc:`a shared secret </security/internal-communication>`

#. **Enable authentication**

* Start with :doc:`password file authentication <password-file>` to get up
Expand Down
4 changes: 4 additions & 0 deletions docs/src/main/sphinx/security/password-file.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ Password file authentication is very similar to :doc:`ldap`. Please see
the LDAP documentation for generic instructions on configuring the server
and clients to use TLS and authenticate with a username and password.

Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` is required for password file
authentication.

Password authenticator configuration
------------------------------------

Expand Down
3 changes: 3 additions & 0 deletions docs/src/main/sphinx/security/salesforce.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ basic credentials. This can also be used to secure the :ref:`Web UI <web-ui-aut
Salesforce data. Salesforce authentication is simply a means by which users
can authenticate to Trino, similar to :doc:`ldap` or :doc:`password-file`.

Using :doc:`TLS <tls>` and :doc:`a configured shared secret
</security/internal-communication>` is required for Salesforce authentication.

Salesforce authenticator configuration
--------------------------------------

Expand Down