# CockroachDB Cloud

> Verbind je CockroachDB Cloud-organisatie met Tidal Control via een API-sleutel van een serviceaccount, zodat compliancetests de configuratie uitlezen.

Source: https://tidalcontrol.com/nl/docs/integrations/cockroachdb

De CockroachDB Cloud-integratie van Tidal Control haalt bewijs over beveiliging en compliance op uit je CockroachDB Cloud-organisatie. De verbinding authenticeert met een API-sleutel die bij een serviceaccount hoort en dekt de clusterinventaris en dataresidentie, netwerkbeperkingen, beheerde back-ups, versleuteling, logexport en het auditlog van de organisatie.

## Wat deze integratie monitort

- **Clusters:** Plantype, cloudprovider, regio's en dataresidentie, actualiteit van de versie en verwijderbeveiliging
- **Databases en SQL-gebruikers:** De inventaris op elk cluster
- **Netwerk:** Vermeldingen op de IP-allowlist, of een reeks openstaat voor de hele wereld, en PrivateLink-endpointservices
- **Back-ups:** Of beheerde back-ups aanstaan, met welke frequentie en bewaartermijn
- **Versleuteling:** Door de klant beheerde sleutels per regio, op clusters in de Advanced-tier
- **Logexport:** Of clusterlogs bij een externe sink aankomen en of de aflevering gezond is
- **Toegang:** API-sleutels, serviceaccounts en rollen binnen de organisatie, inclusief overerving via SSO-groepen
- **Auditlog:** Wie wat heeft gewijzigd, en vanaf welk adres

## Vereisten

- De rol Super User in Tidal Control
- Een CockroachDB Cloud-organisatie
- Rechten om een serviceaccount aan te maken onder **Access Management**

> **info:**

**CockroachDB Cloud kent geen persoonlijke API-sleutel.** Alleen gebruikers kunnen inloggen op de console, en alleen serviceaccounts kunnen de API aanroepen. Elke API-sleutel hoort bij een serviceaccount, dus het aanmaken daarvan hoort bij de installatie.

## Rollen kiezen voor het serviceaccount

Een API-sleutel geldt voor één organisatie, dus een apart organisatie- of account-ID is niet nodig. Wat de sleutel mag lezen hangt volledig af van de rollen van het serviceaccount, en de juiste combinatie hangt ervan af of jouw organisatie de rol **Auditor** überhaupt aanbiedt.

<table>
<thead>
<tr><th>Rollen</th><th>Schrijfrechten</th><th>Dekking</th></tr>
</thead>
<tbody>
<tr><td><strong>Auditor + Cluster Developer</strong> (voorkeur)</td><td>Geen</td><td>Alles, inclusief het auditlog</td></tr>
<tr><td>Alleen <strong>Cluster Developer</strong></td><td>Geen</td><td>Alles behalve het auditlog</td></tr>
<tr><td><strong>Org Admin + Cluster Admin</strong></td><td>Ja, beide rollen kunnen wijzigen</td><td>Alles, inclusief het auditlog</td></tr>
</tbody>
</table>

De verdeling is het benoemen waard, want ze is niet voor de hand liggend: **Cluster Developer** dekt de clusterinventaris, databases en SQL-gebruikers, terwijl **Auditor** de back-ups, versleutelingssleutels, logexport, API-sleutels, serviceaccounts, rollen en het auditlog dekt. Geen van beide dekt alles alleen, en geen van beide kan iets wijzigen.

> **warning:**

**Auditor wordt niet in elke organisatie aangeboden.** De rol ontbreekt bij sommige organisaties in de rollenkiezer van de console, waardoor je hem niet kunt selecteren, niet op organisatie- en niet op clusterniveau. Ken in dat geval geen Org Admin toe om het gat te dichten. Gebruik alleen **Cluster Developer** en accepteer dat één test niets kan beoordelen, zoals hieronder uitgelegd.

### Als je Auditor niet kunt selecteren

Alleen Org Admin en Auditor mogen het auditlog van de organisatie lezen, dus zonder Auditor moet je kiezen welke afweging je prefereert:

- **Alleen Cluster Developer (aanbevolen).** De sleutel blijft alleen-lezen. Alles werkt, behalve **Auditlog bevat recente activiteit**, die faalt omdat er geen events opgehaald kunnen worden. Die fout is eerlijk: hij meldt dat het bewijs ontbreekt in plaats van te slagen zonder iets te hebben gecontroleerd.
- **Org Admin + Cluster Admin.** Dekt ook het auditlog, maar beide rollen kunnen je infrastructuur wijzigen, en het serviceaccount faalt dan met opzet op **Serviceaccounts zijn geen Org Admin**. Tidal Control zondert zijn eigen serviceaccount niet uit van die controle.

