Controle de acesso com o IAM

Visão geral

A API Live Stream usa o Identity and Access Management (IAM) para controle de acesso.

É possível configurar o controle de acesso da API Live Stream no nível do projeto. Por exemplo, permita que os desenvolvedores listem e acessem todos os eventos de 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 que o autor da chamada tenha as permissões necessárias. Para mais informações, consulte Permissões e Papéis.

Permissões

Esta seção resume as permissões da API Live Stream compatíveis 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 dos recursos Permissões necessárias
assets.create livestream.assets.create no local pai, que é uma combinação específica de projeto do Google Cloud e localização 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 projeto do Google Cloud e localização 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 projeto do Google Cloud e local de dados.
channels.delete livestream.channels.delete no recurso do canal.
channels.get livestream.channels.get no recurso do canal.
channels.list livestream.channels.list no local pai, que é uma combinação específica de projeto do Google Cloud e local de dados.
channels.patch livestream.channels.update no recurso do canal.
channels.start livestream.channels.start no recurso do canal.
channels.stop livestream.channels.stop no recurso do canal.
Nome do método de eventos Permissões necessárias
events.create livestream.events.create no canal principal do recurso.
events.delete livestream.events.delete no recurso do evento.
events.get livestream.events.get no recurso do evento.
events.list livestream.events.list no canal principal 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 projeto do Google Cloud e localização 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 projeto do Google Cloud e localização 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 do pool.
pools.patch livestream.pools.patch no recurso do pool.

Papéis

A tabela a seguir lista os papéis de 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.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)

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.delete
  • livestream.channels.get
  • livestream.channels.list
  • livestream.channels.start
  • livestream.channels.stop
  • livestream.channels.update
  • 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 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 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 projeto com a API Live Stream ativada. Essa conta de serviço recebe o papel de Agente de serviço de transmissão ao vivo e tem permissões para fazer o seguinte:

  • Ler arquivos nos buckets do Cloud Storage do seu projeto
  • Faça upload de arquivos nos buckets do Cloud Storage do seu projeto
  • Exclua arquivos nos buckets do Cloud Storage do seu projeto
  • Listar arquivos e os respectivos metadados nos buckets do Cloud Storage do seu projeto

Como limitar o acesso

Para limitar esse acesso aos seus buckets do Cloud Storage, remova o papel de Agente de serviço de transmissão ao vivo da conta de serviço e substitua-o por um acesso mais refinado. Siga estas etapas:

  1. Acesse a página IAM (guia Permissões) no console do Google Cloud.
  2. Encontre a conta de serviço com o papel de Agente de serviço de transmissão ao vivo e selecione o botão de edição.
  3. Exclua o papel de Agente de serviço de transmissão ao vivo 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.