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, asegúrate de haber hecho lo siguiente:
Creaste un proyecto de Google Cloud en el que tienes la función 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.
Preparaste la CLI de Google Cloud como se describe a continuación.
Habilitaste los servicios de Google requeridos como se describe a continuación.
Configura la cuenta de servicio que se usa para crear parámetros de configuración de la API como se describe a continuación.
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 del proyecto de Google Cloud:
gcloud config set project PROJECT_ID
Habilita los servicios obligatorios
API Gateway requiere que habilites los siguientes servicios de Google:
Nombre | Título |
---|---|
apigateway.googleapis.com |
API de API Gateway |
servicemanagement.googleapis.com |
API de Administración de servicios |
servicecontrol.googleapis.com |
API de Service Control |
Para confirmar que los servicios obligatorios están habilitados, haz lo siguiente:
gcloud services list
Si no ves los servicios necesarios que se incluyeron en la lista, habilítalos:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
Para obtener más información sobre los servicios de gcloud
, consulta Servicios de gcloud
.
Configura una cuenta de servicio
Una configuración de API implementada en una puerta de enlace se ejecuta con los permisos asociados con la cuenta de servicio de la puerta de enlace.
Como práctica recomendada, crea una cuenta de servicio distinta 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.
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 el rol de Invocador de Cloud Functions a la cuenta de servicio.
- Para un backend de Cloud Run, se debe asignar el rol de Invocador de Cloud Run a la cuenta de servicio.
- Para un backend de App Engine, debes seguir los pasos que se indican en Configuración del acceso a IAP para otorgarle 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 --project=PROJECT_ID \ --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Consulta Cómo crear una API para obtener más información sobre cómo crear parámetros de configuración de API.
Usa una cuenta de servicio predeterminada
Algunos productos de GCP definen una cuenta de servicio predeterminada. Por ejemplo, si usas Compute Engine y habilitaste la API de Compute Engine para tu proyecto, se te 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 --project=PROJECT_ID
Consulta Usa la cuenta de servicio predeterminada de Compute Engine para obtener más información.
Cómo usar 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 autorización. Las funciones de Cloud Run, Cloud Run y el proxy consciente de identidad (IAP) proporcionan esta opción.