Configura el entorno de desarrollo
En este documento, se describe cómo configurar el entorno de desarrollo de API Gateway.
Requisitos previos
Antes de crear una API en API Gateway, debes hacer lo siguiente:
Crea un proyectoGoogle Cloud en el que tengas el rol de Editor o Propietario. Después de la implementación inicial, puedes otorgar la función más restringida Editor de configuración de servicio a un usuario, grupo o cuenta de servicio.
Configura la cuenta de servicio que se usa para crear configuraciones de API.
Prepara Google Cloud CLI para la implementación
Para preparar gcloud para la implementación de la siguiente manera:
- Instala e inicializa la gcloud CLI.
- Actualiza la CLI de gcloud:
gcloud components update
- Asegúrate de que la CLI de gcloud esté autorizada para acceder a tus datos y servicios:
gcloud auth login
Se abrirá una pestaña nueva del navegador y se te solicitará que elijas una cuenta.
- Configura el proyecto predeterminado. Reemplaza PROJECT_ID por el ID de tu proyecto de Google Cloud :
gcloud config set project PROJECT_ID
Habilita los servicios de Google requeridos
API Gateway requiere que habilites los siguientes Google Cloud servicios:
| Nombre | Nombre del servicio |
|---|---|
| API de API Gateway | apigateway.googleapis.com |
| API de Administración de servicios | servicemanagement.googleapis.com |
| Service Control API | servicecontrol.googleapis.com |
Para habilitar los servicios obligatorios, sigue estos pasos:
Consola de Google Cloud
En la consola de Google Cloud , ve a la página Biblioteca de APIs > APIs y servicios.
- En la página Biblioteca de APIs, ingresa el nombre de la API requerida en la barra de búsqueda.
- En los resultados de la búsqueda, selecciona la página de la API.
- En la página de la API, haz clic en Habilitar.
- Repite estos pasos para cada uno de los servicios que se indican en la tabla anterior.
Google Cloud CLI
Usa los siguientes comandos para habilitar los servicios:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
Para obtener más información sobre los servicios de gcloud, consulta Servicios de gcloud.
Configura la cuenta de servicio que se usa para crear las configuraciones de la API
Una configuración de API implementada en una puerta de enlace se ejecuta con los permisos asociados a la cuenta de servicio de la puerta de enlace.
Como práctica recomendada, crea una cuenta de servicio independiente en el mismo proyecto que usas para API Gateway. Luego, asigna a la cuenta de servicio solo los permisos necesarios para acceder al servicio de backend. De esa manera, limitarás los permisos asociados con la configuración de la API.
En API Gateway, el usuario que crea o actualiza una configuración o puerta de enlace de API requiere el permiso iam.serviceAccounts.actAs en el objeto de la cuenta de servicio. Este permiso se incluye en la función de usuario de cuenta de servicio.
Para agregar el rol y el permiso necesarios a la cuenta de servicio de la puerta de enlace, sigue estos pasos:
Consola de Google Cloud
-
En la consola de Google Cloud , ve a la página IAM y administración > Cuentas de servicio.
- Selecciona el proyecto requerido o crea uno nuevo.
- Haz clic en la cuenta de servicio requerida.
- Haz clic en la pestaña Permisos.
- Haz clic en Administrar acceso.
- Haz clic en Agregar rol y asigna el rol
Service Account Useral principal que hará referencia a la cuenta de servicio mientras crea la configuración de la API. - Haz clic en Guardar.
Google Cloud CLI
El rol y el permiso se pueden agregar a la cuenta de servicio del usuario con el siguiente comando:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member user:USER_EMAIL \ --role roles/iam.serviceAccountUser
Donde:
- SERVICE_ACCOUNT_EMAIL es el correo electrónico de la cuenta de servicio, en el formato
SA_NAME@PROJECT_ID.iam.gserviceaccount.com. - USER_EMAIL es la dirección de correo electrónico del usuario.
Por ejemplo:
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
Además, la cuenta de servicio de la puerta de enlace requiere los permisos necesarios para acceder a tu servicio de backend. Por ejemplo:
- Para un backend de Cloud Function, se debe asignar a la cuenta de servicio el rol de Invocador de Cloud Functions.
- Para un backend de Cloud Run, se debe asignar a la cuenta de servicio el rol de Invocador de Cloud Run.
- Para un backend de App Engine, debes seguir los pasos que se indican en Configura el acceso a IAP para otorgar a la cuenta de servicio asociada con tu puerta de enlace el rol de usuario de aplicación web protegida con IAP.
Si limitas los permisos asociados con la configuración de la API, puedes proteger mejor tus sistemas de backend. Para obtener más información, consulta la documentación de administración de identidades y accesos (IAM).
Después de crear la cuenta de servicio, usa la opción --backend-auth-service-account para especificar la dirección de correo electrónico de esa cuenta cuando crees una configuración de API:
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=API_DEFINITION \ --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Consulta Crea una configuración de API para obtener más información sobre cómo crear configuraciones de API.
Usa una cuenta de servicio predeterminada
Algunos productos de Google Cloud definen una cuenta de servicio predeterminada. Por ejemplo, si usas Compute Engine y habilitaste la API de Compute Engine para tu proyecto, se creará una cuenta de servicio predeterminada de Compute Engine. La cuenta de servicio predeterminada se identifica por su dirección de correo electrónico:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Si asignas los permisos necesarios a la cuenta de servicio predeterminada, puedes omitir la opción --backend-auth-service-account cuando crees una configuración de API:
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=API_DEFINITION
Consulta Cuenta de servicio predeterminada de Compute Engine para obtener más información.
Usa OpenID Connect
Las solicitudes de API Gateway a los servicios de backend pueden usar autenticación. Estas solicitudes se protegen con tokens de OpenID Connect (OIDC) firmados por la cuenta de servicio de la puerta de enlace. Debes confirmar que tu servicio de backend esté configurado correctamente para aceptar tokens de OIDC para la autenticación y la autorización. Cloud Run Functions, Cloud Run y Identity Aware Proxy (IAP) proporcionan esta opción.