Configurazione dell'ambiente di sviluppo

Questo documento descrive come configurare l'ambiente di sviluppo di API Gateway.

Prerequisiti

Prima di poter creare un'API su API Gateway, assicurati di disporre di:

  • È stato creato un progetto Google Cloud in cui disponi del ruolo Editor o Proprietario. Dopo il deployment iniziale, puoi concedere il ruolo Editor configurazione servizio più restrittivo a un utente, un gruppo o un account di servizio.

  • È stata preparata Google Cloud CLI come descritto di seguito.

  • Abilitare 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 per il deployment:

  1. Installa e inizializza gcloud CLI.
  2. Aggiorna gcloud CLI:
    gcloud components update
  3. Assicurati che gcloud CLI sia autorizzato 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.

  4. Imposta il progetto predefinito. Sostituisci PROJECT_ID con l'ID del tuo 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 i servizi richiesti non sono elencati, attivali:

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Per ulteriori informazioni sui servizi gcloud, vedi 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. quindi assegna all'account di servizio solo le autorizzazioni necessarie per accedere al servizio di backend. In questo modo, limiti le autorizzazioni associate alla configurazione API.

Per API Gateway, l'utente che crea o aggiorna una configurazione API o un gateway richiede l'autorizzazione iam.serviceAccounts.actAs per l'oggetto dell'account di servizio. Questa autorizzazione è inclusa nel ruolo Utente account di servizio.

Puoi aggiungere il ruolo e l'autorizzazione 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 gateway richiede le autorizzazioni necessarie per accedere al servizio di backend. Ad esempio:

  • Per il backend di una Cloud Function, all'account di servizio deve essere assegnato il ruolo di Invoker di Cloud Functions.
  • Per un backend di Cloud Run, all'account di servizio deve essere assegnato il ruolo di Invoker di Cloud Run.
  • Per un backend App Engine, devi seguire la procedura descritta in Configurazione dell'accesso IAP per concedere all'account di servizio associato al gateway il ruolo Utente applicazione web con protezione IAP.

Se limiti le autorizzazioni associate alla configurazione 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

Consulta la sezione Creazione di un'API per saperne di più sulla creazione di configurazioni 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 abilitato 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 durante la creazione di 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 Utilizzo dell'account di servizio predefinito di Compute Engine.

Utilizzo di OpenID Connect

Le richieste da API Gateway ai servizi di backend potrebbero utilizzare l'autenticazione. Queste richieste sono protette mediante token OpenID Connect (OIDC) firmati dall'account di servizio del gateway. Devi verificare che il tuo servizio di backend sia configurato correttamente per accettare i token OIDC per l'autenticazione e l'autorizzazione. Cloud Functions, Cloud Run e Identity Aware Proxy (IAP) offrono questa opzione.

Passaggi successivi