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, devi:
Creare un Google Cloud progetto in cui hai il ruolo Editor o Proprietario. Dopo il deployment iniziale, puoi concedere il ruolo più restrittivo Editor configurazione servizio a un utente, un gruppo o un account di servizio.
Configurare il account di servizio utilizzato per creare le configurazioni API.
Preparare Google Cloud CLI per il deployment
Per preparare gcloud per il deployment:
- Installa e inizializza gcloud CLI.
- Aggiorna gcloud CLI:
gcloud components update
- 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.
- Imposta il progetto predefinito. Sostituisci PROJECT_ID con il tuo
Google Cloud ID progetto:
gcloud config set project PROJECT_ID
Attivare i servizi Google richiesti
API Gateway richiede l'attivazione dei seguenti Google Cloud servizi:
| Nome | Nome servizio |
|---|---|
| API API Gateway | apigateway.googleapis.com |
| API Service Management | servicemanagement.googleapis.com |
| API Service Control | servicecontrol.googleapis.com |
Per attivare i servizi richiesti:
Google Cloud Console
Nella Google Cloud console, vai alla pagina API e servizi > Libreria API.
- Nella pagina Libreria API, inserisci il nome dell'API richiesta nella barra di ricerca.
- Nei risultati di ricerca, seleziona la pagina dell'API.
- Nella pagina dell'API, fai clic su Attiva.
- Ripeti questi passaggi per ciascuno dei servizi elencati nella tabella precedente.
Google Cloud CLI
Utilizza i seguenti comandi per attivare i servizi:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
Per ulteriori informazioni sui servizi gcloud, consulta
gcloud servizi.
Configurare il account di servizio utilizzato per creare le configurazioni API
Una configurazione API di cui è stato eseguito il deployment su un gateway viene eseguita con le autorizzazioni associate al service account del gateway.
Ti consigliamo di creare un service account separato nello stesso progetto che utilizzi per API Gateway. Assegna quindi al 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 sull'oggetto account di servizio. Questa autorizzazione è inclusa nel ruolo Utente account di servizio.
Per aggiungere il ruolo e l'autorizzazione richiesti al account di servizio del gateway:
Google Cloud Console
-
Nella Google Cloud console, vai alla pagina IAM e amministrazione > Account di servizio.
- Seleziona il progetto richiesto o creane uno nuovo.
- Fai clic sul account di servizio richiesto.
- Fai clic sulla scheda Autorizzazioni.
- Fai clic su Gestisci accesso.
- Fai clic su Aggiungi ruolo e assegna il ruolo
Service Account Userall'entità che farà riferimento al account di servizio durante la creazione della configurazione API. - Fai clic su Salva.
Google Cloud CLI
Il ruolo e l'autorizzazione possono essere aggiunti al account di servizio dell'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 del 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, il account di servizio del gateway richiede le autorizzazioni necessarie per accedere al servizio di backend. Ad esempio:
- Per un backend di Cloud Function, al account di servizio deve essere assegnato il ruolo di Invoker di Cloud Functions.
- Per un backend di Cloud Run, al account di servizio deve essere assegnato il ruolo di Invoker di Cloud Run.
- Per un backend di App Engine, devi seguire i passaggi descritti in Configurare l'accesso IAP per concedere al account di servizio associato al gateway il ruolo Utente app web protetta da IAP.
Limitando le autorizzazioni associate alla configurazione API, puoi proteggere meglio i sistemi di backend. Per ulteriori informazioni, consulta la documentazione di Identity and Access Management (IAM).
Dopo aver creato il account di servizio, utilizza l'opzione --backend-auth-service-account per specificare l'indirizzo email del account di servizio durante la creazione di una configurazione API:
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=API_DEFINITION \ --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Per ulteriori informazioni sulla creazione delle configurazioni API, consulta Creare una configurazione API.
Utilizzare un account di servizio predefinito
Alcuni Google Cloud prodotti 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. Il account di servizio predefinito è identificabile dal suo indirizzo email:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Se assegni le autorizzazioni necessarie al 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
Per saperne di più, consulta Service account predefinito di Compute Engine.
Utilizzare OpenID Connect
Le richieste da API Gateway ai servizi di backend possono utilizzare l'autenticazione. Queste richieste sono protette utilizzando i 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. Cloud Run Functions, Cloud Run e Identity Aware Proxy (IAP) forniscono questa opzione.