Gestionar APIs de Cloud y bibliotecas de cliente de Cloud en Cloud Code para Cloud Shell

Para acceder a los Google Cloud productos y servicios de forma programática, se usan las APIs de Cloud. Estas APIs exponen una interfaz REST JSON sencilla. La forma recomendada de acceder a las APIs de Cloud es usar las bibliotecas de cliente de Cloud.

Cloud Code facilita la adición de las bibliotecas de cliente de Cloud para las APIs de Cloud y el lenguaje que estés usando en tu proyecto. En la misma vista, puedes buscar ejemplos de cada API e incorporarlos fácilmente a tu aplicación.

Consultar APIs de Cloud

Para explorar todas las APIs de Google Cloud disponibles, sigue estos pasos:

  1. Haz clic en Cloud Code y, a continuación, despliega la sección APIs de Cloud.

    La vista APIs de Cloud agrupa las APIs de Cloud por categoría.

  2. Para ver los detalles de una API, haz clic en su nombre. Se muestran detalles como el nombre del servicio, el estado, las instrucciones de instalación de las bibliotecas de cliente, la documentación y los ejemplos de código.

Habilitar APIs de Cloud

Para habilitar las APIs de Cloud en un proyecto mediante la página de detalles de la API, sigue estos pasos:

  1. En la página de detalles de la API de Cloud, elige el proyecto en el que quieres habilitar la API de Cloud.
  2. Haz clic en Habilitar API. Una vez que la API esté habilitada, se mostrará un mensaje para confirmar el cambio.

Añadir bibliotecas de cliente a un proyecto

Además de explorar y habilitar APIs de Cloud con Cloud Code, puedes añadir una biblioteca de cliente específica de un lenguaje a tu proyecto.

Para instalar una biblioteca de cliente, sigue las instrucciones de la página de detalles de la API correspondiente a tu lenguaje.

Usar ejemplos de la API

Puedes buscar y usar ejemplos de código de cada API en el navegador de APIs.

  1. Haz clic en Cloud Code y, a continuación, despliega la sección APIs de Cloud.

  2. Para abrir la vista de detalles, haz clic en el nombre de una API.

  3. Para ver ejemplos de código de la API, haga clic en Ejemplos de código.

  4. Para filtrar la lista de ejemplos, escribe texto para buscar o elige un lenguaje de programación de la lista Idioma.

  5. Para ver una muestra, haz clic en su nombre. También puedes copiar el ejemplo en el portapapeles o verlo en GitHub.

Configurar la autenticación

Una vez que hayas habilitado las APIs necesarias y añadido las bibliotecas cliente, tendrás que configurar tu aplicación para que se autentique correctamente. La configuración depende del tipo de desarrollo y de la plataforma en la que se ejecute.

Una vez que hayas completado los pasos de autenticación, tu aplicación podrá autenticarse y estará lista para implementarse.

Desarrollo local

La instancia de VM de Cloud Shell usa la cuenta de servicio predeterminada de Compute Engine (la cuenta de servicio que usa Google Kubernetes Engine de forma predeterminada) como cuenta de servicio predeterminada. Esto significa que, cuando desarrolles con Cloud Code en Cloud Shell, no tendrás que configurar nada más al trabajar con bibliotecas de cliente. Tu aplicación se ha autenticado y está lista para ejecutarse de forma local.

Desarrollo local con APIs que requieren una cuenta de servicio

