Integraties

OVHcloud

OVHcloud integratie configureren

Tidal Control's OVHcloud integratie monitort de beveiligingsconfiguratie van je account voor compliance doeleinden. De integratie gebruikt een OAuth2 service account (client credentials flow) om te authenticeren tegen de OVHcloud v1- en v2-API's.

Wat deze integratie monitort:

  • IAM users (sub-users): Inventaris van account-identiteiten
  • IAM groups: Groepslidmaatschap
  • IAM policies: Configuratie van toegangsbeleid
  • Legacy API applications en credentials: Oudere API-toegang
  • OAuth2 service accounts: Inventaris van service-accounts
  • Public Cloud projects: Projectinventaris
  • Cloud project users: Gebruikers per project
  • SSH keys: Inventaris van cloud SSH-credentials
  • Cloud instances: Compute-inventaris
  • Managed databases: Databaseservices
  • KMS resources: Inventaris van de Key Management Service

Vereisten:

  • Super User rol in Tidal Control
  • OVHcloud account met toegang tot de API-console en IAM
  • Het EU-endpoint (https://api.eu.ovhcloud.com) — momenteel de enige ondersteunde regio
Info

Security groups zijn niet inbegrepen. OVHcloud security groups zijn alleen beschikbaar via de OpenStack API, niet via de OVHcloud REST API, dus de connector monitort ze niet.

Configuratie stappenplan

Wat gaan we doen: We maken een OAuth2 service account aan, kopiëren de identity URN, maken een IAM-policy met read-only toegang, en voegen daarna de verbinding toe in Tidal Control.

Configuratie stappen:

  1. OAuth2 client (service account) aanmaken
  2. De identity URN van het service account kopiëren
  3. Een IAM-policy aanmaken
  4. Integratie configureren in Tidal Control

Stap 1: OAuth2 client (service account) aanmaken

Voer in de OVHcloud Manager API-console uit:

POST /me/api/oauth2/client
{
  "callbackUrls": [],
  "flow": "CLIENT_CREDENTIALS",
  "name": "tidal-control",
  "description": "Tidal Control security compliance connector"
}

Sla de teruggegeven clientId en clientSecret op.

Alternatief: ga naar Account & Billing → My Account → My identities → Service accounts → Create.

Warning

Sla de client secret direct op. De clientSecret wordt slechts één keer getoond. Als je deze kwijtraakt, maak dan een nieuwe OAuth2 client aan.

Stap 2: De identity URN van het service account kopiëren

Roep na het aanmaken van de client aan:

GET /me/api/oauth2/client/{clientId}

Kopieer het identity-veld — dit ziet eruit als:

urn:v1:eu:identity:credentialOAuth2:{nicHandle}/EU.xxxxxxxxxxxxxxxx

Je nicHandle staat in het menu rechtsboven in de OVHcloud Manager (bijv. hw53544-ovh).

Stap 3: Een IAM-policy aanmaken

Maak een read-only IAM-policy voor het service account. Dit kan via IAM → Policies → Create a policy in de Manager, of via de API.

Warning

Gebruik expliciete resource-URN's — geen wildcard. Het gebruik van urn:v1:eu:resource:*:* faalt met een fout zoals "a policy can't target subusers of another account", omdat de wildcard uitbreidt naar resources van elk account dat aan het hoofdaccount is gekoppeld. Som elke resource in plaats daarvan expliciet op.

Resources — voeg één regel toe per resourcetype dat je hebt:

ResourcetypeURN-formaat
Account (voor me/* en iam/* endpoints)urn:v1:eu:resource:account:{nicHandle}
Cloud project (één per project)urn:v1:eu:resource:publicCloudProject:{projectId}
KMS (één per resource)urn:v1:eu:resource:okms:{kmsId}

Toegestane acties — geef precies deze leesacties. Let op: cloud-project-acties gebruiken het publicCloudProject:apiovh:-prefix, niet account:apiovh:cloud/project/:

DoelActie
IAM sub-usersaccount:apiovh:me/identity/user/get
IAM groupsaccount:apiovh:me/identity/group/get
Legacy API applicationsaccount:apiovh:me/api/application/get
Legacy API credentialsaccount:apiovh:me/api/credential/get
Service accounts (OAuth2 clients)account:apiovh:me/api/oauth2/client/get
IAM policiesaccount:apiovh:iam/policy/get
Public Cloud projectspublicCloudProject:apiovh:get
Cloud project userspublicCloudProject:apiovh:user/get
SSH keyspublicCloudProject:apiovh:sshkey/get
Cloud instancespublicCloudProject:apiovh:instance/get
Managed databasespublicCloudProject:apiovh:database/service/get
KMS resourcesokms:apiovh:resource/get

De policy aanmaken via de API:

# Haal eerst een token op
TOKEN=$(curl -s -X POST https://www.ovh.com/auth/oauth2/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials&scope=all" | jq -r '.access_token')

# Maak de IAM-policy aan
curl -s -X POST https://api.eu.ovhcloud.com/v2/iam/policy \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "tidal-control",
    "description": "Tidal Control read-only access",
    "identities": ["urn:v1:eu:identity:credentialOAuth2:{nicHandle}/EU.xxxxxxxxxxxxxxxx"],
    "resources": [
      "urn:v1:eu:resource:account:{nicHandle}",
      "urn:v1:eu:resource:publicCloudProject:{projectId}",
      "urn:v1:eu:resource:okms:{kmsId}"
    ],
    "permissions": {
      "allow": [
        {"action": "account:apiovh:me/identity/user/get"},
        {"action": "account:apiovh:me/identity/group/get"},
        {"action": "account:apiovh:me/api/application/get"},
        {"action": "account:apiovh:me/api/credential/get"},
        {"action": "account:apiovh:me/api/oauth2/client/get"},
        {"action": "account:apiovh:iam/policy/get"},
        {"action": "publicCloudProject:apiovh:get"},
        {"action": "publicCloudProject:apiovh:user/get"},
        {"action": "publicCloudProject:apiovh:sshkey/get"},
        {"action": "publicCloudProject:apiovh:instance/get"},
        {"action": "publicCloudProject:apiovh:database/service/get"},
        {"action": "okms:apiovh:resource/get"}
      ]
    }
  }'

Vervang {nicHandle}, {projectId}, {kmsId} en de identity URN door je eigen waarden. Voeg één resources-regel toe per cloud project en per KMS-resource.

Stap 4: Integratie configureren in Tidal Control

  • Ga naar Settings → Integrations in Tidal Control
  • Klik op het plus-icoon naast OVHcloud
  • Vul de configuratie in:
    • Name: Een beschrijvende naam, bijv. OVHcloud
    • Client ID: De clientId uit stap 1 (bijv. EU.xxxxxxxxxxxxxxxx)
    • Client Secret: De clientSecret uit stap 1
  • Klik op "Create" om de integratie op te slaan

Configuratie velden uitgelegd

Name:

  • Een beschrijvende naam voor deze verbinding
  • Bijvoorbeeld: OVHcloud, OVHcloud Productie

Client ID:

  • De clientId van het OAuth2 service account uit stap 1
  • Bijvoorbeeld: EU.xxxxxxxxxxxxxxxx

Client Secret:

  • De clientSecret van het OAuth2 service account
  • Wordt slechts één keer getoond bij aanmaken — houd deze veilig
Info

Hoe authenticatie werkt. De connector vraagt een token op bij https://www.ovh.com/auth/oauth2/token met HTTP Basic auth (Authorization: Basic base64(clientId:clientSecret)) en grant_type=client_credentials&scope=all, en roept vervolgens de EU API-base https://api.eu.ovhcloud.com aan.

Verificatie

Controleer integratie status:

  • Settings → Integrations toont "Connected" status voor OVHcloud
  • OVHcloud tests zijn beschikbaar in de Tests sectie
  • Test refresh levert resultaten zonder authenticatiefouten

Aanvullende actienamen vinden

Als er in de toekomst meer OVHcloud-endpoints gedekt moeten worden, kan de volledige lijst met IAM-actienamen worden opgehaald via de IAM-reference-API:

curl -s -H "Authorization: Bearer $TOKEN" \
  "https://api.eu.ovhcloud.com/v2/iam/reference/action?resourceType=publicCloudProject" \
  | jq '.[].action'

Gebruik resourceType=account voor me/*-endpoints en resourceType=okms voor KMS.

Veelvoorkomende problemen

"invalid identity ... a policy can't target subusers of another account"

  • Je gebruikte de wildcard-resource urn:v1:eu:resource:*:*
  • Vervang deze door expliciete resource-URN's (zie stap 3)

"unknown action"-fouten

  • Een cloud-project-actie gebruikte het verkeerde prefix
  • Cloud-project-acties moeten publicCloudProject:apiovh: gebruiken (bijv. publicCloudProject:apiovh:instance/get), niet account:apiovh:cloud/project/...

Authenticatie mislukt

  • Controleer of de Client ID en Client Secret correct zijn en of de OAuth2 client de CLIENT_CREDENTIALS-flow gebruikt
  • Controleer of je het EU-account gebruikt (https://api.eu.ovhcloud.com)

Tests tonen geen data voor bepaalde resourcetypen

  • Controleer of de IAM-policy de bijbehorende actie én een expliciete resource-URN voor die resource bevat

Kom je er nog niet uit?

Stuur een e-mail naar support@tidalcontrol.com, en wij nemen zo snel mogelijk contact op.

Info

Support info verzamelen: Noteer welke browser je gebruikt, exacte foutmeldingen, en welke stappen je al geprobeerd hebt. Dit versnelt de oplossing aanzienlijk.

Vorige
Neon