Configurar el entorno de desarrollo

En este documento se describe cómo configurar tu entorno de desarrollo de API Gateway.

Requisitos previos

Antes de crear una API en API Gateway, asegúrate de que tienes lo siguiente:

  • Haber creado un Google Cloud proyecto en el que tengas el rol Editor o Propietario. Después de la implementación inicial, puedes asignar el rol Editor de configuración de servicio, que es más restrictivo, a un usuario, un grupo o una cuenta de servicio.

  • Haber preparado Google Cloud CLI como se describe más abajo.

  • Habilite los servicios de Google necesarios, tal como se describe más abajo.

  • Configura la cuenta de servicio que se usa para crear configuraciones de API como se describe más abajo.

Preparar Google Cloud CLI para el despliegue

Para preparar gcloud para la implementación, haz lo siguiente:

  1. Instala e inicializa gcloud CLI.
  2. Actualiza gcloud CLI:
    gcloud components update
  3. Asegúrate de que la CLI de gcloud tenga autorización para acceder a tus datos y servicios:
    gcloud auth login

    Se abre una nueva pestaña del navegador y se te pide que elijas una cuenta.

  4. Define el proyecto predeterminado. Sustituye PROJECT_ID por el ID de tu proyecto de Google Cloud:
    gcloud config set project PROJECT_ID 

Habilitar los servicios necesarios

API Gateway requiere que habilites los siguientes servicios de Google:

Nombre Título
apigateway.googleapis.com API de API Gateway
servicemanagement.googleapis.com API Service Management
servicecontrol.googleapis.com API Service Control

Para confirmar que los servicios necesarios están habilitados, sigue estos pasos:

gcloud services list

Si no ves los servicios necesarios, habilítalos:

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

Para obtener más información sobre los servicios de gcloud, consulta los servicios de gcloud.

Configurar una cuenta de servicio

Una configuración de API desplegada en una pasarela se ejecuta con los permisos asociados a la cuenta de servicio de la pasarela.

Como práctica recomendada, crea una cuenta de servicio independiente en el mismo proyecto que usas para API Gateway. A continuación, asigna a la cuenta de servicio solo los permisos necesarios para acceder al servicio backend. De esta forma, limitas los permisos asociados a la configuración de la API.

En API Gateway, el usuario que cree o actualice una configuración de API o una pasarela necesita el permiso iam.serviceAccounts.actAs en el objeto de la cuenta de servicio. Este permiso está incluido en el rol Usuario de cuenta de servicio.

El rol y el permiso se pueden añadir 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 de la cuenta de servicio, con el formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
  • USER_EMAIL es la dirección de correo 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 pasarela requiere los permisos necesarios para acceder a tu servicio backend. Por ejemplo:

  • En el caso de un backend de Cloud Functions, se debe asignar a la cuenta de servicio el rol Invocador de Cloud Functions.
  • En el caso de un backend de Cloud Run, se debe asignar a la cuenta de servicio el rol Cloud Run Invoker (Invocador de Cloud Run).
  • En el caso de un backend de App Engine, debes seguir los pasos que se indican en Configurar el acceso a IAP para conceder a la cuenta de servicio asociada a tu pasarela el rol Usuario de aplicación web protegida con IAP.

Si limitas los permisos asociados a la configuración de la API, podrás proteger mejor tus sistemas backend. Para obtener más información, consulta la documentación sobre la gestió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 de esa cuenta al crear una configuración de 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 más información sobre cómo crear configuraciones de API en el artículo Crear una API.

Usar una cuenta de servicio predeterminada

Algunos Google Cloud productos definen una cuenta de servicio predeterminada. Por ejemplo, si usas Compute Engine y has habilitado la API de Compute Engine en 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:

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 al crear una configuración de API:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION --project=PROJECT_ID

Para obtener más información, consulta Usar la cuenta de servicio predeterminada de Compute Engine.

Usar OpenID Connect

Las solicitudes de API Gateway a los servicios de backend pueden usar la autenticación. Estas solicitudes se protegen mediante tokens de OpenID Connect (OIDC) firmados por la cuenta de servicio de la pasarela. Debes confirmar que tu servicio 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) ofrecen esta opción.

Siguientes pasos