Control de acceso con IAM

Descripción general

La API de Live Stream usa la administración de identidades y accesos (IAM) para el control de acceso.

Puedes configurar el control de acceso de la API de Live Stream a nivel del proyecto. Por ejemplo, puedes otorgar acceso a los desarrolladores para que enumeren y obtengan todos los eventos dentro de un proyecto.

Para obtener una descripción detallada de IAM y sus características, consulta la documentación de IAM. En particular, consulta la sección sobre administración de políticas de IAM.

Cada método de la API de Live Stream requiere que el llamador tenga los permisos necesarios. Para obtener más información, consulta el artículo sobre permisos y funciones.

Permisos

En esta sección, se resumen los permisos de la API de Live Stream que admite IAM.

Permisos necesarios

En las siguientes tablas, se enumeran los permisos de IAM asociados con la API de Live Stream.

Nombre del método de activos Permisos necesarios
assets.create livestream.assets.create en la ubicación superior, que es una combinación específica de proyecto de Google Cloud y ubicación de datos.
assets.delete livestream.assets.delete en el recurso del activo.
assets.get livestream.assets.get en el recurso del activo.
assets.list livestream.assets.list en la ubicación superior, que es una combinación específica de proyecto de Google Cloud y ubicación de datos.
Nombre del método de canales Permisos necesarios
channels.create livestream.channels.create en la ubicación superior, que es una combinación específica de proyecto de Google Cloud y ubicación de datos.
channels.delete livestream.channels.delete en el recurso del canal.
channels.get livestream.channels.get en el recurso del canal.
channels.list livestream.channels.list en la ubicación superior, que es una combinación específica de proyecto de Google Cloud y ubicación de datos.
channels.patch livestream.channels.update en el recurso del canal.
channels.start livestream.channels.start en el recurso del canal.
channels.stop livestream.channels.stop en el recurso del canal.
Nombre del método de clips Permisos necesarios
channels.clips.create livestream.clips.create en el canal superior del recurso.
channels.clips.delete livestream.clips.delete en el recurso de clip.
channels.clips.get livestream.clips.get en el recurso de clip.
channels.clips.list livestream.clips.list en el canal superior del recurso.
Nombre del método de eventos Permisos necesarios
channels.events.create livestream.events.create en el canal superior del recurso.
channels.events.delete livestream.events.delete en el recurso del evento.
channels.events.get livestream.events.get en el recurso del evento.
channels.events.list livestream.events.list en el canal superior del recurso.
Nombre del método de entrada Permisos necesarios
inputs.create livestream.inputs.create en la ubicación superior, que es una combinación específica de proyecto de Google Cloud y ubicación de datos.
inputs.delete livestream.inputs.delete en el recurso de entrada.
inputs.get livestream.inputs.get en el recurso de entrada.
inputs.list livestream.inputs.list en la ubicación superior, que es una combinación específica de proyecto de Google Cloud y ubicación de datos.
inputs.patch livestream.inputs.update en el recurso de entrada.
Nombre del método de los grupos Permisos necesarios
pools.get livestream.pools.get en el recurso del grupo.
pools.patch livestream.pools.patch en el recurso del grupo.

Funciones

En la siguiente tabla, se enumeran las funciones de IAM de la API de Live Stream, incluidos los permisos asociados a cada función:

Función de IAM Permisos

(roles/livestream.viewer)

Acceso de lectura a los recursos de transmisión en vivo.

livestream.assets.get

livestream.assets.list

livestream.channels.get

livestream.channels.list

livestream.clips.get

livestream.clips.list

livestream.events.get

livestream.events.list

livestream.inputs.get

livestream.inputs.list

livestream.locations.*

  • livestream.locations.get
  • livestream.locations.list

livestream.operations.get

livestream.operations.list

livestream.pools.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/livestream.editor)

Acceso completo a los recursos de transmisión en vivo.

livestream.*

  • livestream.assets.create
  • livestream.assets.delete
  • livestream.assets.get
  • livestream.assets.list
  • livestream.channels.create
  • livestream.channels.delete
  • livestream.channels.get
  • livestream.channels.list
  • livestream.channels.start
  • livestream.channels.stop
  • livestream.channels.update
  • livestream.clips.create
  • livestream.clips.delete
  • livestream.clips.get
  • livestream.clips.list
  • livestream.events.create
  • livestream.events.delete
  • livestream.events.get
  • livestream.events.list
  • livestream.inputs.create
  • livestream.inputs.delete
  • livestream.inputs.get
  • livestream.inputs.list
  • livestream.inputs.update
  • livestream.locations.get
  • livestream.locations.list
  • livestream.operations.cancel
  • livestream.operations.delete
  • livestream.operations.get
  • livestream.operations.list
  • livestream.pools.get
  • livestream.pools.update

resourcemanager.projects.get

resourcemanager.projects.list

Para obtener más información sobre las funciones, consulta Información sobre las funciones.

Acceso a Cloud Storage

De forma predeterminada, la API de Live Stream tiene acceso a todos los buckets de Cloud Storage de tu proyecto. Cuando creas tu primer evento de transmisión en vivo, la API de Live Stream crea una cuenta de servicio con la siguiente convención de nombres:

service-PROJECT_NUMBER@gcp-sa-livestream.iam.gserviceaccount.com

PROJECT_NUMBER es el número de tu proyecto con la API de Live Stream habilitada. A esta cuenta de servicio se le otorga el rol de agente de servicio de transmisiones en vivo y tiene permisos para hacer lo siguiente:

  • Lee archivos en los buckets de Cloud Storage de tu proyecto
  • Sube archivos a los buckets de Cloud Storage de tu proyecto
  • Borra archivos de los buckets de Cloud Storage de tu proyecto
  • Enumera los archivos y sus metadatos en los buckets de Cloud Storage de tu proyecto

Limita el acceso

Para limitar este acceso a tus buckets de Cloud Storage, quita el rol de Agente de servicio de transmisión en vivo de la cuenta de servicio y reemplázalo por un acceso más detallado. Lleva a cabo los pasos siguientes:

  1. Ve a la página de IAM (pestaña Permisos) en la consola de Google Cloud.
  2. Busca la cuenta de servicio con el rol de Agente de servicio de transmisión en vivo y selecciona el botón Editar.
  3. Borra el rol de Agente del servicio de transmisión en vivo de la cuenta de servicio.
  4. Otorga acceso a la cuenta de servicio para cada depósito individual de Cloud Storage:
    1. Ir a la página del navegador de Cloud Storage
    2. Haz clic en un bucket.
    3. Selecciona la pestaña Permisos.
    4. Haz clic en Agregar.
    5. En el campo Principales nuevas, escribe el nombre de la cuenta de servicio.
    6. En Rol, selecciona Administrador de objetos de almacenamiento.
    7. Haz clic en Guardar. La API de Live Stream ahora tiene acceso al bucket.