Conceder y revocar el acceso a la API

Controlar quién tiene acceso a una API es una parte esencial del desarrollo. Por ejemplo, mientras pruebas tu API, puede que quieras automatizar la reimplementación de las configuraciones actualizadas de Cloud Endpoints mediante una cuenta de servicio que tenga permiso para hacerlo. De forma predeterminada, solo el propietario del proyecto puede gestionar el acceso a una API. En esta página se explica cómo conceder y revocar el acceso a tu API mediante laGoogle Cloud consola o la CLI de Google Cloud.

Endpoints usa roles de Gestión de Identidades y Accesos para conceder y revocar el acceso a nivel de API. Puedes conceder y revocar el acceso a un usuario, una cuenta de servicio o un grupo de Google.

Los grupos de Google son una forma cómoda de conceder o revocar el acceso a una colección de usuarios. Puedes conceder o revocar el acceso a todo un grupo a la vez, en lugar de hacerlo de uno en uno para usuarios o cuentas de servicio concretos. También puedes añadir o quitar miembros de un grupo de Google fácilmente en lugar de asignar o revocar el rol de gestión de identidades y accesos a cada miembro.

Conceder acceso

Google Cloud consola

  1. En la Google Cloud consola, ve a la página Endpoints > Services (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 Añadir miembros, introduce la dirección de correo de un usuario, una cuenta de servicio o un grupo de Google.
  5. En el menú desplegable Selecciona un rol, haz clic en Gestión de servicios y selecciona uno de los siguientes roles:
    • Consumidor de servicios: este rol contiene los permisos para que un usuario que no sea miembro del proyecto pueda ver y habilitar la API en su propio proyecto. Si has creado un portal para tu API, este rol permite que los usuarios de la API accedan al portal.
    • Controlador de servicio: este rol contiene los permisos para hacer llamadas a los métodos check y report en la API Service Infrastructure durante el tiempo de ejecución.
    • Editor de configuración de servicio: este rol contiene los permisos mínimos que necesita Service Management para implementar una configuración de Endpoints en un servicio.
    • Administrador de Service Management: este rol contiene los permisos de los roles Editor de configuración de servicio, Consumidor de servicio y Controlador de servicio, además de los permisos necesarios para conceder acceso a esta API mediante gcloud o los métodos programáticos descritos en Conceder, cambiar y revocar el acceso a los recursos.

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

  6. Para añadir el miembro al rol de gestión de identidades y accesos especificado, haz clic en Añadir.
  7. Repite el proceso de añadir miembros y seleccionar el rol según sea necesario.
  8. Los roles de gestión de servicios no permiten a los usuarios acceder a la página Endpoints > Services (Endpoints > Servicios) de la consola Google Cloud . Si quieres que los usuarios puedan acceder a la página Endpoints > Services, debes asignarles el rol Lector de proyectos u otro superior en el proyecto. Consulta cómo conceder, cambiar y revocar el acceso a los recursos para obtener más información.

gcloud

  1. Abre Cloud Shell o, si tienes instalada la CLI de Google Cloud, abre una ventana de terminal.
  2. Introduce el comando gcloud correspondiente:
    • Si vas a dar acceso a un usuario, ejecuta lo siguiente:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      En el campo Rol, especifica uno de los siguientes roles de gestión de identidades y accesos:

      • roles/servicemanagement.configEditor: este rol contiene los permisos mínimos que necesita Service Management para implementar una configuración de Endpoints en un servicio.
      • roles/servicemanagement.admin: este rol contiene los permisos de roles/servicemanagement.configEditor, roles/servicemanagement.serviceConsumer y roles/servicemanagement.serviceController, además de los permisos necesarios para conceder acceso a esta API mediante gcloud o los métodos programáticos descritos en Conceder, 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'

    • Si vas a conceder acceso a una cuenta de servicio, ejecuta lo siguiente:
      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'

    • Si vas a conceder acceso a un grupo de Google, ejecuta lo siguiente:
      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 gestión de servicios no permiten a los usuarios acceder a la página Endpoints > Services (Endpoints > Servicios) de la consola de Google Cloud . Si quieres que los usuarios puedan acceder a la página Endpoints > Services, debes asignarles el rol Lector de proyectos u otro superior en el proyecto. Consulta cómo conceder, cambiar y revocar el acceso a los recursos para obtener más información.

Revocar el acceso

Para revocar el acceso a tu API, quita el rol de gestión de identidades y accesos al miembro que lo tenía.

Google Cloud consola

  1. En la Google Cloud consola, ve a la página Endpoints > Services 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. Busca el miembro al que quieras revocar el acceso. Puedes hacer clic en la tarjeta Rol correspondiente para ver una lista de miembros o introducir un nombre o un rol en el cuadro Buscar miembros.
  5. Haz clic en Eliminar .
  6. Si también quieres revocar el acceso de un usuario a tu proyecto de Google Cloud , consulta Conceder, cambiar y revocar el acceso a los recursos para obtener más información.

gcloud

  1. Abre Cloud Shell o, si tienes instalada la CLI de gcloud, abre una ventana de terminal.
  2. Introduce el comando gcloud correspondiente:
    • Si vas a revocar el acceso de un usuario, ejecuta lo siguiente:
      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'
    • Si vas a revocar el acceso de una cuenta de servicio, ejecuta lo siguiente:
      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'
    • Si vas a revocar el acceso a un grupo de Google, ejecuta lo siguiente:
      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. Si también quieres revocar el acceso de un usuario a tu proyecto de Google Cloud , consulta Conceder, cambiar y revocar el acceso a los recursos para obtener más información.

Siguientes pasos

Puedes informarte sobre lo siguiente: