Ce document décrit les options de contrôle des accès à votre disposition dans Pub/Sub.
Présentation
Pub/Sub fait appel à Cloud IAM (Cloud Identity and Access Management) pour le contrôle des accès.
Dans Pub/Sub, vous pouvez configurer le contrôle des accès au niveau du projet et au niveau de ressources individuelles. Exemple :
- Accordez l'accès par sujet ou par abonnement 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.
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.
Pour appeler une méthode Pub/Sub, l'utilisateur doit disposer des autorisations requises. Pour obtenir la liste des autorisations et des rôles compatibles avec Cloud IAM pour Pub/Sub, consultez la section Rôles ci-dessous.
Autorisations et rôles
Cette section récapitule les autorisations et les rôles gérés par Cloud IAM pour Pub/Sub.
Autorisations requises
Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode :
Méthode | Autorisations requises |
---|---|
projects.snapshots.create |
Les autorisations pubsub.snapshots.create sur le projet Cloud hôte et pubsub.subscriptions.consume sur l'abonnement source. |
projects.snapshots.delete |
pubsub.snapshots.delete sur l'instantané demandé. |
projects.snapshots.getIamPolicy |
pubsub.snapshots.getIamPolicy sur l'instantané demandé. |
projects.snapshots.list |
pubsub.snapshots.list sur le projet Cloud demandé. |
projects.snapshots.patch |
pubsub.snapshots.update sur l'instantané demandé. |
projects.snapshots.setIamPolicy |
pubsub.snapshots.setIamPolicy sur l'instantané demandé. |
projects.snapshots.testIamPermissions |
Aucun |
projects.subscriptions.acknowledge |
pubsub.subscriptions.consume sur l'abonnement demandé. |
projects.subscriptions.create |
pubsub.subscriptions.create sur le projet Cloud hôte et pubsub.topics.attachSubscription sur le sujet demandé.
Notez que pour créer un abonnement au sein du projet A pour un sujet S du projet B, les autorisations appropriées doivent être accordées sur le projet A et sur le sujet S. 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 |
pubsub.subscriptions.delete sur l'abonnement demandé. |
projects.subscriptions.get |
pubsub.subscriptions.get sur l'abonnement demandé. |
projects.subscriptions.getIamPolicy |
pubsub.subscriptions.getIamPolicy sur l'abonnement demandé. |
projects.subscriptions.list |
pubsub.subscriptions.list sur le projet Cloud demandé. |
projects.subscriptions.modifyAckDeadline |
pubsub.subscriptions.consume sur l'abonnement demandé. |
projects.subscriptions.modifyPushConfig |
pubsub.subscriptions.update sur l'abonnement demandé. |
projects.subscriptions.patch |
pubsub.subscriptions.update sur l'abonnement demandé. |
projects.subscriptions.pull |
pubsub.subscriptions.consume sur l'abonnement demandé. |
projects.subscriptions.seek |
pubsub.subscriptions.consume sur l'abonnement demandé et pubsub.snapshots.seek sur l'instantané demandé, le cas échéant. |
projects.subscriptions.setIamPolicy |
pubsub.subscriptions.setIamPolicy sur l'abonnement demandé. |
projects.subscriptions.testIamPermissions |
Aucun |
projects.topics.create |
pubsub.topics.create sur le projet Cloud hôte. |
projects.topics.delete |
pubsub.topics.delete sur le sujet demandé. |
projects.topics.detachSubscription |
pubsub.topics.detachSubscription sur le sujet demandé. |
projects.topics.get |
pubsub.topics.get sur le sujet demandé. |
projects.topics.getIamPolicy |
pubsub.topics.getIamPolicy sur le sujet demandé. |
projects.topics.list |
pubsub.topics.list sur le projet Cloud demandé. |
projects.topics.patch |
pubsub.topics.update sur le sujet demandé. |
projects.topics.publish |
pubsub.topics.publish sur le sujet demandé. |
projects.topics.setIamPolicy |
pubsub.topics.setIamPolicy sur le sujet demandé. |
projects.topics.subscriptions.list |
pubsub.topics.get sur le sujet demandé. |
projects.topics.testIamPermissions |
Aucun |
Rôles
Le tableau suivant répertorie les rôles Cloud IAM pour Pub/Sub, ainsi que la liste de toutes les autorisations incluses dans chaque rôle. Notez que chaque autorisation est applicable à un type de ressource particulier.
Ces rôles préconfigurés répondent à de nombreux cas d'utilisation typiques. Cependant, vous pouvez avoir besoin d'un rôle comprenant un ensemble d'autorisations personnalisé. Par exemple, imaginons que vous souhaitez créer un rôle permettant à un utilisateur de créer un abonnement dans un projet, sans l'autoriser à supprimer ou mettre à jour des sujets ou des abonnements existants dans le projet. Dans ce cas, vous pouvez créer un rôle personnalisé IAM qui répond à vos besoins.
Rôle | Autorisation(s) associée(s) | Type de ressource concerné |
---|---|---|
roles/pubsub.publisher |
pubsub.topics.publish |
Sujet |
roles/pubsub.subscriber |
pubsub.snapshots.seek |
Instantané |
pubsub.subscriptions.consume |
Abonnement | |
pubsub.topics.attachSubscription |
Sujet | |
roles/pubsub.viewer ouroles/viewer |
pubsub.snapshots.get |
Instantané |
pubsub.snapshots.list |
Projet | |
pubsub.subscriptions.get |
Abonnement | |
pubsub.subscriptions.list |
Projet | |
pubsub.topics.get |
Sujet | |
pubsub.topics.list |
Projet | |
resourcemanager.projects.get |
Projet | |
servicemanagement.projectSettings.get |
Projet | |
serviceusage.quotas.get |
Projet | |
serviceusage.services.get |
Projet | |
serviceusage.services.list |
Projet | |
roles/pubsub.editor ouroles/editor |
Tout ce qui précède, ainsi que : | |
pubsub.snapshots.create |
Projet | |
pubsub.snapshots.delete |
Instantané | |
pubsub.snapshots.update |
Instantané | |
pubsub.subscriptions.create
|
Projet | |
pubsub.subscriptions.delete |
Abonnement | |
pubsub.subscriptions.update |
Abonnement | |
pubsub.topics.create |
Projet | |
pubsub.topics.delete |
Sujet | |
pubsub.topics.detachSubscription |
Sujet | |
pubsub.topics.update |
Sujet | |
pubsub.topics.updateTag |
Sujet | |
roles/pubsub.admin ouroles/owner |
Tout ce qui précède, ainsi que : | |
pubsub.snapshots.getIamPolicy |
Instantané | |
pubsub.snapshots.setIamPolicy |
Instantané | |
pubsub.subscriptions.getIamPolicy |
Abonnement | |
pubsub.subscriptions.setIamPolicy |
Abonnement | |
pubsub.topics.getIamPolicy |
Sujet | |
pubsub.topics.setIamPolicy |
Sujet |
Les rôles roles/owner, roles/editor et roles/viewer incluent également des autorisations pour les autres services Google Cloud.
Contrôler les accès via Google Cloud Console
Vous pouvez utiliser la console GCP pour gérer le contrôle d'accès pour vos sujets et projets.
Pour définir les autorisations d'accès au niveau du projet :
- Ouvrez la page IAM dans Cloud Console.
- Sélectionnez votre projet, puis cliquez sur Continuer.
- Cliquez sur Ajouter un membre.
- Saisissez l'adresse e-mail d'un membre à qui vous n'avez pas encore attribué de rôle Cloud IAM.
- Sélectionnez un rôle dans le menu déroulant.
- Cliquez sur Ajouter.
- Vérifiez que le membre 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 :
- Accédez à la page des sujets Pub/Sub dans la console.
- Sélectionnez le projet que vous avez activé pour Pub/Sub.
Sélectionnez le sujet ou l'abonnement.
Vous pouvez définir des autorisations pour plusieurs sujets à la fois. Si vous souhaitez définir les autorisations pour un abonnement à un sujet, développez le sujet et cliquez sur l'abonnement pour l'ouvrir dans sa propre page.
Cliquez sur Autorisations. Dans le volet qui s'affiche :
- Saisissez un ou plusieurs noms de membres.
- Sélectionnez un rôle dans le menu déroulant.
- Cliquez sur Ajouter.
Contrôler les accès via l'API Cloud 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 Cloud IAM via les bibliothèques clientes, l'explorateur d'API ou directement via HTTP.
Notez que l'API Cloud IAM pour Pub/Sub ne permet pas de gérer les stratégies au niveau du projet Google Cloud.
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 stratégie
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 :
C#
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
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" } ] }
Go
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.
Java
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.
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.
PHP
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.
Python
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.
Ruby
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 :
C#
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
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" ] } ] }
Go
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.
Java
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.
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.
PHP
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.
Python
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.
Ruby
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 :
C#
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
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 membres 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
Go
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.
Java
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.
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.
PHP
Python
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.
Ruby
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 :
C#
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
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 membres 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
Go
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.
Java
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.
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.
PHP
Python
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.
Ruby
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 les autorisations accordées à un appelant pour une ressource donnée. Elle prend comme paramètres un nom de ressource et un ensemble d'autorisations, et renvoie le sous-ensemble d'autorisations que possède l'appelant.
Voici un exemple de code permettant de tester les autorisations sur un abonnement :
C#
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
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" } ]
Go
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.
Java
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.
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.
PHP
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.
Python
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.
Ruby
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 :
C#
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
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" } ]
Go
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.
Java
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.
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.
PHP
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.
Python
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.
Ruby
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.
Exemple de cas d'utilisation : 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. Par exemple, supposons qu'un compte de service dans le projet Cloud A souhaite publier des messages dans un sujet du projet Cloud B. Une solution consiste à accorder au compte de service les droits de modification 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.jsonRésultat :
Updated IAM policy for topic topic-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.