Algunas APIs, como la API Cloud Translation, requieren una cuenta de servicio con los permisos adecuados para autenticar tus solicitudes. Para obtener más información, consulta el artículo sobre cómo crear y gestionar cuentas de servicio.

  1. Para abrir una terminal, haz clic en Terminal > Nueva terminal.

  2. Crea una cuenta de servicio para autenticar tus solicitudes a la API:

    gcloud iam service-accounts create \
    SERVICE_ACCOUNT_ID \
    --project PROJECT_ID

    Sustituye los siguientes valores:

    • SERVICE_ACCOUNT_ID: el ID de la cuenta de servicio
    • PROJECT_ID: el ID del proyecto

    Para encontrar estos IDs, en Google Cloud, haz clic en el menú de navegación situado en la parte superior izquierda de la pantalla, coloca el puntero sobre IAM y administración y haz clic en Cuentas de servicio.

    En la columna Correo se muestra el correo único SERVICE_ACCOUNT_ID y PROJECT_ID de cada una de sus cuentas de servicio con el siguiente formato:

    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com

    Por ejemplo, una dirección de correo de cuenta de servicio my-service-account@my-project.iam.gserviceaccount.com tiene los siguientes valores:

    • SERVICE_ACCOUNT_ID: my-service-account
    • PROJECT_ID: my-project
  3. Asigna el rol adecuado a tu cuenta de servicio. El siguiente comando de ejemplo otorga el rol Usuario de la API Cloud Translation. Para determinar el rol que se debe asignar, consulta la documentación de la API de Cloud que estés usando.

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
  4. Crea una clave de cuenta de servicio:

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
  5. Define la clave como tus credenciales predeterminadas:

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. Opcional: Para permitir que los usuarios suplanten la identidad de la cuenta de servicio, ejecuta el comando gcloud iam service-accounts add-iam-policy-binding para asignar a un usuario el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser) en la cuenta de servicio:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    Sustituye los siguientes valores:

    • USER_EMAIL: la dirección de correo del usuario

Desarrollo remoto

GKE

En función del ámbito de tu proyecto, puedes elegir cómo autenticar los servicios en GKE: Google Cloud

  • (Solo para desarrollo)
    1. Crea un clúster de GKE con la siguiente configuración:
      • Asegúrate de que usas la cuenta de servicio que usa GKE de forma predeterminada, la cuenta de servicio predeterminada de Compute Engine, y que Permisos de acceso está configurado en Permitir el acceso completo a todas las APIs de Cloud (ambos ajustes están disponibles en la sección Grupos de nodos > Seguridad). Como la cuenta de servicio de Compute Engine se comparte entre todas las cargas de trabajo implementadas en tu nodo, este método asigna permisos en exceso y solo se debe usar en entornos de desarrollo.
      • Asegúrate de que Workload Identity no esté habilitado en tu clúster (en la sección Clúster > Seguridad).
    2. Asigna los roles necesarios a tu cuenta de servicio:
      • Si usas la cuenta de servicio predeterminada de Compute Engine, es posible que ya se hayan aplicado los roles de gestión de identidades y accesos correctos.
      • Para ver una lista de los tipos de roles de gestión de identidades y accesos y los roles predefinidos que puedes conceder a las identidades, consulta la guía sobre roles. Para ver los pasos que debes seguir para conceder los roles, consulta Conceder, cambiar y revocar el acceso a los recursos.
  • (Recomendado para producción)
    1. Configura tu clúster y tu aplicación de GKE con Workload Identity para autenticar Google Cloud servicios en GKE. De esta forma, se asocia tu cuenta de servicio de Kubernetes con tu cuenta de servicio de Google.
    2. Configura tu despliegue de Kubernetes para que haga referencia a la cuenta de servicio de Kubernetes. Para ello, define el campo .spec.serviceAccountName en el archivo YAML de tu despliegue de Kubernetes. Si estás trabajando en una aplicación creada a partir de una aplicación de ejemplo de Cloud Code, este archivo se encuentra en la carpeta kubernetes-manifests.
    3. Si el Google Cloud servicio al que intentas acceder requiere roles adicionales, concédelos a la cuenta de servicio de Google que estés usando para desarrollar tu aplicación:

Cloud Run

  1. Para crear una cuenta de servicio única para desplegar tu aplicación de Cloud Run, ve a la página Cuentas de servicio y selecciona el proyecto en el que se almacena tu secreto.

    Ir a la página Cuentas de servicio

  2. Haz clic en Crear cuenta de servicio.
  3. En el cuadro de diálogo Crear cuenta de servicio, escribe un nombre descriptivo para la cuenta de servicio.
  4. Cambie el ID de cuenta de servicio por un valor único y reconocible y, a continuación, haga clic en Crear.
  5. Si el Google Cloud servicio al que intentas acceder requiere roles adicionales, concede los roles, haz clic en Continuar y, a continuación, en Hecho.
  6. Para añadir tu cuenta de servicio a la configuración de implementación, sigue estos pasos:
    1. En la barra de estado de Cloud Code, elige el comando Cloud Run: Deploy (Cloud Run: desplegar).
    2. En la interfaz de usuario de Cloud Run Deployment, en Revision Settings (Configuración de la revisión), en el campo Service Account (Cuenta de servicio), especifica tu cuenta de servicio.
    Sección de ajustes avanzados de la revisión desplegada en Cloud Run: campo Implementar y Cuenta de servicio rellenado con el nombre de la cuenta de servicio con el formato service-account-name@project-name.iam.gserviceaccount.com

