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
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:
- OAuth2 client (service account) aanmaken
- De identity URN van het service account kopiëren
- Een IAM-policy aanmaken
- 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.
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.
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:
| Resourcetype | URN-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/:
| Doel | Actie |
|---|---|
| IAM sub-users | account:apiovh:me/identity/user/get |
| IAM groups | account:apiovh:me/identity/group/get |
| Legacy API applications | account:apiovh:me/api/application/get |
| Legacy API credentials | account:apiovh:me/api/credential/get |
| Service accounts (OAuth2 clients) | account:apiovh:me/api/oauth2/client/get |
| IAM policies | account:apiovh:iam/policy/get |
| Public Cloud projects | publicCloudProject:apiovh:get |
| Cloud project users | publicCloudProject:apiovh:user/get |
| SSH keys | publicCloudProject:apiovh:sshkey/get |
| Cloud instances | publicCloudProject:apiovh:instance/get |
| Managed databases | publicCloudProject:apiovh:database/service/get |
| KMS resources | okms: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
clientIduit stap 1 (bijv.EU.xxxxxxxxxxxxxxxx) - Client Secret: De
clientSecretuit stap 1
- Name: Een beschrijvende naam, bijv.
- 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
clientIdvan het OAuth2 service account uit stap 1 - Bijvoorbeeld:
EU.xxxxxxxxxxxxxxxx
Client Secret:
- De
clientSecretvan het OAuth2 service account - Wordt slechts één keer getoond bij aanmaken — houd deze veilig
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), nietaccount: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.
Support info verzamelen: Noteer welke browser je gebruikt, exacte foutmeldingen, en welke stappen je al geprobeerd hebt. Dit versnelt de oplossing aanzienlijk.
- Vorige
- Neon
- Volgende
- Aan de slag met gebruikersbeheer