Otorga y revoca 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 la 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 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 una función, haz clic en Service Management y selecciona una de las funciones siguientes:
    • 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: Esta función contiene los permisos para realizar llamadas a los métodos check y report en la API de Service Infrastructure durante el tiempo de ejecución.
    • Editor de Service Management: 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 Administración de servicios 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 Cloud 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 > Services de 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 la 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 la función, especifica una de las siguientes funciones de Cloud 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'

    • Si deseas otorgar acceso a una cuenta de servicio, ejecuta el código 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 deseas otorgar acceso a un Grupo de Google, ejecuta el código 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 Service Management no permiten que los usuarios accedan a la página Endpoints > Services 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 gcloud CLI instalada, abre una ventana de la 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.

Próximos pasos

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