Key | Default | Type | Description
--- | --- | --- | ---

##### security.context.factory.classes

"org.apache.flink.runtime.security.contexts.HadoopSecurityContextFactory";"org.apache.flink.runtime.security.contexts.NoOpSecurityContextFactory"

List<String>

List of factories that should be used to instantiate a security context. If multiple are configured, Flink will use the first compatible factory. You should have a NoOpSecurityContextFactory in this list as a fallback.

##### security.delegation.token.provider.<serviceName>.enabled

true

Boolean

Controls whether to obtain credentials for services when security is enabled. By default, credentials for all supported services are retrieved when those services are configured, but it's possible to disable that behavior if it somehow conflicts with the application being run.

##### security.delegation.tokens.enabled

true

Boolean

Indicates whether to start delegation tokens system for external services.

##### security.delegation.tokens.renewal.retry.backoff

1 h

Duration

The time period how long to wait before retrying to obtain new delegation tokens after a failure.

##### security.delegation.tokens.renewal.time-ratio

0.75

Double

Ratio of the tokens's expiration time when new credentials should be re-obtained.

##### security.kerberos.access.hadoopFileSystems

(none)

List<String>

A semicolon-separated list of Kerberos-secured Hadoop filesystems Flink is going to access. For example, security.kerberos.access.hadoopFileSystems=hdfs://namenode2:9002;hdfs://namenode3:9003. The JobManager needs to have access to these filesystems to retrieve the security tokens.

##### security.kerberos.krb5-conf.path

(none)

String

Specify the local location of the krb5.conf file. If defined, this conf would be mounted on the JobManager and TaskManager containers/pods for Kubernetes and Yarn. Note: The KDC defined needs to be visible from inside the containers.

##### security.kerberos.login.contexts

(none)

String

A comma-separated list of login contexts to provide the Kerberos credentials to (for example, `Client,KafkaClient` to use the credentials for ZooKeeper authentication and for Kafka authentication)

##### security.kerberos.login.keytab

(none)

String

Absolute path to a Kerberos keytab file that contains the user credentials.

##### security.kerberos.login.principal

(none)

String

Kerberos principal name associated with the keytab.

##### security.kerberos.login.use-ticket-cache

true

Boolean

Indicates whether to read from your Kerberos ticket cache.

##### security.kerberos.relogin.period

1 min

Duration

The time period when keytab login happens automatically in order to always have a valid TGT.

##### security.module.factory.classes

"org.apache.flink.runtime.security.modules.HadoopModuleFactory";"org.apache.flink.runtime.security.modules.JaasModuleFactory";"org.apache.flink.runtime.security.modules.ZookeeperModuleFactory"

List<String>

List of factories that should be used to instantiate security modules. All listed modules will be installed. Keep in mind that the configured security context might rely on some modules being present.

##### security.ssl.algorithms

"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"

String

The comma separated list of standard SSL algorithms to be supported. Read more here

##### security.ssl.internal.cert.fingerprint

(none)

String

The sha1 fingerprint of the internal certificate. This further protects the internal communication to present the exact certificate used by Flink.This is necessary where one cannot use private CA(self signed) or there is internal firm wide CA is required

##### security.ssl.internal.close-notify-flush-timeout

-1

Integer

The timeout (in ms) for flushing the `close_notify` that was triggered by closing a channel. If the `close_notify` was not flushed in the given timeout the channel will be closed forcibly. (-1 = use system default)

##### security.ssl.internal.enabled

false

Boolean

Turns on SSL for internal network communication. Optionally, specific components may override this through their own settings (rpc, data transport, REST, etc).

##### security.ssl.internal.handshake-timeout

-1

Integer

The timeout (in ms) during SSL handshake. (-1 = use system default)

##### security.ssl.internal.key-password

(none)

String

The secret to decrypt the key in the keystore for Flink's internal endpoints (rpc, data transport, blob server).

##### security.ssl.internal.keystore

(none)

