Ce document décrit les options de contrôle des accès à votre disposition dans Pub/Sub.
Présentation
Pub/Sub utilise Identity and Access Management (IAM) pour le contrôle des accès.
IAM vous permet d'attribuer des rôles spécifiques à des utilisateurs, des groupes et des comptes de service, en leur accordant les autorisations nécessaires pour effectuer leurs tâches. Vous pouvez attribuer ces rôles IAM à l'aide de la console Google Cloud ou de l'API IAM.
Dans Pub/Sub, vous pouvez configurer le contrôle des accès au niveau du projet et au niveau de ressources individuelles. Voici quelques exemples d'utilisation du contrôle des accès Pub/Sub:
Accordez l'accès par ressource plutôt qu'à l'intégralité d'un projet Cloud.
Accordez un accès avec des fonctionnalités restreintes, par exemple en autorisant uniquement la publication de messages dans un sujet ou uniquement la consultation de messages d'un abonnement, mais pas la suppression du sujet ou de l'abonnement.
Accordez à un groupe de développeurs l'accès à toutes les ressources Pub/Sub au sein d'un projet.
Si vous disposez d'un accès en lecture seule à une seule ressource, telle qu'un thème ou un abonnement, vous ne pouvez pas l'afficher à l'aide de la console Google Cloud. Vous pouvez utiliser Google Cloud CLI pour afficher la ressource.
Pour une description détaillée d'IAM et de ses fonctionnalités, consultez la documentation IAM. et en particulier la page Accorder, modifier et révoquer les accès à des ressources.
Types de rôles dans Pub/Sub
Comme les autres produits Google Cloud , Pub/Sub prend en charge trois types de rôles:
Rôles de base: les rôles de base sont des rôles très permissifs qui existaient avant la mise en place d'IAM. Pour en savoir plus sur les rôles de base, consultez la section Rôles de base.
Rôles prédéfinis: les rôles prédéfinis permettent un accès précis à des ressourcesGoogle Cloud spécifiques. Pour en savoir plus sur les rôles prédéfinis, consultez la section Rôles prédéfinis. Les rôles prédéfinis Pub/Sub sont inclus dans une section ultérieure de cette section.
Rôles personnalisés: les rôles personnalisés vous aident à appliquer le principe du moindre privilège. Pour en savoir plus sur les rôles personnalisés, consultez la section Rôles personnalisés.
Autorisations Pub/Sub requises
Les sections suivantes répertorient les autorisations Pub/Sub requises pour accéder à différentes ressources Pub/Sub.
Autorisations requises pour les sujets
Le tableau suivant présente les autorisations requises pour chaque méthode de l'API Pub/Sub liée aux sujets. Il indique l'autorisation IAM requise pour appeler chaque méthode, ainsi qu'une description de son fonctionnement.
Méthode | Description | Autorisation requise |
---|---|---|
projects.topics.create
|
Crée le sujet donné avec le nom donné. | pubsub.topics.create sur le projet Cloud hôte |
projects.topics.delete
|
Supprime le sujet portant le nom donné. | pubsub.topics.delete sur le sujet demandé |
projects.topics.get
|
Récupère la configuration d'un sujet. | pubsub.topics.get sur le sujet demandé |
projects.topics.getIamPolicy
|
Récupère la stratégie de contrôle d'accès IAM pour un sujet. | pubsub.topics.getIamPolicy sur le sujet demandé |
projects.topics.list
|
Répertorie tous les sujets. | pubsub.topics.list sur le projet Cloud demandé |
projects.topics.patch
|
Met à jour un sujet existant. | pubsub.topics.update sur le sujet demandé |
projects.topics.publish
|
Ajoute un ou plusieurs messages au sujet. | pubsub.topics.publish sur le sujet demandé |
projects.topics.setIamPolicy
|
Définit la stratégie de contrôle des accès IAM pour un sujet. | pubsub.topics.setIamPolicy sur le sujet demandé |
projects.topics.testIamPermissions
|
Renvoie les autorisations qu'un appelant a sur la ressource spécifiée. | Aucun |
Autorisations requises pour les abonnements
Le tableau suivant présente les autorisations requises pour chaque méthode de l'API Pub/Sub liée aux abonnements. Il indique l'autorisation IAM requise pour appeler chaque méthode, ainsi qu'une description de son fonctionnement.
Méthode | Description | Autorisation requise |
---|---|---|
projects.subscriptions.acknowledge
|
Confirme les messages associés aux ack_ids dans AcknowledgeRequest. | pubsub.subscriptions.consume sur l'abonnement demandé |
projects.subscriptions.create
|
Crée un abonnement à un sujet donné. | pubsub.subscriptions.create sur le projet Cloud hôte et pubsub.topics.attachSubscription sur le sujet demandé.
Pour créer un abonnement S dans le projet A associé à un sujet T dans le projet B, les autorisations appropriées doivent être accordées à la fois au projet A et au sujet T. Dans ce cas, les informations sur l'identité de l'utilisateur peuvent être capturées dans les journaux d'audit du projet B. |
projects.subscriptions.delete
|
Supprime un abonnement existant. | pubsub.subscriptions.delete sur l'abonnement demandé |
projects.subscriptions.detach
|
Dissocie un abonnement de ce sujet. | pubsub.subscriptions.detach sur l'abonnement |
projects.subscriptions.get
|
Récupère les détails de configuration d'un abonnement. | pubsub.subscriptions.get sur l'abonnement demandé |
projects.subscriptions.getIamPolicy
|
Récupère la stratégie de contrôle d'accès IAM pour un abonnement. | pubsub.subscriptions.getIamPolicy sur l'abonnement demandé |
projects.subscriptions.list
|
Répertorie les abonnements correspondants. | pubsub.subscriptions.list sur le projet Cloud demandé |
projects.subscriptions.modifyAckDeadline
|
Modifie le délai d'acquittement pour un message spécifique. | pubsub.subscriptions.consume sur l'abonnement demandé |
projects.subscriptions.modifyPushConfig
|
Modifie le pushConfig pour un abonnement spécifié. | pubsub.subscriptions.update sur l'abonnement demandé |
projects.subscriptions.patch
|
Met à jour un abonnement existant. | pubsub.subscriptions.update sur l'abonnement demandé |
projects.subscriptions.pull
|
Récupère les messages du serveur. | pubsub.subscriptions.consume sur l'abonnement demandé |
projects.subscriptions.seek
|
Recherche un abonnement existant à un moment donné ou un instantané. | pubsub.subscriptions.consume sur l'abonnement demandé et pubsub.snapshots.seek sur l'instantané demandé, le cas échéant. |
projects.subscriptions.setIamPolicy
|
Définit la stratégie de contrôle d'accès IAM pour un abonnement. | pubsub.subscriptions.setIamPolicy sur l'abonnement demandé |
projects.subscriptions.testIamPermissions
|
Renvoie les autorisations qu'un appelant a sur la ressource spécifiée. | Aucun |
Autorisations requises pour les schémas
Le tableau suivant présente les autorisations requises pour chaque méthode de l'API Pub/Sub liée aux schémas. Il indique l'autorisation IAM requise pour appeler chaque méthode, ainsi qu'une description de son fonctionnement.
Méthode | Description | Autorisation requise |
---|---|---|
projects.schemas.commit
|
Committe une nouvelle révision de schéma. | pubsub.schemas.commit sur le schéma demandé |
projects.schemas.create
|
Crée un schéma. | pubsub.schemas.create sur le projet Cloud hôte |
projects.schemas.delete
|
Supprime un schéma. | pubsub.schemas.delete sur le schéma demandé |
projects.schemas.deleteRevision
|
Supprime une révision de schéma spécifique. | pubsub.schemas.delete sur le schéma demandé |
projects.schemas.get
|
Récupère un schéma. | pubsub.schemas.get sur le schéma demandé |
projects.schemas.getIamPolicy
|
Récupère la stratégie de contrôle des accès IAM pour un schéma. | pubsub.schemas.getIamPolicy sur le schéma demandé |
projects.schemas.list
|
Répertorie les schémas d'un projet. | pubsub.schemas.list sur le projet Cloud demandé |
projects.schemas.listRevisions
|
Répertorie toutes les révisions du schéma pour le schéma nommé. | pubsub.schemas.listRevisions sur le schéma demandé |
projects.schemas.rollback
|
Crée une nouvelle révision de schéma à partir d'une révision précédente. | pubsub.schemas.rollback sur le schéma demandé |
projects.schemas.validate
|
Valide une définition de schéma. | pubsub.schemas.validate sur le projet Cloud hôte |
projects.schemas.validateMessage
|
Valide un message par rapport à un schéma. | pubsub.schemas.validate sur le projet Cloud hôte |
Autorisations requises pour les instantanés
Le tableau suivant présente les autorisations requises pour chaque méthode de l'API Pub/Sub liée aux instantanés. Il indique l'autorisation IAM requise pour appeler chaque méthode, ainsi qu'une description de son fonctionnement.
Méthode REST | Description | Autorisation requise |
---|---|---|
projects.snapshots.create
|
Crée un instantané à partir de l'abonnement demandé. | pubsub.snapshots.create sur le projet Cloud hôte et l'autorisation pubsub.subscriptions.consume sur l'abonnement source. |
projects.snapshots.delete
|
Supprime un instantané existant. | pubsub.snapshots.delete sur l'instantané demandé |
projects.snapshots.getIamPolicy
|
Récupère la stratégie de contrôle des accès IAM pour un instantané. | pubsub.snapshots.getIamPolicy sur l'instantané demandé |
projects.snapshots.list
|
Répertorie les instantanés existants. | pubsub.snapshots.list sur le projet Cloud demandé |
projects.snapshots.patch
|
Met à jour un instantané existant. | pubsub.snapshots.update sur l'instantané demandé |
projects.snapshots.setIamPolicy
|
Définit la stratégie de contrôle d'accès IAM pour un instantané. | pubsub.snapshots.setIamPolicy sur l'instantané demandé |
projects.snapshots.testIamPermissions
|
Renvoie les autorisations qu'un appelant a sur la ressource spécifiée. | Aucun |
Rôles Pub/Sub disponibles
Le tableau suivant répertorie tous les rôles Pub/Sub et les autorisations associées à chacun:
Role | Permissions |
---|---|
Pub/Sub Admin( Provides full access to topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Editor( Provides access to modify topics and subscriptions, and access to publish and consume messages. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Publisher( Provides access to publish messages to a topic. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Subscriber( Provides access to consume messages from a subscription and to attach subscriptions to a topic. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Viewer( Provides access to view topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Contrôler les accès via la console Google Cloud
Vous pouvez utiliser la console Google Cloud pour gérer le contrôle des accès à vos thèmes et vos projets.
Pour définir les contrôles d'accès au niveau du projet, procédez comme suit:
Dans la console Google Cloud, accédez à la page IAM.
Sélectionnez votre projet.
Cliquez sur
Ajouter.Saisissez un ou plusieurs noms de compte principal.
Dans la liste Sélectionner un rôle, sélectionnez le rôle que vous souhaitez accorder.
Cliquez sur Enregistrer.
Vérifiez que le compte principal est bien répertorié avec le rôle que vous lui avez accordé.
Pour définir le contrôle des accès aux sujets et aux abonnements, procédez comme suit:
Dans la console Google Cloud, accédez à la liste des sujets Pub/Sub.
Si nécessaire, sélectionnez le projet que vous avez activé pour Pub/Sub.
Effectuez l'une des opérations suivantes :
Pour définir des rôles pour un ou plusieurs thèmes, sélectionnez-les.
Pour définir des rôles pour un abonnement associé à un sujet, cliquez sur l'ID du sujet. Sur la page Détails du sujet, cliquez sur l'ID de l'abonnement. La page Détails de l'abonnement s'affiche.
Si le panneau d'informations est masqué, cliquez sur Afficher le panneau d'informations.
Dans l'onglet Autorisations, cliquez sur
Ajouter un compte principal.Saisissez un ou plusieurs noms de compte principal.
Dans la liste Sélectionner un rôle, sélectionnez le rôle que vous souhaitez accorder.
Cliquez sur Enregistrer.
Contrôler l'accès via l'API IAM
L'API Cloud IAM pour Pub/Sub vous permet de définir et d'obtenir des stratégies sur des sujets et des abonnements individuels au sein d'un projet, ainsi que de tester les autorisations d'un utilisateur pour une ressource donnée. Comme avec les méthodes Pub/Sub classiques, vous pouvez appeler les méthodes de l'API IAM via les bibliothèques clientes, l'explorateur d'API ou directement via HTTP.
Notez que l'API IAM Pub/Sub ne permet pas de gérer les stratégies au niveau du Google Cloud projet.
Dans les sections suivantes, vous trouverez des exemples illustrant la procédure à suivre pour définir et obtenir une stratégie, ainsi que pour tester les autorisations dont dispose un appelant pour une ressource donnée.
Obtenir une politique
La méthode getIamPolicy()
vous permet d'obtenir une stratégie existante.
Cette méthode renvoie un objet JSON contenant la stratégie associée à la ressource.
Voici un exemple de code permettant d'obtenir la stratégie applicable à un abonnement :
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
Pour obtenir la stratégie d'abonnement, procédez comme suit :
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Sortie :
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.gserviceaccount.com", "user:user-3@gmail.com" } ] }
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage PHP qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour PHP.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Voici un exemple de code permettant d'obtenir une stratégie applicable à un sujet :
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
Obtenir la stratégie relative au sujet
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json
Sortie :
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role":" roles/pubsub.viewer", "members": [ "user:user-1@gmail.com" ] } ] }
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage PHP qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour PHP.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Définir une stratégie
La méthode setIamPolicy()
vous permet d'associer une stratégie à une ressource. La méthode setIamPolicy()
prend un message SetIamPolicyRequest
, qui contient la stratégie à appliquer et la ressource à laquelle la stratégie est associée.
Il renvoie la stratégie qui en résulte.
Voici un exemple de code permettant de définir une stratégie pour un abonnement :
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
1. Enregistrez la stratégie concernant l'abonnement.
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json > subscription_policy.json
2. Ouvrez subscription_policy.json
et mettez à jour les liaisons en attribuant les rôles appropriés aux comptes principaux appropriés.
Pour en savoir plus sur l'utilisation des fichiers subscription_policy.json
, consultez la section Stratégies dans la documentation Cloud IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.gserviceaccount.com" } ] }
3. Appliquez la nouvelle stratégie d'abonnement.
gcloud pubsub subscriptions set-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ subscription_policy.json
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Voici un exemple de code permettant de définir une stratégie pour un sujet :
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
1. Enregistrez la stratégie pour le sujet.
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json > topic_policy.json
2. Ouvrez topic_policy.json
et mettez à jour les liaisons en attribuant les rôles appropriés aux comptes principaux appropriés.
Pour en savoir plus sur l'utilisation des fichiers subscription_policy.json
, consultez la section Stratégies dans la documentation Cloud IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.editor", "members": [ "user:user-1@gmail.com", "user:user-2@gmail.com" ] } ] }
3. Appliquez la nouvelle stratégie relative au sujet.
gcloud pubsub topics set-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ topic_policy.json
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Tester les autorisations
Vous pouvez utiliser la méthode testIamPermissions()
afin de vérifier, parmi les autorisations données, celles qui peuvent être ajoutées ou supprimées pour cette ressource. Elle prend comme paramètres un nom de ressource et un ensemble d'autorisations, et renvoie le sous-ensemble d'autorisations.
Voici un exemple de code permettant de tester les autorisations sur un abonnement :
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Sortie :
[ { "name": "pubsub.subscriptions.consume", "stage": "GA" }, { "name": "pubsub.subscriptions.delete", "stage": "GA" }, { "name": "pubsub.subscriptions.get", "stage": "GA" }, { "name": "pubsub.subscriptions.getIamPolicy", "stage": "GA" }, { "name": "pubsub.subscriptions.setIamPolicy", "stage": "GA" }, { "name": "pubsub.subscriptions.update", "stage": "GA" } ]
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage PHP qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour PHP.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Voici un exemple de code permettant de tester les autorisations sur un sujet :
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/topics/${TOPIC} \ --format json
Sortie
[ { "name": "pubsub.topics.attachSubscription", "stage": "GA" }, { "name": "pubsub.topics.delete", "stage": "GA" }, { "name": "pubsub.topics.detachSubscription", "stage": "GA" }, { "name": "pubsub.topics.get", "stage": "GA" }, { "name": "pubsub.topics.getIamPolicy", "stage": "GA" }, { "name": "pubsub.topics.publish", "stage": "GA" }, { "name": "pubsub.topics.setIamPolicy", "stage": "GA" }, { "name": "pubsub.topics.update", "stage": "GA" } ]
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage PHP qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour PHP.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Communication entre projets
Cloud IAM pour Pub/Sub est utile pour ajuster les accès avec précision dans le cadre de la communication entre projets.
Supposons qu'un compte de service dans le projet Cloud A souhaite publier des messages dans un sujet du projet Cloud B. Commencez par activer l'API Pub/Sub dans le projet A.
Deuxièmement, accordez au compte de service l'autorisation Modifier dans le projet Cloud B. Toutefois, cette approche manque bien souvent de précision. Vous pouvez affiner le niveau d'accès à l'aide de l'API Cloud IAM.
Par exemple, cet extrait utilise la méthode setIamPolicy()
dans project-b ainsi qu'un fichier topic_policy.json
préparé pour accorder au compte de service foobar@
project-a.iam.gserviceaccount.com
du project-a le rôle d'éditeur sur le sujet projects/
project-b/topics/
topic-b :
gcloud pubsub topics set-iam-policy \ projects/project-b /topics/topic-b \ topic_policy.json
Updated IAM policy for topictopic-b . bindings: - members: - serviceAccount:foobar@project-a .iam.gserviceaccount.com role: roles/pubsub.publisher etag: BwWGrQYX6R4=
Comportement de disponibilité partielle
Les vérifications d'autorisations dépendent du sous-système IAM. Afin de toujours garantir une faible latence de réponse pour les opérations sur les données (publication et consultation de messages), le système peut s'appuyer sur les stratégies Cloud IAM mises en cache. Pour en savoir plus sur le délai d'application de vos modifications, consultez la documentation Cloud IAM.