Configurazione dell'ambiente di sviluppo
Questo documento descrive come configurare l'ambiente di sviluppo API Gateway.
Prerequisiti
Prima di poter creare un'API in API Gateway, assicurati di disporre di:
Hai creato un progetto Google Cloud in cui disponi del ruolo Editor o Proprietario. Dopo il deployment iniziale, puoi concedere il ruolo Editor di Service Config più restrittivo a un utente, a un gruppo o a un account di servizio.
Preparare Google Cloud CLI come descritto di seguito.
Avere attivato i servizi Google richiesti come descritto di seguito.
Configura l'account di servizio utilizzato per creare le configurazioni API come descritto di seguito.
Preparazione di Google Cloud CLI per il deployment
Per preparare gcloud
al deployment:
- Installa e inizializza la gcloud CLI.
- Aggiorna la gcloud CLI:
gcloud components update
- Assicurati che gcloud CLI sia autorizzata ad accedere ai tuoi dati e servizi:
gcloud auth login
Si apre una nuova scheda del browser e ti viene chiesto di scegliere un account.
- Imposta il progetto predefinito. Sostituisci PROJECT_ID con il tuo ID progetto Google Cloud:
gcloud config set project PROJECT_ID
Attivazione dei servizi richiesti
API Gateway richiede l'abilitazione dei seguenti servizi Google:
Nome | Titolo |
---|---|
apigateway.googleapis.com |
API API Gateway |
servicemanagement.googleapis.com |
API Service Management |
servicecontrol.googleapis.com |
API Service Control |
Per verificare che i servizi richiesti siano abilitati:
gcloud services list
Se non vedi i servizi richiesti nell'elenco, attivali:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
Per ulteriori informazioni sui servizi gcloud
, consulta
Servizi gcloud
.
Configurazione di un account di servizio
Una configurazione API di cui è stato eseguito il deployment su un gateway viene eseguita con le autorizzazioni associate all'account di servizio del gateway.
Come best practice, crea un account di servizio separato nello stesso progetto che utilizzi per API Gateway. Poi, assegna all'account di servizio solo le autorizzazioni necessarie per accedere al servizio di backend. In questo modo, limiti le autorizzazioni associate alla configurazione dell'API.
Per API Gateway, l'utente che crea o aggiorna una configurazione o un gateway API richiede l'autorizzazione iam.serviceAccounts.actAs
sull'oggetto account di servizio. Questa autorizzazione è inclusa nel ruolo Utente account di servizio.
Il ruolo e l'autorizzazione possono essere aggiunti all'account di servizio per l'utente con il seguente comando:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member user:USER_EMAIL \ --role roles/iam.serviceAccountUser
dove:
- SERVICE_ACCOUNT_EMAIL è l'indirizzo email dell'account di servizio, nel formato
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
. - USER_EMAIL è l'indirizzo email dell'utente.
Ad esempio:
gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member user:myemail@email.com \ --role roles/iam.serviceAccountUser
Inoltre, l'account di servizio del gateway richiede le autorizzazioni necessarie per accedere al servizio di backend. Ad esempio:
- Per un backend di Cloud Function, all'account di servizio deve essere assegnato il ruolo Invoker di Cloud Functions.
- Per un backend Cloud Run, all'account di servizio deve essere assegnato il ruolo Invoker Cloud Run.
- Per un backend App Engine, devi seguire i passaggi descritti in Configurare l'accesso IAP per concedere all'account di servizio associato al tuo gateway il ruolo Utente applicazione web con protezione IAP.
Se limiti le autorizzazioni associate alla configurazione dell'API, puoi proteggere meglio i tuoi sistemi di backend. Per ulteriori informazioni, consulta la documentazione di Identity and Access Management (IAM).
Dopo aver creato l'account di servizio, utilizza l'opzione --backend-auth-service-account
per specificare l'indirizzo email dell'account di servizio quando crei una configurazione API:
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=API_DEFINITION --project=PROJECT_ID \ --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Per saperne di più sulla creazione delle configurazioni API, consulta Creare un'API.
Utilizzo di un account di servizio predefinito
Alcuni prodotti Google Cloud definiscono un account di servizio predefinito. Ad esempio, se utilizzi Compute Engine e hai attivato l'API Compute Engine per il tuo progetto, viene creato un account di servizio Compute Engine predefinito. L'account di servizio predefinito è identificabile dal suo indirizzo email:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Se assegni le autorizzazioni necessarie all'account di servizio predefinito, puoi omettere l'opzione --backend-auth-service-account
quando crei una configurazione API:
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=API_DEFINITION --project=PROJECT_ID
Per saperne di più, consulta Utilizzare l'account di servizio predefinito di Compute Engine.
Utilizzo di OpenID Connect
Le richieste da API Gateway ai servizi di backend possono utilizzare l'autenticazione. Queste richieste sono protette utilizzando token OpenID Connect (OIDC) firmati dal service account del gateway. Devi verificare che il servizio di backend sia configurato correttamente per accettare i token OIDC per l'autenticazione e l'autorizzazione. Le funzioni Cloud Run, Cloud Run e Identity Aware Proxy (IAP) forniscono questa opzione.