String

The Java keystore file with SSL Key and Certificate, to be used Flink's internal endpoints (rpc, data transport, blob server).

##### security.ssl.internal.keystore-password

(none)

String

The secret to decrypt the keystore file for Flink's for Flink's internal endpoints (rpc, data transport, blob server).

##### security.ssl.internal.keystore-type

JVM default keystore type

String

The type of keystore for Flink's internal endpoints (rpc, data transport, blob server).

##### security.ssl.internal.session-cache-size

-1

Integer

The size of the cache used for storing SSL session objects. According to here, you should always set this to an appropriate number to not run into a bug with stalling IO threads during garbage collection. (-1 = use system default).

##### security.ssl.internal.session-timeout

-1

Integer

The timeout (in ms) for the cached SSL session objects. (-1 = use system default)

##### security.ssl.internal.truststore

(none)

String

The truststore file containing the public CA certificates to verify the peer for Flink's internal endpoints (rpc, data transport, blob server).

##### security.ssl.internal.truststore-password

(none)

String

The password to decrypt the truststore for Flink's internal endpoints (rpc, data transport, blob server).

##### security.ssl.internal.truststore-type

JVM default keystore type

String

The type of truststore for Flink's internal endpoints (rpc, data transport, blob server).

##### security.ssl.protocol

"TLSv1.2"

String

The SSL protocol version to be supported for the ssl transport. Note that it doesn’t support comma separated list.

##### security.ssl.provider

"JDK"

String

The SSL engine provider to use for the ssl transport:

- `JDK`: default Java-based SSL engine
- `OPENSSL`: openSSL-based SSL engine using system libraries

`OPENSSL` is based on netty-tcnative and comes in two flavours:

- dynamically linked: This will use your system's openSSL libraries (if compatible) and requires `opt/flink-shaded-netty-tcnative-dynamic-*.jar` to be copied to `lib/`
- statically linked: Due to potential licensing issues with openSSL (see LEGAL-393), we cannot ship pre-built libraries. However, you can build the required library yourself and put it into `lib/`:
  `git clone https://github.com/apache/flink-shaded.git && cd flink-shaded && mvn clean package -Pinclude-netty-tcnative-static -pl flink-shaded-netty-tcnative-static`

##### security.ssl.rest.authentication-enabled

false

Boolean

Turns on mutual SSL authentication for external communication via the REST endpoints.

##### security.ssl.rest.cert.fingerprint

(none)

String

The sha1 fingerprint of the rest certificate. This further protects the rest REST endpoints to present certificate which is only used by proxy serverThis is necessary where once uses public CA or internal firm wide CA

##### security.ssl.rest.enabled

false

Boolean

Turns on SSL for external communication via the REST endpoints.

##### security.ssl.rest.key-password

(none)

String

The secret to decrypt the key in the keystore for Flink's external REST endpoints.

##### security.ssl.rest.keystore

(none)

String

The Java keystore file with SSL Key and Certificate, to be used Flink's external REST endpoints.

##### security.ssl.rest.keystore-password

(none)

String

The secret to decrypt the keystore file for Flink's for Flink's external REST endpoints.

##### security.ssl.rest.keystore-type

JVM default keystore type

String

The type of the keystore for Flink's external REST endpoints.

##### security.ssl.rest.truststore

(none)

String

The truststore file containing the public CA certificates to verify the peer for Flink's external REST endpoints.

##### security.ssl.rest.truststore-password

(none)

String

The password to decrypt the truststore for Flink's external REST endpoints.

##### security.ssl.rest.truststore-type

JVM default keystore type

String

The type of the truststore for Flink's external REST endpoints.

##### security.ssl.verify-hostname

true

Boolean

Flag to enable peer’s hostname verification during ssl handshake.

##### zookeeper.sasl.disable

false

Boolean

##### zookeeper.sasl.login-context-name

"Client"

String

##### zookeeper.sasl.service-name

"zookeeper"

String