Creazione o aggiornamento del gateway o della distribuzione non riusciti a causa di criteri IAM mancanti o risorse correlate inaccessibili
Scopri come risolvere gli errori di creazione e aggiornamento del gateway causati da criteri IAM mancanti o risorse correlate inaccessibili durante l'utilizzo del servizio Gateway API.
Una richiesta di creazione o aggiornamento di un gateway o di una distribuzione può non riuscire anche quando il corpo della richiesta è valido. L'errore può verificarsi perché il chiamante, il gateway o una risorsa di riferimento non soddisfa i prerequisiti di tenancy, compartimento, tag o risorsa correlata.
Prima della risoluzione dei problemi
Prima di aggiornare i criteri o le risorse correlate, esaminare gli argomenti riportati di seguito.
Sintomi problema
Potresti vedere uno o più dei seguenti sintomi:
-
La creazione o l'aggiornamento del gateway non riesce anche se il corpo della richiesta è valido.
-
La creazione o l'aggiornamento della distribuzione non riesce anche se il gateway di destinazione esiste.
-
La risposta include
NotAuthorizedOrNotFound. -
La risposta include
RelatedResourceNotAuthorizedOrNotFound. -
Il chiamante dispone di alcune autorizzazioni del gateway API, ma l'operazione continua a non riuscire.
-
La richiesta utilizza condizioni IAM basate su tag e l'autorizzazione non riesce ancora.
Cause possibili
Le operazioni di creazione e aggiornamento possono richiedere più criteri che consentono l'accesso alle risorse del gateway API. Il chiamante deve inoltre disporre dell'accesso a ogni risorsa correlata utilizzata dalla richiesta.
Le cause più comuni sono i seguenti:
-
Il chiamante non dispone di
manage api-gateway-familynel compartimento che contiene il gateway o la distribuzione. -
Il chiamante non dispone di
manage virtual-network-familynel compartimento che contiene la subnet o le risorse di rete correlate. -
La distribuzione utilizza una funzione, ad esempio funzioni, certificati, autorità di certificazione o segreti vault, ma manca il criterio specifico della funzione richiesto.
-
La richiesta fa riferimento a una risorsa in un compartimento che non rientra nell'ambito del criterio.
-
Una condizione IAM basata su tag non corrisponde alla risorsa di destinazione o alla risorsa correlata.
-
La richiesta utilizza un OCID (Oracle Cloud Identifier) errato per il gateway, la subnet, il certificato, il segreto o un'altra risorsa correlata.
Rivedi criteri obbligatori
Iniziare confermando che il chiamante dispone dei criteri di base applicabili allo scenario di distribuzione backend HTTP più comune.
Per i gateway e le distribuzioni che utilizzano servizi backend HTTP, il chiamante in genere richiede i criteri riportati di seguito.
Allow group <group-name> to manage api-gateway-family in compartment <apigw-compartment>
Allow group <group-name> to manage virtual-network-family in compartment <network-compartment>
Queste politiche riguardano solo il caso comune. Se il gateway o la distribuzione utilizza funzioni aggiuntive, aggiungere il criterio corrispondente a ciascuna funzione.
Utilizzare i criteri specifici delle funzioni riportati di seguito come punto di partenza.
-
Per una distribuzione che utilizza OCI Functions come servizio backend, concedere l'accesso alle risorse delle funzioni:
Allow group <group-name> to use functions-family in compartment <functions-compartment> -
Per un dominio personalizzato che utilizza un certificato del servizio Certificati, concedere l'accesso alle associazioni dei certificati:
Allow group <group-name> to manage certificate-associations in compartment <apigw-compartment> -
Per i bundle CA (Custom Certificate Authority) o CA in un truststore del gateway, concedere l'accesso alle risorse dell'autorità di certificazione:
Allow group <group-name> to manage certificate-authority-family in compartment <apigw-compartment> -
Per le credenziali response-cache o authentication-provider memorizzate nei vault nel servizio Vault, creare un gruppo dinamico per il gateway e concedere l'accesso al gateway per leggere il bundle di segreti:
allow dynamic-group <dynamic-group-name> to read secret-bundles in compartment <secret-compartment> -
Per accedere a un segreto specifico, utilizzare un criterio che limita l'accesso a tale OCID segreto:
allow dynamic-group <dynamic-group-name> to read secret-bundles in compartment <secret-compartment> where target.secret.id='<secret_ocid>'
Rivedere la risposta agli errori
Utilizzare la risposta non riuscita per identificare l'operazione non riuscita e l'errore di autorizzazione restituito.
Registrare i seguenti campi di risposta:
-
operation_name -
status -
code -
opc-request-id
Per questo problema, una tipica risposta non riuscita include i seguenti valori:
-
operation_name: create_deployment -
status: 404 -
code: NotAuthorizedOrNotFound
Conservare il valore opc-request-id in modo da poter correlare la richiesta non riuscita con i dati di diagnostica e supporto.
Rivedi ambito criteri IAM
Abbinare l'operazione non riuscita all'ambito dei criteri richiesto dall'operazione.
Per le operazioni di creazione o aggiornamento del gateway, verificare i requisiti riportati di seguito.
-
Il chiamante può gestire le risorse del gateway API nel compartimento che contiene il gateway.
-
Il chiamante può gestire le risorse di rete nel compartimento che contiene la subnet e le risorse di rete correlate.
Per le operazioni di creazione o aggiornamento della distribuzione, verificare i requisiti riportati di seguito.
-
Il chiamante può gestire le risorse del gateway API nel compartimento che contiene la distribuzione.
-
Il chiamante dispone di ogni criterio specifico della funzione richiesto dalla configurazione della distribuzione.
Se la richiesta utilizza un dominio personalizzato, un bundle CA, un segreto vault o un backend Functions, verificare il criterio specifico della funzione corrispondente.
Rivedi compartimenti e risorse correlate
Una richiesta può non riuscire anche quando esiste il criterio gateway API principale. L'errore può verificarsi quando manca una risorsa correlata, non è accessibile o non rientra nell'ambito del criterio.
Verificare che il chiamante possa accedere alle risorse riportate di seguito, se applicabile.
-
Gateway di destinazione.
-
Compartimento di distribuzione di destinazione.
-
Subnet a cui fa riferimento il gateway.
-
Qualsiasi risorsa certificato.
-
Qualsiasi bundle CA o risorsa CA.
-
Qualsiasi servizio back-end Functions.
-
Qualsiasi segreto vault richiesto dal gateway o dal flusso di distribuzione.
Verificare che ogni risorsa si trovi in un compartimento coperto dal criterio pertinente.
Rivedi condizioni criteri basate su tag
Se la tenancy utilizza condizioni IAM basate su tag, verificare che la condizione tag corrisponda al chiamante e a ogni risorsa di destinazione.
I punti di errore tipici relativi ai tag includono i seguenti problemi:
-
Il tag del gruppo di principal della richiesta non corrisponde al tag della risorsa di destinazione.
-
Il valore della tag risorsa di destinazione non corrisponde all'espressione del criterio.
-
La risorsa esiste, ma la condizione tag restituisce false.
-
Una tag definita obbligatoria risulta mancante in una risorsa correlata.
Non interrompere dopo aver confermato l'esistenza di una risorsa. Verificare che anche le tag risorsa soddisfino il criterio.
Rivedi configurazione rete gateway
Se l'operazione non riuscita crea o aggiorna un gateway, confermare che il gateway fa riferimento alla subnet e al tipo di endpoint previsti.
Rivedere i campi della richiesta riportati di seguito.
-
gateway.subnetId -
gateway.endpointType
Verificare i seguenti requisiti di rete:
-
La subnet esiste.
-
La subnet è regionale.
-
La subnet si trova nel compartimento previsto.
-
Il tipo di endpoint corrisponde alla progettazione pubblica o privata prevista.
-
Il chiamante è autorizzato a utilizzare la subnet e le risorse di rete correlate.
Convalida contesto richiesta
Per un gateway esistente, ottenere direttamente i dettagli del gateway:
oci api-gateway gateway get --gateway-id <gateway_ocid>
Utilizzare la risposta per verificare i seguenti valori:
-
Il gateway esiste.
-
Il gateway si trova nel compartimento previsto.
-
Il gateway utilizza la subnet prevista.
-
Il gateway utilizza il tipo di endpoint previsto.
Se l'operazione non riuscita crea una distribuzione, verificare che la richiesta sia destinata al gateway e al compartimento previsti.
Correggi accesso a criteri e risorse
Applicare la correzione corrispondente all'autorizzazione non riuscita o al controllo dell'accesso alle risorse.
Utilizzare le correzioni riportate di seguito come guida.
-
Aggiungere o correggere
manage api-gateway-familyse il chiamante non dispone delle autorizzazioni delle risorse del gateway API. -
Aggiungere o correggere
manage virtual-network-familyse il chiamante non dispone delle autorizzazioni di subnet o di rete. -
Aggiungere o correggere
use functions-familyse la distribuzione utilizza Functions. -
Aggiungere o correggere
manage certificate-associationsse il gateway utilizza associazioni di certificati. -
Aggiungere o correggere
manage certificate-authority-familyse il gateway utilizza bundle CA o CA personalizzati. -
Creare o correggere il gruppo dinamico del gateway e il criterio
read secret-bundlesse il gateway deve leggere i segreti. -
Correggere l'ambito del compartimento se una risorsa non è compresa nel compartimento consentito.
-
Correggere i valori delle tag o la condizione IAM se l'autorizzazione basata su tag non riesce.
-
Correggere qualsiasi OCID errato nella richiesta.
Lista di controllo delle cause principali comuni
Prima di riprovare la richiesta, confermare quanto segue:
-
Il chiamante può gestire le risorse del gateway API.
-
Il chiamante può gestire le risorse di rete.
-
Il chiamante dispone del criterio specifico della funzione richiesto dalla richiesta.
-
Qualsiasi gruppo dinamico gateway dispone dell'accesso segreto di cui ha bisogno.
-
Esistono tutte le risorse di riferimento.
-
Tutte le risorse a cui viene fatto riferimento si trovano nei compartimenti previsti.
-
Tutte le condizioni basate su tag corrispondono.
-
La richiesta utilizza gli OCID corretti.
Verifica la risoluzione
Dopo aver corretto i criteri IAM, le condizioni di tag o l'accesso alle risorse correlate, riprovare a eseguire lo stesso gateway o la stessa operazione di distribuzione.
Verificare i risultati riportati di seguito.
-
L'operazione non restituisce più
NotAuthorizedOrNotFoundoRelatedResourceNotAuthorizedOrNotFound. -
Il gateway o la distribuzione passa allo stato previsto del ciclo di vita.
-
La richiesta non riesce più durante l'autorizzazione o la convalida della risorsa correlata.