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 consoleGoogle 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 afficher la ressource à 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 accepte trois types de rôles :
Rôles de base : il s'agit de 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 Rôles de base.
Rôles prédéfinis : les rôles prédéfinis offrent un accès précis à des ressourcesGoogle Cloud spécifiques. Pour en savoir plus sur les rôles prédéfinis, consultez Rôles prédéfinis. Les rôles prédéfinis Pub/Sub sont inclus dans une partie ultérieure de cette section.
Rôles personnalisés : ils vous aident à appliquer le principe du moindre privilège. Pour en savoir plus sur les rôles personnalisés, consultez Rôles personnalisés.
Autorisations Pub/Sub requises
Les sections suivantes listent les autorisations Pub/Sub requises pour accéder aux différentes ressources Pub/Sub.
Autorisations requises pour les thèmes
Le tableau suivant présente les autorisations requises pour chaque méthode de l'API Pub/Sub liée aux thèmes. Il indique l'autorisation IAM requise pour appeler chaque méthode, ainsi qu'une description de ce que fait la méthode.
| 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 spécifié. | pubsub.topics.delete
sur le sujet demandé |
projects.topics.get
|
Obtient la configuration d'un sujet. | pubsub.topics.get
sur le sujet demandé |
projects.topics.getIamPolicy
|
Récupère la stratégie IAM de contrôle des accès pour un sujet. | pubsub.topics.getIamPolicy
sur le sujet demandé |
projects.topics.list
|
Liste tous les thèmes. | 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 IAM de contrôle des accès 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 ce que fait la méthode.
| 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 qui est associé à un sujet T dans le projet B, les autorisations appropriées doivent être accordées sur le projet A et sur le 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 d'un sujet. | pubsub.topics.detachSubscription sur le sujet auquel l'abonnement est associé. |
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 des accès IAM pour un abonnement. | pubsub.subscriptions.getIamPolicy
sur l'abonnement demandé. |
projects.subscriptions.list
|
Liste les abonnements correspondants. | pubsub.subscriptions.list
sur le projet Cloud demandé |
projects.subscriptions.modifyAckDeadline
|
Modifie le délai de confirmation pour un message spécifique. | pubsub.subscriptions.consume
sur l'abonnement demandé. |
projects.subscriptions.modifyPushConfig
|
Modifie la configuration push 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 précis 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 IAM de contrôle des accès 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 ce que fait la méthode.
| Méthode | Description | Autorisation requise |
|---|---|---|
projects.schemas.commit
|
Valide une nouvelle révision du 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
|
Permet d'obtenir un schéma. | pubsub.schemas.get
sur le schéma demandé |
projects.schemas.getIamPolicy
|
Récupère la stratégie IAM de contrôle des accès 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
|
Liste toutes les révisions de schéma pour le schéma nommé. | pubsub.schemas.listRevisions
sur le schéma demandé |
projects.schemas.rollback
|
Crée une 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 ce que fait la méthode.
| 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 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 IAM de contrôle des accès pour un instantané. | pubsub.snapshots.getIamPolicy
sur l'instantané demandé |
projects.snapshots.list
|
Liste 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 des 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 d'eux :
| 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:
|
|