For deployments with Flink Version
1.6 or higher, Application Manager supports auto provisioned
Flink SSL setup.
To enable it, set
flink.security.ssl.enabled: true in deployment template’s annotation.
This switches on SSL mutual auth for Flink internal network communication and makes Flink REST API and web UI served via https.
1.6.2 or higher, this will additionally enable SSL mutual authentication (for clients of Flink REST API and web UI).
By default, SSL is disabled (same as explicit setting
Direct requests to Flink’s REST API will require a trusted client certificate when SSL mutual authentication is enabled.
Access to the Flink web user interface (and REST api) is still possible through Application Manager’s Flink proxy.
To provision Flink clusters with key stores and trust stores required for transport security,
Application Manager generates once
- a self signed certificate: the public key is shared with Flink JobManager instances to facilitate Flink REST API and web UI SSL client auth;
- a self signed signing certificate (CA) for signing SSL certificates for Flink JobManager.
Both certificates (with private keys) are stored in a key store under the persisted directory of Application Manager.
Before starting a deployment with the configuration enabled, Application Manager will generate
- a self signed certificate, used to enable secure Flink internal connectivity;
- a certificate signed by the signing certificate, to enable https on Flink JobManager’s REST API and web UI.
Both certificates (with private keys) are saved in a Kubernetes secret,
which later is mounted to each deployment’s Flink nodes.
The implementation can be summarized in the following diagram: