Cómo otorgar y revocar el acceso a la API

Controlar quién tiene acceso a una API es una parte integral del desarrollo. Por ejemplo, a medida que pruebes tu API, es posible que desees automatizar la reasignación de configuraciones actualizadas de Cloud Endpoints mediante una cuenta de servicio que tenga permiso para hacerlo. De forma predeterminada, solo el propietario del proyecto puede administrar el acceso a una API. En esta página, se muestra cómo otorgar y revocar el acceso a tu API mediante la consola de Google Cloud o Google Cloud CLI.

Endpoints usa las funciones de la administración de identidades y accesos para otorgar y revocar el acceso al nivel de la API. Puedes otorgar y revocar el acceso a un usuario, una cuenta de servicio o un Grupo de Google.

Los Grupos de Google ofrecen una forma práctica de otorgar o revocar el acceso a una colección de usuarios. Puedes otorgar y revocar el acceso a todo un grupo de una sola vez, en lugar de otorgar y revocar el acceso a usuarios individuales o cuentas de servicio de a una a la vez. También puedes agregar miembros a un Grupo de Google, o quitarlos, con facilidad, en lugar de otorgar o revocar la función de IAM a cada miembro.

Otorga acceso

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Endpoints > Servicios de tu proyecto.

    Ir a la página Servicios de Endpoints

  2. Si tienes más de una API, haz clic en el nombre de la API.
  3. Si el panel lateral Permisos no está abierto, haz clic en Permisos.
  4. En el cuadro Agregar miembros, ingresa la dirección de correo electrónico de un usuario, cuenta de servicio o Grupo de Google.
  5. En el menú desplegable Seleccionar un rol, haz clic en Administración de servicios y selecciona uno de los siguientes roles:
    • Consumidor del servicio: Esta función contiene los permisos para que un miembro ajeno al proyecto vea y habilite la API en su propio proyecto. Si creaste un portal para tu API, esta función les permite a los usuarios de la API acceder al portal.
    • Controlador de servicio: Este rol contiene los permisos para realizar llamadas a los métodos check y report en la API de Service Infrastructure durante el entorno de ejecución.
    • Editor de configuración de servicio: esta función contiene los permisos mínimos que requiere Service Management para implementar una configuración de Endpoints en un servicio existente.
    • Administrador de Service Management: Esta función contiene los permisos de las funciones Editor de configuración de servicios, Consumidor de servicios y Controlador de servicios, además de los permisos necesarios para otorgar acceso a esta API mediante gcloud o los métodos programáticos que se describen en Cómo otorgar, cambiar y revocar el acceso a los recursos.

    Consulta el tema Control de acceso a la API de Service Management para obtener información sobre esta función. Aunque la consola de Google Cloud te permite seleccionar otros roles, estos no son útiles para administrar tu API.

  6. Para agregar el miembro a la función de IAM especificada, haz clic en Agregar.
  7. Continúa agregando miembros y seleccionando funciones según sea necesario.
  8. Los roles de Service Management no permiten que los usuarios accedan a la página Endpoints > Servicios en la consola de Google Cloud. Si quieres que los usuarios puedan acceder a la página Endpoints > Servicios, debes otorgarles la función Visualizador de proyecto o una función superior en el proyecto. Consulta Cómo otorgar, cambiar y revocar el acceso a los recursos para obtener más detalles.

gcloud

  1. Abre Cloud Shell o, si tienes Google Cloud CLI instalado, abre una ventana de terminal.
  2. Ingresa el comando gcloud aplicable:
    • Ejecuta el siguiente código para otorgar el acceso a un usuario:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      Para el rol, especifica uno de los siguientes roles de IAM:

      • roles/servicemanagement.configEditor: Esta función contiene los permisos mínimos que requiere Service Management para implementar una configuración de Endpoints en un servicio existente.
      • roles/servicemanagement.admin: Esta función contiene los permisos de roles/servicemanagement.configEditor, roles/servicemanagement.serviceConsumer y roles/servicemanagement.serviceController, además de los permisos necesarios para otorgar acceso a esta API mediante gcloud o los métodos programáticos que se describen en la sección Cómo otorgar, cambiar y revocar el acceso a los recursos.

      Por ejemplo:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/servicemanagement.admin'

    • Ejecuta el siguiente código para otorgar acceso a una cuenta de servicio:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      Por ejemplo:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'

    • Ejecuta el siguiente código para otorgar acceso a un Grupo de Google:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='group:[GROUP-NAME]@googlegroups.com' \
        --role='[ROLE]'

      Por ejemplo:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='group:example-group@googlegroups.com' \
        --role='roles/servicemanagement.configEditor'

  3. Los roles de Service Management no permiten que los usuarios accedan a la página Endpoints > Servicios en la consola de Google Cloud. Si quieres que los usuarios puedan acceder a la página Endpoints > Servicios, debes otorgarles la función Visualizador de proyecto o una función superior en el proyecto. Consulta Cómo otorgar, cambiar y revocar el acceso a los recursos para obtener más detalles.

Revoca acceso

Para revocar el acceso a tu API, quítale la función de IAM al miembro que la tenía antes.

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Endpoints > Servicios de tu proyecto.

    Ir a la página Servicios de Endpoints

  2. Si tienes más de una API, haz clic en el nombre de la API.
  3. Si el panel lateral Permisos no está abierto, haz clic en Permisos.
  4. Localiza al miembro al que quieras revocarle el acceso. Puedes hacer clic en la tarjeta aplicable Función para ver una lista de miembros o puedes ingresar un nombre o una función en el cuadro Buscar miembros.
  5. Haz clic en Borrar .
  6. Consulta Cómo otorgar, cambiar y revocar el acceso a los recursos para obtener más información sobre cómo revocar el acceso de un usuario a tu proyecto de Google Cloud.

gcloud

  1. Abre Cloud Shell o, si tienes instalada gcloud CLI, abre una ventana de terminal.
  2. Ingresa el comando gcloud aplicable:
    • Ejecuta el siguiente código para revocar el acceso a un usuario:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      Por ejemplo:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/editor'
    • Ejecuta el siguiente código para revocar el acceso a una cuenta de servicio:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      Por ejemplo:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'
    • Ejecuta el siguiente código para revocar el acceso a un Grupo de Google:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='group:[GROUP-NAME]@googlegroups.com' \
            --role='[ROLE-NAME]'

      Por ejemplo:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='group:example-group@googlegroups.com' \
            --role='roles/viewer'
  3. Consulta Cómo otorgar, cambiar y revocar el acceso a los recursos para obtener más información sobre cómo revocar el acceso de un usuario a tu proyecto de Google Cloud.

¿Qué sigue?

Obtén más información acerca de los siguientes temas: