keenauth_management_client
La risorsa keenauth_management_client imposta l'accesso all'API di gestione di un'applicazione con app_type = "management": le autorizzazioni e la lista IP consentiti con cui il client machine-to-machine dell'applicazione può chiamare l'API di gestione. Un'applicazione ha al massimo un record, identificato dall'ID dell'applicazione.
Privilegio minimo
Questa risorsa concede l'accesso all'API di gestione. Mantienila ristretta:
- Elenca solo le autorizzazioni che l'automazione richiede, ad esempio
users:readinvece di ogni autorizzazioneusers:*. - Limita
allowed_cidrsalle reti in cui viene eseguito il client. - Usa un'applicazione di gestione per ogni automazione, così ciascuna può essere ristretta o rimossa in modo indipendente.
La chiave API che applica la configurazione può concedere solo autorizzazioni e reti che possiede essa stessa.
resource "keenauth_application" "ops" {
key = "ops-automation"
name = "Ops automation"
app_type = "management"
party = "first_party"
}
resource "keenauth_management_client" "ops" {
application_id = keenauth_application.ops.id
permissions = ["users:read", "applications:read"]
allowed_cidrs = ["203.0.113.0/24"]
}
Chiavi di firma
La risorsa non contiene alcun segreto né alcuna chiave. Registra la chiave pubblica dell'applicazione con POST /v1/applications/{application_id}/credentials (type: public_key) nella CLI o nella dashboard. L'API rifiuta jwks_uri e public_keys su questa risorsa.
allowed_cidrs nel piano
- Se ometti
allowed_cidrsalla creazione del record, l'API scrive la lista della chiave API che effettua la chiamata. Se la chiave non ha una lista, il client non ha alcuna restrizione IP. Il piano mostra(known after apply). - Una volta che il record esiste, omettere l'attributo mantiene il valore corrente. Rimuoverlo dalla configurazione non reimposta la lista, e una modifica fatta al di fuori della configurazione viene accettata senza differenze. Scrivi esplicitamente la lista per gestirla.
- Una lista vuota viene rifiutata in fase di piano, perché l'API trasforma
[]nella lista della chiave chiamante. Ometti invece l'attributo. - Scrivi ogni blocco in forma canonica: l'indirizzo di rete e IPv6 in minuscolo. Ad esempio scrivi
10.0.0.0/24, non10.0.0.5/24.
Errori
| Errore | Significato |
|---|---|
403 insufficient_permissions |
Solo una chiave API può gestire questi record; usa un provider configurato con api_key, non con client_id + private_key. Con una chiave API, una chiave con restrizioni non ha management-clients:read o management-clients:write. |
403 permission_escalation |
Il record avrebbe autorizzazioni o reti che la chiave API non possiede. |
404 in creazione |
L'applicazione non esiste nell'ambiente della chiave API. |
409 |
L'applicazione ha già un record. Importalo. |
422 su application_id |
L'applicazione non è di tipo management. |
412 |
Il record è cambiato dopo il piano. Non è stato modificato nulla; esegui di nuovo plan. |
Importazione
Importa tramite ID applicazione:
tofu import keenauth_management_client.ops app_01j9zq3v8c5m2x7k4t6r1n0b3d