Contrôle des accès avec IAM

Présentation

L'API Live Stream utilise Identity and Access Management (IAM) pour le contrôle des accès.

Vous pouvez configurer le contrôle des accès pour l'API Live Stream au niveau du projet. Vous pouvez par exemple autoriser les développeurs à répertorier et à obtenir tous les événements d'un projet.

Pour une description détaillée d'IAM et de ses fonctionnalités, consultez la documentation IAM. en particulier la section expliquant comment gérer les stratégies Cloud IAM.

Pour appeler une méthode de l'API Live Stream, l'utilisateur doit disposer des autorisations requises. Pour en savoir plus, consultez les sections Autorisations et Rôles.

Autorisations

Cette section récapitule les autorisations de l'API Live Stream compatibles avec IAM.

Autorisations requises

Les tableaux suivants répertorient les autorisations IAM associées à l'API Live Stream.

Nom de la méthode des composants Autorisations requises
assets.create livestream.assets.create sur l'emplacement parent, qui est une combinaison spécifique de Google Cloud projet et d'emplacement de données.
assets.delete livestream.assets.delete sur la ressource du composant.
assets.get livestream.assets.get sur la ressource du composant.
assets.list livestream.assets.list sur l'emplacement parent, qui est une combinaison spécifique de Google Cloud projet et d'emplacement de données Google Cloud .
Nom de la méthode "channels" Autorisations requises
channels.create livestream.channels.create sur l'emplacement parent, qui est une combinaison spécifique de projet et d'emplacement de données. Google Cloud
channels.delete livestream.channels.delete sur la ressource de chaîne.
channels.get livestream.channels.get sur la ressource de chaîne.
channels.list livestream.channels.list sur l'emplacement parent, qui est une combinaison spécifique de projet et d'emplacement de données. Google Cloud
channels.patch livestream.channels.update sur la ressource de chaîne.
channels.start livestream.channels.start sur la ressource de chaîne.
channels.stop livestream.channels.stop sur la ressource de chaîne.
Nom de la méthode des extraits Autorisations requises
channels.clips.create livestream.clips.create sur la chaîne parente de la ressource.
channels.clips.delete livestream.clips.delete sur la ressource de l'extrait.
channels.clips.get livestream.clips.get sur la ressource de l'extrait.
channels.clips.list livestream.clips.list sur la chaîne parente de la ressource.
Nom de la méthode d'événements Autorisations requises
channels.events.create livestream.events.create sur la chaîne parente de la ressource.
channels.events.delete livestream.events.delete sur la ressource de l'événement.
channels.events.get livestream.events.get sur la ressource de l'événement.
channels.events.list livestream.events.list sur la chaîne parente de la ressource.
Nom de la méthode des entrées Autorisations requises
inputs.create livestream.inputs.create sur l'emplacement parent, qui est une combinaison spécifique de Google Cloud projet et d'emplacement de données.
inputs.delete livestream.inputs.delete sur la ressource d'entrée.
inputs.get livestream.inputs.get sur la ressource d'entrée.
inputs.list livestream.inputs.list sur l'emplacement parent, qui est une combinaison spécifique de Google Cloud projet et d'emplacement de données Google Cloud .
inputs.patch livestream.inputs.update sur la ressource d'entrée.
Nom de la méthode des pools Autorisations requises
pools.get livestream.pools.get sur la ressource de pool.
pools.patch livestream.pools.patch sur la ressource de pool.

Rôles

Le tableau suivant répertorie les rôles IAM de l'API Live Stream, y compris les autorisations associées à chaque rôle :

Rôle IAM Autorisations

(roles/livestream.viewer)

Accès en lecture aux ressources de flux en direct.

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)

Accès complet à toutes les ressources de flux en direct.

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

Pour en savoir plus sur les rôles, consultez la page Comprendre les rôles.

Accès à Cloud Storage

Par défaut, l'API Live Stream a accès à tous les buckets Cloud Storage de votre projet. Lorsque vous créez votre premier événement de diffusion en direct, l'API Live Stream crée un compte de service en utilisant la convention d'attribution de noms suivante :

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

PROJECT_NUMBER est le numéro de votre projet avec l'API Live Stream activée. Ce compte de service se voit attribuer le rôle d'agent de service Live Stream et est autorisé à effectuer les opérations suivantes :

  • Lire des fichiers dans les buckets Cloud Storage de votre projet
  • Importer des fichiers dans les buckets Cloud Storage de votre projet
  • Supprimer des fichiers dans les buckets Cloud Storage de votre projet
  • Lister les fichiers et leurs métadonnées dans les buckets Cloud Storage de votre projet

Limiter l'accès

Pour limiter cet accès à vos buckets Cloud Storage, supprimez le rôle d'agent de service Live Stream du compte de service et remplacez-le par un accès plus restreint. Procédez comme suit :

  1. Accédez à la page IAM (onglet Autorisations) de la console Google Cloud .
  2. Recherchez le compte de service doté du rôle "Agent de service Live Stream" et sélectionnez le bouton de modification.
  3. Supprimez le rôle d'agent de service Live Stream du compte de service.
  4. Accordez l'accès au compte de service pour chaque bucket Cloud Storage :
    1. Accéder à la page du navigateur Cloud Storage
    2. Cliquez sur un bucket.
    3. Sélectionnez l'onglet Autorisations.
    4. Cliquez sur Ajouter.
    5. Dans le champ Nouveaux comptes principaux, saisissez le nom du compte de service.
    6. Sous Rôle, sélectionnez Administrateur des objets de l'espace de stockage.
    7. Cliquez sur Enregistrer. L'API Live Stream a désormais accès au bucket.