Controle de acesso com o IAM

Visão geral

A API Live Stream usa gerenciamento de identidade e acesso (IAM) para controle de acesso.

É possível configurar o controle de acesso para a API Live Stream no nível do projeto. Por exemplo, conceda acesso para que os desenvolvedores possam listar e receber todos os eventos em um projeto.

Para uma descrição detalhada do IAM e dos recursos dele, consulte a documentação do IAM. Especificamente, consulte a seção sobre como gerenciar as políticas do IAM.

Todos os métodos da API Live Stream exigem as devidas permissões do autor da chamada. Para mais informações, consulte Permissões e Papéis.

Permissões

Esta seção resume as permissões da API Live Stream compatível com o IAM.

Permissões necessárias

As tabelas a seguir listam as permissões do IAM associadas à API Live Stream.

Nome do método de recursos Permissões necessárias
assets.create livestream.assets.create no local pai, que é uma combinação específica de Google Cloud projeto e local de dados.
assets.delete livestream.assets.delete no recurso de recurso.
assets.get livestream.assets.get no recurso de recurso.
assets.list livestream.assets.list no local pai, que é uma combinação específica de Google Cloud projeto e local de dados.
Nome do método de canais Permissões necessárias
channels.create livestream.channels.create no local pai, que é uma combinação específica de Google Cloud projeto e local de dados.
channels.delete livestream.channels.delete no recurso de canal.
channels.get livestream.channels.get no recurso de canal.
channels.list livestream.channels.list no local pai, que é uma combinação específica de Google Cloud projeto e local de dados.
channels.patch livestream.channels.update no recurso de canal.
channels.start livestream.channels.start no recurso de canal.
channels.stop livestream.channels.stop no recurso de canal.
Nome do método de clipes Permissões necessárias
channels.clips.create livestream.clips.create no canal pai do recurso.
channels.clips.delete livestream.clips.delete no recurso de clipe.
channels.clips.get livestream.clips.get no recurso de clipe.
channels.clips.list livestream.clips.list no canal pai do recurso.
Nome do método de eventos Permissões necessárias
channels.events.create livestream.events.create no canal pai do recurso.
channels.events.delete livestream.events.delete no recurso de evento.
channels.events.get livestream.events.get no recurso de evento.
channels.events.list livestream.events.list no canal pai do recurso.
Nome do método de entradas Permissões necessárias
inputs.create livestream.inputs.create no local pai, que é uma combinação específica de Google Cloud projeto e local de dados
inputs.delete livestream.inputs.delete no recurso de entrada.
inputs.get livestream.inputs.get no recurso de entrada.
inputs.list livestream.inputs.list no local pai, que é uma combinação específica de Google Cloud projeto e local de dados.
inputs.patch livestream.inputs.update no recurso de entrada.
Nome do método de pools Permissões necessárias
pools.get livestream.pools.get no recurso de pool.
pools.patch livestream.pools.patch no recurso de pool.

Papéis

A tabela a seguir lista os papéis do IAM da API Live Stream, incluindo as permissões associadas a cada papel:

Papel do IAM Permissões

(roles/livestream.viewer)

Acesso de leitura aos recursos de transmissão ao vivo.

livestream.assets.get

livestream.assets.list

livestream.channels.get

livestream.channels.list

livestream.channels.listEffectiveTags

livestream.channels.listTagBindings

livestream.clips.get

livestream.clips.list

livestream.dvrSessions.get

livestream.dvrSessions.list

livestream.events.get

livestream.events.list

livestream.inputs.get

livestream.inputs.list

livestream.inputs.listEffectiveTags

livestream.inputs.listTagBindings

livestream.locations.*

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

livestream.operations.get

livestream.operations.list

livestream.pools.get

livestream.pools.listEffectiveTags

livestream.pools.listTagBindings

resourcemanager.projects.get

resourcemanager.projects.list

(roles/livestream.editor)

Acesso total aos recursos de transmissão ao vivo.

livestream.*

  • livestream.assets.create
  • livestream.assets.delete
  • livestream.assets.get
  • livestream.assets.list
  • livestream.channels.create
  • livestream.channels.createTagBinding
  • livestream.channels.delete
  • livestream.channels.deleteTagBinding
  • livestream.channels.get
  • livestream.channels.list
  • livestream.channels.listEffectiveTags
  • livestream.channels.listTagBindings
  • livestream.channels.start
  • livestream.channels.stop
  • livestream.channels.update
  • livestream.clips.create
  • livestream.clips.delete
  • livestream.clips.get
  • livestream.clips.list
  • livestream.dvrSessions.create
  • livestream.dvrSessions.delete
  • livestream.dvrSessions.get
  • livestream.dvrSessions.list
  • livestream.dvrSessions.update
  • livestream.events.create
  • livestream.events.delete
  • livestream.events.get
  • livestream.events.list
  • livestream.inputs.create
  • livestream.inputs.createTagBinding
  • livestream.inputs.delete
  • livestream.inputs.deleteTagBinding
  • livestream.inputs.get
  • livestream.inputs.list
  • livestream.inputs.listEffectiveTags
  • livestream.inputs.listTagBindings
  • livestream.inputs.update
  • livestream.locations.get
  • livestream.locations.list
  • livestream.operations.cancel
  • livestream.operations.delete
  • livestream.operations.get
  • livestream.operations.list
  • livestream.pools.createTagBinding
  • livestream.pools.deleteTagBinding
  • livestream.pools.get
  • livestream.pools.listEffectiveTags
  • livestream.pools.listTagBindings
  • livestream.pools.update

resourcemanager.projects.get

resourcemanager.projects.list

Para mais informações sobre papéis, consulte Noções básicas sobre papéis.

Acesso ao Cloud Storage

Por padrão, a API Live Stream tem acesso a todos os buckets do Cloud Storage do seu projeto. Quando você cria seu primeiro evento de transmissão ao vivo, a API Live Stream cria uma conta de serviço usando a seguinte convenção de nomenclatura:

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

PROJECT_NUMBER é o número do seu projeto com a API Live Stream ativada. Essa conta de serviço recebe o papel de agente de serviço do Live Stream e tem permissões para fazer o seguinte:

  • Ler arquivos nos buckets do Cloud Storage do projeto
  • Fazer upload de arquivos para os buckets do Cloud Storage do projeto
  • Excluir arquivos nos buckets do Cloud Storage do projeto
  • Listar arquivos e os metadados deles nos buckets do Cloud Storage do projeto

Como limitar o acesso

Para limitar esse acesso aos buckets do Cloud Storage, remova o papel de agente de serviço do Live Stream da conta de serviço e substitua-o por acesso mais detalhado. Siga estas etapas:

  1. Acesse a IAM página (Permissões guia) no Google Cloud console.
  2. Encontre a conta de serviço com o papel de agente de serviço do Live Stream e selecione o botão "Editar".
  3. Exclua o papel de agente de serviço do Live Stream da conta de serviço.
  4. Conceda acesso à conta de serviço para cada bucket individual do Cloud Storage:
    1. Acesse a página Navegador do Cloud Storage.
    2. Clique em um bucket.
    3. Selecione a guia Permissões.
    4. Clique em Adicionar.
    5. No campo Novos principais, digite o nome da conta de serviço.
    6. Em Papel, selecione Administrador de objetos do Storage.
    7. Clique em Salvar. A API Live Stream agora tem acesso ao bucket.