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

# Confluent Cloud

> Managed Kafka — users & access

<Tabs>
  <Tab title="Overview">
    Connect Confluent Cloud with a Cloud API key and secret to sync organization users and environments, and run access reviews. Read-only.

    <Info>
      **Read-only access.** DSALTA only reads data from this integration. It never creates, modifies, or deletes anything in your environment, and every remediation step is performed by your team directly in the third-party product.
    </Info>

    <Info>
      **What you'll see.** The Access page lists the **user accounts** of your Confluent Cloud organization with their name, email and the date they were created. Confluent's users endpoint exposes no role, so every user is shown as **Member**, with **(SSO)** added when Confluent reports that they sign in through single sign-on. Service accounts live on a separate endpoint and never appear. Confluent reports no account status or MFA state, so every user is shown as **Active** with MFA **Unknown**.
    </Info>

    <Note>
      **The key must be created under "My account" with Global scope.** A Service-account key starts with no role bindings and cannot read the user roster; a key scoped to a single Kafka cluster or resource cannot either. DSALTA rejects a key that returns no users at connect time.
    </Note>

    <Note>
      DSALTA collects this integration's data when you connect it — you can refresh it at any time with **Sync from integrations** on the **Integrations** page. The compliance checks below re-run once a day at 02:00 America/New\_York.
    </Note>

    ## What DSALTA reads

    DSALTA reads the Confluent Cloud user roster — names, emails, sign-in type and creation dates — which appears on your **Access** page; and your Confluent Cloud **environments**, which appear on your **Inventory** page with their Stream Governance package.

    It calls these Confluent Cloud endpoints:

    * `/iam/v2/users`
    * `/org/v2/environments`

    Every request is a read. DSALTA has no code path that creates, modifies, or deletes anything in your Confluent Cloud environment.

    ## Troubleshooting

    <AccordionGroup>
      <Accordion title="The connection is rejected">
        Wrong key or secret, a key that has been deleted, or a key created for a **Service account** or with a resource scope instead of **Global** — those return no users, and DSALTA refuses to connect on an empty roster. Create a new key under **My account** with **Global** scope, then connect again.
      </Accordion>

      <Accordion title="The Access page shows fewer users than the console">
        The key inherits the permissions of the user who created it. Create it as an **OrganizationAdmin** so that every user in the organization is visible, then disconnect and connect again. Note that disconnecting permanently deletes the data already collected from Confluent Cloud.
      </Accordion>
    </AccordionGroup>

    <AccordionGroup>
      <Accordion title="How do I check whether the connection is healthy?">
        Open **Integrations** in the DSALTA sidebar, stay on the **Connected** tab, and click **Manage** on the integration's card. Open the **Status** tab: it shows either **Connected and working properly** or **Connection issues detected**.

        Use the **Status** tab, not **Overview** — Overview always reports **Connected** regardless of the real state.
      </Accordion>

      <Accordion title="A check shows Failed and nothing changed on my side">
        On an integration-powered check, **Failed** normally means DSALTA was blocked rather than that you are non-compliant. Open the test, go to **Source Data**, and read the result code: **403** is a missing permission, **428** is a setting DSALTA still needs, **500** is a failure on DSALTA's side.

        A real compliance gap shows **207** and leaves the test looking **Completed**. See [Understanding Test Results](/guides/compliance/test-results).
      </Accordion>

      <Accordion title="Data looks out of date">
        Compliance checks re-run once a day at 02:00 America/New\_York. To refresh sooner, open **Integrations → Connected** and click **Sync from integrations** at the top right — it refreshes every connected integration at once.
      </Accordion>

      <Accordion title="How do I repair a broken connection?">
        There is no Reconnect, Repair or Refresh Token button. The only repair available is to disconnect and connect again.

        <Warning>
          **Disconnecting is destructive and cannot be undone.** DSALTA removes the access records, inventory, vulnerabilities, code changes, incidents and device records collected from this integration, and deletes the test results tied to the connection. Export anything you still need as audit evidence first — see [Integration errors](/troubleshooting/integration-errors).
        </Warning>
      </Accordion>

      <Accordion title="Configure scope will not let me change anything">
        That is expected. **Configure scope** is read-only — it shows what DSALTA is permitted to read, and has no Save action. To change what DSALTA can see, change the permissions on the credential in the third-party product, then disconnect and connect again.
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="How to connect">
    A Confluent Cloud API key and secret created under **My account** with **Global** scope. Read-only.

    **Before you begin**

    * A Confluent Cloud organization, and a user in it who can see all user accounts — the key inherits that user's permissions, so an **OrganizationAdmin** is the safe choice.

    You will need:

    | Field          | Where to find it                        | Example                                  |
    | -------------- | --------------------------------------- | ---------------------------------------- |
    | **API Key**    | **Administration → API keys → Add key** | Downloaded at creation                   |
    | **API Secret** | Same page                               | Unavailable after you click **Complete** |

    <Steps>
      <Step title="Start in DSALTA">
        Open **Integrations** in the DSALTA sidebar, find **Confluent Cloud**, and click **Connect** to open the connect panel.
      </Step>

      <Step title="Create a Cloud API key">
        Sign in to [confluent.cloud](https://confluent.cloud), expand the sidebar menu, choose **Administration → API keys** (or open the [API keys page](https://confluent.cloud/settings/api-keys) directly), and click **Add key**. Choose **My account**, not **Service account**, then choose **Global** as the scope.

        <Warning>
          **Pick "My account" and "Global".** A Service-account key starts role-less and cannot read the roster; a key scoped to a Kafka cluster, Schema Registry or another resource cannot either. Either choice connects to nothing and is rejected.
        </Warning>

        <Info>
          On the **API key download** page, click **Download API key** or copy both values. Confluent states that after you click **Complete** the API secret is no longer available; if you lose it, delete the key and create a new one.
        </Info>
      </Step>

      <Step title="Connect Confluent Cloud">
        Return to the connect panel, paste the API key and the API secret into their fields, and click **Connect**.
      </Step>
    </Steps>

    <Check>
      DSALTA validates the pair when you click **Connect**, by listing the organization's users — a pair that authenticates but returns no users is rejected with a message pointing you back to **My account** and **Global**. On success the integration moves to the **Connected** tab, and **Manage → Status** reads **Connected and working properly**. Checks begin reporting after the first sync.
    </Check>

    <Warning>
      **If the connection is rejected.** Wrong key or secret, a deleted key, or a key created for a Service account or with a resource scope.

      The on-screen message is generic — see [Connection error messages](/troubleshooting/connection-error-messages).
    </Warning>
  </Tab>

  <Tab title="Automated checks">
    Each check below re-runs once a day, at 02:00 America/New\_York, while this integration is connected. Click any check for step-by-step remediation guidance.

    | Check                                                                                                                          | Severity | What it verifies                                                                           |
    | ------------------------------------------------------------------------------------------------------------------------------ | -------- | ------------------------------------------------------------------------------------------ |
    | [User access to Critical System should be valid](/integrations/confluent-cloud/user-access-to-critical-system-should-be-valid) | Info     | Checks that everyone with Confluent Cloud access is an active employee on the People page. |
    | [Offboarded users should not have active access](/integrations/confluent-cloud/offboarded-users-should-not-have-active-access) | High     | Checks that offboarded employees no longer have active Confluent Cloud access.             |
  </Tab>

  <Tab title="Useful links">
    | Topic       | Link                                                                                                                                                |
    | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Setup       | [Manage API keys](https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/service-accounts/api-keys/manage-api-keys.html) |
    | Remediation | [User accounts in Confluent Cloud](https://docs.confluent.io/cloud/current/security/access-control/identity/user-accounts/overview.html)            |
    | General     | [Confluent Cloud console](https://confluent.cloud)                                                                                                  |
    | DSALTA      | [Connection error messages](/troubleshooting/connection-error-messages)                                                                             |
  </Tab>
</Tabs>
