Manage CSFLE in Confluent Platform for Self-Managed Connectors¶
Client-Side Field Level Encryption (CSFLE) is a security feature that allows you to safeguard sensitive data, such as personally identifiable information (PII), by enabling field-level encryption both at the producer and consumer levels. By encrypting and decrypting individual fields within your data, CSFLE ensures that access to sensitive information is tightly controlled, granting only authorized stakeholders access to the data they are permitted to see. For more information, see Protect Sensitive Data Using CSFLE on Confluent Platform.
Important
For self-managed connectors on Confluent Platform, CSFLE is supported only on Confluent Enterprise 8.0 and later.
Limitations¶
CSFLE for self-managed connectors has the following limitations:
- Auto registration of schemas is not supported when using CSFLE.
- Schemas need to be manually registered upfront before creating connectors.
- The connector only supports encryption for fields of type
string
orbytes
. - The encryption does not work for
string
andbytes
fields within nested JSON_SR formats when thevalue.converter.decimal.format
is set toBASE64
. To workaround this limitation, setvalue.converter.decimal.format
toNUMERIC
. - The reporter topics are not covered by CSFLE. Ensure that the error and success response do not contain any sensitive information while using reporter topics.
Supported connectors¶
The following table list the connector and its minimum version that support CSFLE.
Requirements¶
To use CSFLE in Confluent Platform with self-managed connectors, you must meet the following requirements:
An installation of Confluent Enterprise 8.0 and later with the CSFLE Add-On enabled.
Ensure Schema Registry is configured with the following properties before it starts:
resource.extension.class=io.confluent.kafka.schemaregistry.rulehandler.RuleSetResourceExtension,io.confluent.dekregistry.DekRegistryResourceExtension confluent.license=<cpe-license-key> confluent.license.addon.csfle=<cpe-license-key>
Note
The value for
confluent.license.addon.csfle
is the same as your mainconfluent.license
key.An external KMS to manage your Key Encryption Keys (KEKs). For more information, see Manage KEKs.
The KMS provider must be configured for the connector.
A Kafka topic to use as a data source or destination.
Manage CSFLE¶
At a high level, you can manage CSFLE for self-managed connectors using the following 2-step process:
Configure CSFLE in Confluent Platform¶
CSFLE is available in Confluent Enterprise 8.0 and later to help you protect sensitive data in your Confluent Platform account and perform stream processing on encrypted data. You must configure CSFLE in Confluent Platform before you modify an existing self-managed connector or create a new one with CSFLE enabled.
Complete the following configuration steps:
Define the schema for the topic and add tags to the fields in the schema that you want to encrypt. For more information, see add tags to the schema fields.
Define an encryption policy that specifies rules to use to encrypt the tags. For more information, see add encryption rules
Grant DeveloperWrite permission for encryption key.
Add the following parameters in the connector configuration:
For AWS, pass the following configuration parameters:
Parameter Description rule.executors._default_.param.access.key.id=?
The AWS access key identifier. rule.executors._default_.param.secret.access.key=?
The AWS secret access key. For Azure, pass the following configuration parameters:
Parameter Description rule.executors._default_.param.tenant.id
The Azure tenant identifier. rule.executors._default_.param.client.id
The Azure client identifier. rule.executors._default_.param.client.secret
The Azure client secret. For Google Cloud, pass the following configuration parameters:
Parameter Description rule.executors._default_.param.account.type
This parameter contains the Google Cloud account type. rule.executors._default_.param.client.id
The Google Cloud client identifier. rule.executors._default_.param.client.email
The Google Cloud client email address. rule.executors._default_.param.private.key.id
The Google Cloud private key identifier. rule.executors._default_.param.private.key
The Google Cloud private key. For HashiCorp Vault, pass the following configuration parameters:
Parameter Description rule.executors._default_.param.token.id
The token identifier for HashiCorp Vault. rule.executors._default_.param.namespace
The namespace for HashiCorp Vault Enterprise (optional).
For more information, see Configure CSFLE for use with Confluent Enterprise.
Enable CSFLE in connectors¶
To enable CSFLE for connectors, define the following parameters with the mentioned boolean values in the connector configuration:
Note
If you do not add these values in the connector configuration, CSFLE might not work properly.
csfle.enabled=true
value.converter.auto.register.schemas=false
value.converter.use.latest.version=true
key.converter.auto.register.schemas=false
key.converter.use.latest.version=true
Note
- To fetch the latest value schema from schema registry, use
value.converter.latest.cache.ttl.sec
, that allows you to define the time interval, in seconds, after which the connector fetches the latest version of the value schema. By default, its value is set to-1
. To enable it, enter the desired time interval in seconds for this parameter. - Similar to the value schema, use
key.converter.latest.cache.ttl.sec
to define the time interval, in seconds, after which the converter fetches the latest key schema from schema registry. The default value is-1
. Change this value to the desired time interval in seconds.