> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conduktor.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Kafka cluster configuration

> Add, update, and manage Kafka cluster configurations in Conduktor Console. Connect to Kafka brokers, Schema Registry, and Kafka Connect from the Settings. Enjoy a better experience with Confluent, Aiven and Gateway special integrations.

## Overview

To add, update, and delete Kafka cluster configurations, go to **Settings** > **Clusters**. By default, only users belonging to the **Admin** group or having the `Can manage Cluster configurations` permission will be able to view and manage the clusters.

<img src="https://mintcdn.com/conduktor/dKeHsjTOLvuHVG-Z/images/clusters-list.png?fit=max&auto=format&n=dKeHsjTOLvuHVG-Z&q=85&s=07608f56d984ef0c577b170c205e5e77" alt="Cluster admin" width="2472" height="818" data-path="images/clusters-list.png" />

**To add a cluster:** Click **Add cluster** in the top right corner.

**To edit a cluster:** Select it from the list to modify the name, icon, bootstrap servers, and additional properties. You can also enable Schema Registry, Kafka Connect, ksqlDB, and Kafka providers.

## Network requirements

Console connects to Kafka clusters using the Apache Kafka Java client library. It uses standard Kafka client connections with the bootstrap servers you provide in the cluster configuration.

Console requires the same network access to Kafka brokers as any standard Kafka client application.

## Connect to a Conduktor Gateway cluster

Connect Conduktor Console to a Conduktor Gateway cluster the same way you would connect to any Kafka cluster by providing the Gateway bootstrap servers and security configurations. Console will simply act as a Kafka client connecting to Gateway.

The security protocol must match the listener Console connects to (`GATEWAY_LISTENER_<NAME>_SECURITY_PROTOCOL`) in your Gateway configuration.

To enable Gateway integration and access Interceptors, Chargeback with Gateway or Partner Zones, select the **Gateway provider** and enter your Gateway API key and secret.

<img src="https://mintcdn.com/conduktor/YlJn6qrEZm6kp3UE/images/gateway-provider.png?fit=max&auto=format&n=YlJn6qrEZm6kp3UE&q=85&s=8177b21fb2221ec3416dd5062ec8641a" alt="Gateway provider in Console" width="2280" height="1232" data-path="images/gateway-provider.png" />

## Connect to a secure Kafka cluster