Een alleen-lezen compliancetool de mogelijkheid geven om productie te wijzigen is meestal de slechtere afweging, en daarom is alleen Cluster Developer de aanbeveling totdat Auditor voor jou beschikbaar komt.

## Stappenplan voor de configuratie

We maken een **serviceaccount** aan, genereren daarvoor een **API-sleutel** en voegen daarna de verbinding toe in Tidal Control.

**Configuratiestappen:**

1. **Maak een serviceaccount aan**
2. **Maak een API-sleutel aan**
3. **Configureer de integratie in Tidal Control**

## Stap 1: Maak een serviceaccount aan

- Log in op [cockroachlabs.cloud](https://cockroachlabs.cloud) en open **Access Management**
- Klik op het tabblad **Service Accounts** op **Create** en geef het account een naam, bijvoorbeeld `Tidal Control`
- Ken de rollen toe die je hierboven hebt gekozen, op organisatieniveau

## Stap 2: Maak een API-sleutel aan

- Open het serviceaccount dat je net hebt aangemaakt
- Klik op **Create API Key**
- **Kopieer het secret direct**: het wordt alleen in dat venster weergegeven

> **warning:**

**De sleutel wordt één keer weergegeven.** Sluit je het venster zonder te kopiëren, verwijder dan de sleutel en maak een nieuwe aan.

## Stap 3: Configureer de integratie in Tidal Control

- Ga naar **Instellingen → Integraties** in Tidal Control
- Klik op het **plusicoon** naast **CockroachDB Cloud**
- Vul de configuratie in:
  - **Naam:** Een beschrijvende naam, bijvoorbeeld `CockroachDB Cloud`
  - **API-sleutel:** Het secret uit stap 2
- Klik op **"Aanmaken"** om de integratie op te slaan

## Configuratievelden uitgelegd

Het configuratievenster vraagt om de volgende waarden:

**Naam:**
- Een beschrijvende naam voor deze verbinding
- Bijvoorbeeld: `CockroachDB Cloud`, `CockroachDB Productie`

**API-sleutel:**
- De API-sleutel van het serviceaccount uit stap 2
- Verplicht, en wordt als secret opgeslagen
- De sleutel identificeert zijn eigen organisatie, dus er is geen organisatieveld in te vullen

## Verificatie

De integratie werkt wanneer al het volgende waar is:

- Instellingen → Integraties toont CockroachDB Cloud onder **Geconfigureerde integraties**
- De CockroachDB-tests zijn beschikbaar in de sectie Tests
- Het verversen van tests levert resultaten zonder authenticatiefouten

## Veelgestelde vragen

**Heb ik een organisatie-ID nodig?**
Nee. Een API-sleutel geldt voor één CockroachDB Cloud-organisatie, dus de sleutel alleen is genoeg.

**Is Org Admin verplicht?**
Nee, en je kunt hem beter vermijden. Org Admin is voor geen enkel endpoint nodig, en een serviceaccount met die rol faalt op de controle dat serviceaccounts geen Org Admin zijn.

**Waarom leveren de tests over versleuteling, logexport en PrivateLink niets op?**
Door de klant beheerde sleutels, logexport en PrivateLink-endpointservices zijn functies van de Advanced-tier. Op een Basic- of Standard-cluster geven die endpoints geen data terug en wordt het cluster vastgelegd als niet geconfigureerd.

**Kan Tidal Control de data in mijn databases zien?**
Nee. De integratie leest de Cloud API, die configuratie en inventaris blootgeeft. Namen van databases en SQL-gebruikers worden opgesomd, nooit de inhoud van tabellen.

## Veelvoorkomende problemen

**"API Key is required"**
- Het veld is leeg, of de gekopieerde waarde is verloren. Maak een nieuwe sleutel aan op het serviceaccount

**De auditlogtest faalt zonder events**
- Het serviceaccount mist de rol Auditor. Voeg die toe, of accepteer de fout zoals hierboven beschreven

**De clusterinventaris is leeg terwijl andere controles werken**
- Het serviceaccount mist Cluster Developer. Voeg die toe op organisatieniveau

**Controles over back-ups, versleuteling of rollen leveren niets op**
- Die hebben Auditor nodig. Zonder die rol kunnen de onderliggende endpoints niet worden gelezen

### Kom je er niet uit?

Stuur een e-mail naar support@tidalcontrol.com, dan nemen we zo snel mogelijk contact met je op.

> **info:**

**Verzamel supportinformatie:** Noteer welke browser je gebruikt, de exacte foutmeldingen en welke stappen je al hebt geprobeerd. Dat versnelt de oplossing aanzienlijk.