Cloud Run

En función del ámbito de tu proyecto, puedes elegir cómo autenticar los servicios en GKE: Google Cloud

  • (Solo para desarrollo)
    1. Crea un clúster de GKE con la siguiente configuración:
      • Asegúrate de que usas la cuenta de servicio que GKE usa de forma predeterminada, la cuenta de servicio predeterminada de Compute Engine, y de que Permisos de acceso esté configurado como Permitir el acceso completo a todas las APIs de Cloud (ambos ajustes se encuentran en la sección Grupos de nodos > Seguridad). Como la cuenta de servicio de Compute Engine se comparte entre todas las cargas de trabajo implementadas en tu nodo, este método asigna permisos en exceso y solo debe usarse en entornos de desarrollo.
      • Asegúrate de que Workload Identity no esté habilitado en tu clúster (en la sección Clúster > Seguridad).
    2. Asigna los roles necesarios a tu cuenta de servicio:
      • Si usas la cuenta de servicio predeterminada de Compute Engine, es posible que ya se hayan aplicado los roles de gestión de identidades y accesos correctos.
      • Para ver una lista de los tipos de roles de gestión de identidades y accesos y los roles predefinidos que puedes asignar a las identidades, consulta la guía sobre los roles. Para saber cómo asignar los roles, consulta Conceder, cambiar y revocar el acceso a los recursos.
  • (Recomendado para producción)
    1. Configura tu clúster y tu aplicación de GKE con Workload Identity para autenticar Google Cloud servicios en GKE. De esta forma, se asocia tu cuenta de servicio de Kubernetes con tu cuenta de servicio de Google.
    2. Para añadir tu cuenta de servicio a la configuración de implementación, sigue estos pasos:
      1. En la barra de estado de Cloud Code, elige el comando Cloud Run: Deploy (Cloud Run: desplegar).
      2. En la interfaz de usuario de Cloud Run Deployment, en Revision Settings (Configuración de la revisión), en el campo Service Account (Cuenta de servicio), especifica tu cuenta de servicio.
      Sección de ajustes avanzados de la revisión desplegada en Cloud Run: campo Desplegar y Cuenta de servicio rellenado con el nombre de la cuenta de servicio de Kubernetes con el formato service-account-name@project-name.iam.gserviceaccount.com
    3. Si el Google Cloud servicio al que intentas acceder requiere roles adicionales, concédelos a la cuenta de servicio de Google que estés usando para desarrollar tu aplicación:

Desarrollo remoto con permisos de Secret Manager habilitados

Si desarrollas de forma remota, usas una cuenta de servicio para la autenticación y tu aplicación usa secretos, debes completar algunos pasos más además de las instrucciones de desarrollo remoto. Con estos pasos, se asigna a tu cuenta de servicio de Google el rol necesario para acceder a un secreto concreto de Secret Manager:

  1. Haga clic en Cloud Code y, a continuación, despliegue la sección Secret Manager.

    Secret Manager en Cloud Code abierto con dos secretos

  2. Haz clic con el botón derecho en el secreto y selecciona Editar permisos en la consola de Cloud. Se abrirá la página de configuración de Secret Manager para ese secreto en tu navegador web.

    Se ha hecho clic con el botón derecho en un secreto del panel Secret Manager

  3. En la consola, haz clic en Permisos y, a continuación, en Añadir. Google Cloud

  4. En el campo Principales nuevas, introduce el nombre de tu cuenta de servicio.

  5. En el campo Selecciona un rol, elige el rol Permiso para acceder a los recursos de Secret Manager.

  6. Haz clic en Guardar.

    Tu cuenta de servicio ahora tiene permiso para acceder a este secreto concreto.