Console uses the Apache Kafka Java Client [configuration properties](https://kafka.apache.org/documentation/#consumerconfigs) <Icon icon="up-right-from-square" />.

To connect to a secure Kafka cluster, specify the values from your `config.properties` file:

```sh theme={null}
security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username='<username>' password='<password>';
```

## Connect to a Confluent Cloud cluster

1. In your Confluent cluster dashboard, go to **Data integration** > **Clients**
2. Select **Java** as the language

<img src="https://mintcdn.com/conduktor/dKeHsjTOLvuHVG-Z/images/confluent-client.png?fit=max&auto=format&n=dKeHsjTOLvuHVG-Z&q=85&s=ed7fafaed871ad9b45d97685e72e027f" alt="Confluent client" width="1559" height="800" data-path="images/confluent-client.png" />

3. Create a **Kafka cluster API key**. Optionally, create a **Schema Registry API Key** if using Schema Registry

<img src="https://mintcdn.com/conduktor/dKeHsjTOLvuHVG-Z/images/confluent-api-key.png?fit=max&auto=format&n=dKeHsjTOLvuHVG-Z&q=85&s=4ae7d7b51931e6967e825dbceda3d2c2" alt="Confluent snippet" width="1557" height="732" data-path="images/confluent-api-key.png" />

4. Copy the configuration to your clipboard.
5. In Console, add the bootstrap servers and paste the configuration as *advanced properties*.
6. Test the connection. A green **Connected** label appears on success.

<img src="https://mintcdn.com/conduktor/dKeHsjTOLvuHVG-Z/images/confluent-config.png?fit=max&auto=format&n=dKeHsjTOLvuHVG-Z&q=85&s=a9bdf458c4cac837ef7220975e9c9f3d" alt="Confluent configuration in Console" width="2372" height="1872" data-path="images/confluent-config.png" />

7. Click **Create Configuration** to save

To manage Confluent service accounts, set up the **Confluent provider** in the [cluster configuration](/guide/manage-kafka/kafka-resources/service-accounts-acls#confluent-cloud).

## Connect to an Aiven cluster

Choose one of the following authentication methods:

### SSL authentication

Provide the **Access Key**, **Access Certificate**, and **CA Certificate** from your Aiven console. The **Service URI** is your bootstrap server.

<img src="https://mintcdn.com/conduktor/Qoq7DGlJAnopJIka/images/aiven-certs.png?fit=max&auto=format&n=Qoq7DGlJAnopJIka&q=85&s=8e0aa135f403464e1ec9382c404b34ad" alt="Aiven certificates" width="1641" height="673" data-path="images/aiven-certs.png" />

In Console:

1. Enter the bootstrap server
2. Upload the CA certificate
3. Select **SSL** as the authentication method
4. Paste the **Access Key** and **Access Certificate**

<img src="https://mintcdn.com/conduktor/QbWqOoz71x3C-Q82/images/aiven-with-ssl.png?fit=max&auto=format&n=QbWqOoz71x3C-Q82&q=85&s=8d0154fb3ccec45185fe79f6bf7a8081" alt="Console config with SSL" width="2449" height="1869" data-path="images/aiven-with-ssl.png" />

To manage Aiven service accounts, set up the **Aiven provider** in the [cluster configuration](/guide/manage-kafka/kafka-resources/service-accounts-acls#aiven).

### SASL\_SSL authentication

Provide the **Service URI** (bootstrap server), **User**, and **Password** from your Aiven console.

<img src="https://mintcdn.com/conduktor/QbWqOoz71x3C-Q82/images/aiven-sasl-ssl.png?fit=max&auto=format&n=QbWqOoz71x3C-Q82&q=85&s=f70d8defcc5395cdb3185a411134905d" alt="Aiven SASL" width="1641" height="673" data-path="images/aiven-sasl-ssl.png" />

The configuration in Console:

<img src="https://mintcdn.com/conduktor/QbWqOoz71x3C-Q82/images/aiven-with-sasl-ssl.png?fit=max&auto=format&n=QbWqOoz71x3C-Q82&q=85&s=5aae73c50334e114096842ca09b53d65" alt="Console config with SASL_SSL" width="2372" height="1872" data-path="images/aiven-with-sasl-ssl.png" />

To manage Aiven service accounts, set up the **Aiven provider** in the [cluster configuration](/guide/manage-kafka/kafka-resources/service-accounts-acls#aiven).

## Connect to an AWS MSK cluster

1. Create an IAM user:

<img src="https://mintcdn.com/conduktor/23R4f9CHmZAh-xV6/images/msk-iam-user.png?fit=max&auto=format&n=23R4f9CHmZAh-xV6&q=85&s=91404ec9e890da97d9ba6ff293467e87" alt="MSK IAM user" width="1150" height="712" data-path="images/msk-iam-user.png" />

2. Attach permissions to the IAM user:

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["kafka:*", "kafka-cluster:*"],
      "Resource": "*"
    }
  ]
}
```

3. Generate an access key:

<img src="https://mintcdn.com/conduktor/Kbwb2r5-pp_mR-Oq/images/msk-access-key.png?fit=max&auto=format&n=Kbwb2r5-pp_mR-Oq&q=85&s=30b49fecc91c95a39485a4982f9de197" alt="MSK Access key" width="1163" height="596" data-path="images/msk-access-key.png" />

4. In Console, enter the **Bootstrap server** and select **AWS IAM** as the authentication method
5. Choose one option:
   * Inherit credentials from environment variables, or
   * Enter the **Access Key** and **Secret Key**

<img src="https://mintcdn.com/conduktor/23R4f9CHmZAh-xV6/images/msk-with-iam.png?fit=max&auto=format&n=23R4f9CHmZAh-xV6&q=85&s=f20b234c17a5292941847a3bf749e065" alt="Console config with IAM" width="2300" height="1939" data-path="images/msk-with-iam.png" />

## Connect to a Cloudera cluster

<Info>
  These instructions use **SASL\_SSL** protocol with **PLAIN** mechanism.
</Info>

1. Create a workload user with **ownership of the Data Hub cluster**. Note the username and password:

<img src="https://mintcdn.com/conduktor/dKeHsjTOLvuHVG-Z/images/cloudera-user-management.png?fit=max&auto=format&n=dKeHsjTOLvuHVG-Z&q=85&s=98b0618b40f5b268d7937fdbe386c1f9" alt="cloudera-user-management" width="2704" height="1472" data-path="images/cloudera-user-management.png" />

2. Download certificates from Cloudera:

<img src="https://mintcdn.com/conduktor/YlJn6qrEZm6kp3UE/images/getting_certs_from_cloudera.png?fit=max&auto=format&n=YlJn6qrEZm6kp3UE&q=85&s=115d73487427d749bc3355150f928744" alt="getting_certs_from_cloudera" width="2958" height="1412" data-path="images/getting_certs_from_cloudera.png" />

3. Convert CRT certificates to JKS format using Java keytool:

```bash theme={null}
keytool -import -keystore zeke-test2-cdp-env.jks -alias zeke-test2-cdp-env -file zeke-test2-cdp-env.crt
```

4. In Cloudera, open firewalls for Kafka brokers and Schema Registry

5. In Console, go to **Clusters**, select the Cloudera cluster, and upload the certificates

6. Configure the cluster using the workload username and password from step 1:

<img src="https://mintcdn.com/conduktor/dKeHsjTOLvuHVG-Z/images/cloudera-console-setup.png?fit=max&auto=format&n=dKeHsjTOLvuHVG-Z&q=85&s=47714178d09ba5fdc9c01c97c70eebcc" alt="adding cloudera to console" width="759" height="630" data-path="images/cloudera-console-setup.png" />

[Automated setup example](https://github.com/conduktor/conduktor-cloudera-quickstart-demo?tab=readme-ov-file#cloudera--conduktor) <Icon icon="up-right-from-square" />

## Connect to a Google Cloud cluster

Connect to Google Cloud Managed Service for Apache Kafka using **SASL\_SSL** protocol with **PLAIN** mechanism.

### Use a service account

[View Google Cloud documentation](https://cloud.google.com/managed-service-for-apache-kafka/docs/authentication-kafka#sasl-plain) <Icon icon="up-right-from-square" />

### Use an access token

1. Get an access token:

```bash theme={null}
gcloud auth login --no-launch-browser
gcloud auth print-access-token
```

2. Use the token with these parameters:

```bash theme={null}
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="PRINCIPAL_EMAIL_ADDRESS" \
password="ACCESS_TOKEN_VALUE";
```

Managed Service for Apache Kafka verifies that:

* The access token is valid and not expired
* The username matches the principal email associated with the access token
* The principal has the `managedkafka.clusters.connect` permission (included in `roles/managedkafka.client`)

## Related resources

* [Interactive cluster configuration guide](https://conduktor.navattic.com/cluster-configuration) <Icon icon="up-right-from-square" />
* [Feedback and feature requests](https://conduktor.io/roadmap) <Icon icon="up-right-from-square" />
