Flink uses the following three authentication modes:
Authentication Mode |
Description |
Configuration Method |
---|---|---|
Kerberos authentication |
Currently, only keytab authentication mode is supported. |
|
Security cookie authentication |
- |
NOTE:
Obtain the SSL certificate and save it to the Flink client. For details, see Example of Issuing a Certificate. |
Internal authentication of Yarn |
This authentication mode does not need to be configured by the user. |
- |
One Flink cluster supports only one user. One user can create multiple Flink clusters.
Flink uses following encrypted transmission modes:
Configuration about SSL encrypted transmission is mandatory while configuration about encryption of Yarn and Hadoop is not required.
To configure SSL encrypted transmission, configure the following parameters in the flink-conf.yaml file on the client:
Parameter |
Example Value |
Description |
---|---|---|
security.ssl.enabled |
true |
Enable SSL. |
akka.ssl.enabled |
true |
Enable Akka SSL. |
blob.service.ssl.enabled |
true |
Enable SSL for the Blob channel. |
taskmanager.data.ssl.enabled |
true |
Enable SSL transmissions between TaskManagers. |
security.ssl.algorithms |
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
Configure the SSL encryption algorithm. |
Enabling SSL for data transmission between TaskManagers may pose great impact on the system performance.
Parameter |
Example Value |
Description |
---|---|---|
security.ssl.keystore |
${path}/flink.keystore |
Path for storing the keystore. flink.keystore indicates the name of the keystore file generated by the generate_keystore.sh* tool. |
security.ssl.keystore-password |
123456 |
Password of the keystore. 123456 indicates a user-defined password is required. |
security.ssl.key-password |
123456 |
Password of the SSL key. 123456 indicates a user-defined password is required. |
security.ssl.truststore |
${path}/flink.truststore |
Path for storing the truststore. flink.truststore indicates the name of the truststore file generated by the generate_keystore.sh* tool. |
security.ssl.truststore-password |
123456 |
Password of the truststore. 123456 indicates a user-defined password is required. |
./bin/yarn-session.sh -t ssl/
./bin/flink run -yt ssl/ -ys 3 -m yarn-cluster -c org.apache.flink.examples.java.wordcount.WordCount /opt/client/Flink/flink/examples/batch/WordCount.jar
Either of the following methods can be used to execute applications. The -t or -yt option does not need to be added to transmit the keystore and truststore files.
./bin/yarn-session.sh
./bin/flink run -ys 3 -m yarn-cluster -c org.apache.flink.examples.java.wordcount.WordCount /opt/client/Flink/flink/examples/batch/WordCount.jar