En este documento, se describen las opciones de control de acceso disponibles en Pub/Sub.
Descripción general
Pub/Sub usa la administración de identidades y accesos (IAM) para el control de acceso.
IAM te permite otorgar roles específicos a los usuarios, los grupos y las cuentas de servicio, lo que les otorga los permisos necesarios para realizar sus tareas. Puedes otorgar estos roles de IAM con la consola de Google Cloud o la API de IAM.
En Pub/Sub, el control de acceso se puede configurar a nivel de proyecto y a nivel de los recursos individuales. Estos son algunos ejemplos del uso del control de acceso de Pub/Sub:
Otorga acceso por recurso, en lugar de hacerlo para todo el proyecto de Cloud.
Otorga acceso con capacidades limitadas, por ejemplo, a fin de publicar mensajes en un tema o consumir mensajes de una suscripción, pero no para borrar el tema o la suscripción.
Otorga acceso a un grupo de desarrolladores a todos los recursos de Pub/Sub de un proyecto.
Si tienes acceso de solo lectura a un solo recurso, como un tema o una suscripción, no puedes ver el recurso con la consola de Google Cloud. En su lugar, puedes usar Google Cloud CLI para ver el recurso.
Para obtener una descripción detallada de IAM y sus características, consulta la documentación de IAM. En particular, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.
Tipos de roles en Pub/Sub
Al igual que otros Google Cloud productos, Pub/Sub admite tres tipos de roles:
Roles básicos: Los roles básicos son roles muy permisivos que existían antes de la introducción de IAM. Para obtener más información sobre los roles básicos, consulta Roles básicos.
Funciones predefinidas: Las funciones predefinidas proporcionan acceso detallado a recursosGoogle Cloud específicos. Para obtener más información sobre los roles predefinidos, consulta Roles predefinidos. Los roles predefinidos de Pub/Sub se incluyen más adelante en esta sección.
Roles personalizados: Los roles personalizados te ayudan a aplicar el principio de privilegio mínimo. Para obtener más información sobre las funciones personalizadas, consulta Funciones personalizadas.
Permisos de Pub/Sub necesarios
En las siguientes secciones, se enumeran los permisos de Pub/Sub necesarios para acceder a diferentes recursos de Pub/Sub.
Permisos necesarios para los temas
En la siguiente tabla, se describen los permisos necesarios para cada método de la API de Pub/Sub relacionado con los temas. Muestra qué permiso de IAM se necesita para llamar a cada método, junto con una descripción de lo que hace el método.
Método | Descripción | Permiso necesario |
---|---|---|
projects.topics.create
|
Crea el tema determinado con el nombre indicado. | pubsub.topics.create en el proyecto de Cloud que lo contiene |
projects.topics.delete
|
Borra el tema con el nombre determinado. | pubsub.topics.delete en el tema solicitado |
projects.topics.get
|
Obtiene la configuración de un tema. | pubsub.topics.get en el tema solicitado |
projects.topics.getIamPolicy
|
Obtén la política de control de acceso de IAM para un tema. | pubsub.topics.getIamPolicy en el tema solicitado |
projects.topics.list
|
Enumera todos los temas. | pubsub.topics.list en el proyecto de Cloud solicitado |
projects.topics.patch
|
Actualiza un tema existente. | pubsub.topics.update en el tema solicitado |
projects.topics.publish
|
Agrega uno o más mensajes al tema. | pubsub.topics.publish en el tema solicitado |
projects.topics.setIamPolicy
|
Establece la política de control de acceso de IAM para un tema. | pubsub.topics.setIamPolicy en el tema solicitado |
projects.topics.testIamPermissions
|
Permite mostrar los permisos que tiene un emisor para un recurso específico. | Ninguno |
Permisos necesarios para las suscripciones
En la siguiente tabla, se describen los permisos necesarios para cada método de la API de Pub/Sub relacionado con las suscripciones. Muestra qué permiso de IAM se necesita para llamar a cada método, junto con una descripción de lo que hace.
Método | Descripción | Permiso necesario |
---|---|---|
projects.subscriptions.acknowledge
|
Confirma los mensajes asociados con los ack_ids en AcknowledgeRequest. | pubsub.subscriptions.consume en la suscripción solicitada |
projects.subscriptions.create
|
Crea una suscripción a un tema determinado. | pubsub.subscriptions.create en el proyecto de Cloud que lo contiene y pubsub.topics.attachSubscription en el tema solicitado.
Para crear una suscripción S en el proyecto A que esté adjunta a un tema T en el proyecto B, se deben otorgar los permisos correspondientes en el proyecto A y en el tema T. En este caso, la información de identidad del usuario se puede capturar en los registros de auditoría del Proyecto B. |
projects.subscriptions.delete
|
Borra una suscripción existente. | pubsub.subscriptions.delete en la suscripción solicitada |
projects.subscriptions.detach
|
Desconecta una suscripción de este tema. | pubsub.subscriptions.detach en la suscripción |
projects.subscriptions.get
|
Obtiene los detalles de configuración de una suscripción. | pubsub.subscriptions.get
en la suscripción solicitada |
projects.subscriptions.getIamPolicy
|
Obtén la política de control de acceso de IAM para una suscripción. | pubsub.subscriptions.getIamPolicy
en la suscripción solicitada |
projects.subscriptions.list
|
Muestra una lista de las suscripciones que coinciden. | pubsub.subscriptions.list en el proyecto de Cloud solicitado |
projects.subscriptions.modifyAckDeadline
|
Modifica la fecha límite de confirmación de un mensaje específico. | pubsub.subscriptions.consume en la suscripción solicitada |
projects.subscriptions.modifyPushConfig
|
Modifica pushConfig para una suscripción especificada. | pubsub.subscriptions.update en la suscripción solicitada |
projects.subscriptions.patch
|
Actualiza una suscripción existente. | pubsub.subscriptions.update
en la suscripción solicitada |
projects.subscriptions.pull
|
Extrae mensajes del servidor. | pubsub.subscriptions.consume
en la suscripción solicitada |
projects.subscriptions.seek
|
Busca una suscripción existente a un punto en el tiempo o una instantánea. | pubsub.subscriptions.consume en la suscripción solicitada y pubsub.snapshots.seek en la instantánea solicitada, si la hubiera. |
projects.subscriptions.setIamPolicy
|
Establece la política de control de acceso de IAM para una suscripción. | pubsub.subscriptions.setIamPolicy en la suscripción solicitada |
projects.subscriptions.testIamPermissions
|
Permite mostrar los permisos que tiene un emisor para un recurso específico. | Ninguno |
Permisos necesarios para los esquemas
En la siguiente tabla, se describen los permisos necesarios para cada método de la API de Pub/Sub relacionado con los esquemas. Muestra qué permiso de IAM se necesita para llamar a cada método, junto con una descripción de lo que hace.
Método | Descripción | Permiso necesario |
---|---|---|
projects.schemas.commit
|
Confirma una nueva revisión del esquema. | pubsub.schemas.commit en el esquema solicitado |
projects.schemas.create
|
Crea un esquema. | pubsub.schemas.create en el proyecto de Cloud que lo contiene |
projects.schemas.delete
|
Borra un esquema. | pubsub.schemas.delete en el esquema solicitado |
projects.schemas.deleteRevision
|
Borra una revisión de esquema específica. | pubsub.schemas.delete en el esquema solicitado |
projects.schemas.get
|
Obtiene un esquema. | pubsub.schemas.get en el esquema solicitado |
projects.schemas.getIamPolicy
|
Obtiene la política de control de acceso de IAM para un esquema. | pubsub.schemas.getIamPolicy en el esquema solicitado |
projects.schemas.list
|
Muestra una lista de los esquemas de un proyecto. | pubsub.schemas.list en el proyecto de Cloud solicitado |
projects.schemas.listRevisions
|
Enumera todas las revisiones del esquema nombrado. | pubsub.schemas.listRevisions en el esquema solicitado |
projects.schemas.rollback
|
Crea una revisión de esquema nueva a partir de una revisión anterior. | pubsub.schemas.rollback en el esquema solicitado |
projects.schemas.validate
|
Valida una definición de esquema. | pubsub.schemas.validate en el proyecto de Cloud que lo contiene |
projects.schemas.validateMessage
|
Valida un mensaje en función de un esquema. | pubsub.schemas.validate en el proyecto de Cloud que lo contiene |
Permisos necesarios para las instantáneas
En la siguiente tabla, se describen los permisos necesarios para cada método de la API de Pub/Sub relacionado con los instantáneas. Muestra qué permiso de IAM se necesita para llamar a cada método, junto con una descripción de lo que hace.
Método REST | Descripción | Permiso necesario |
---|---|---|
projects.snapshots.create
|
Crea una instantánea a partir de la suscripción solicitada. | pubsub.snapshots.create en el proyecto de Cloud que lo contiene y el permiso pubsub.subscriptions.consume en la suscripción de origen. |
projects.snapshots.delete
|
Quita una instantánea existente. | pubsub.snapshots.delete en la instantánea solicitada |
projects.snapshots.getIamPolicy
|
Obtiene la política de control de acceso de IAM de una instantánea. | pubsub.snapshots.getIamPolicy en la instantánea solicitada |
projects.snapshots.list
|
Muestra una lista de las instantáneas existentes. | pubsub.snapshots.list en el proyecto de Cloud solicitado |
projects.snapshots.patch
|
Actualiza una instantánea existente. | pubsub.snapshots.update en la instantánea solicitada |
projects.snapshots.setIamPolicy
|
Establece la política de control de acceso de IAM para una instantánea. | pubsub.snapshots.setIamPolicy en la instantánea solicitada |
projects.snapshots.testIamPermissions
|
Permite mostrar los permisos que tiene un emisor para un recurso específico. | Ninguno |
Funciones de Pub/Sub disponibles
En la siguiente tabla, se enumeran todos los roles de Pub/Sub y los permisos asociados a cada uno:
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:
|
|
Controla el acceso a través de la consola de Google Cloud
Puedes usar la consola de Google Cloud para administrar el control de acceso a tus temas y proyectos.
Para configurar los controles de acceso a nivel de proyecto, sigue estos pasos:
En la consola de Google Cloud, ve a la página IAM.
Elige tu proyecto.
Haga clic en
Agregar.Escribe uno o más nombres de principales.
En la lista Seleccionar un rol, selecciona el rol que deseas otorgar.
Haz clic en Guardar.
Verifica que la principalaparezca en la lista con la función que le otorgaste.
Para establecer controles de acceso para temas y suscripciones, sigue estos pasos:
En la consola de Google Cloud, ve a la lista Temas de Pub/Sub.
Si es necesario, selecciona tu proyecto habilitado para Pub/Sub.
Realiza uno de los siguientes pasos:
Para establecer roles para uno o más temas, selecciónalos.
Para establecer roles para una suscripción adjunta a un tema, haz clic en el ID del tema. En la página Detalles del tema, haz clic en el ID de la suscripción. Aparecerá la página Detalles de la suscripción.
Si el panel de información está oculto, haz clic en Mostrar panel de información.
En la pestaña Permissions, haz clic en
Add principal.Escribe uno o más nombres de principales.
En la lista Seleccionar un rol, selecciona el rol que deseas otorgar.
Haz clic en Guardar.
Controla el acceso a través de la API de IAM
La API de IAM de Pub/Sub te permite configurar y obtener políticas sobre temas y suscripciones individuales en un proyecto, y probar los permisos de un usuario para un recurso determinado. Al igual que con los métodos comunes de Pub/Sub, puedes invocar los métodos de la API de IAM mediante las bibliotecas cliente, el Explorador de API, o directamente a través de HTTP.
Ten en cuenta que no puedes usar la API de IAM de Pub/Sub para administrar políticas a nivel del Google Cloud proyecto.
En las siguientes secciones, se dan ejemplos de cómo establecer y obtener una política, y cómo probar cuáles son los permisos que tiene un emisor para un recurso determinado.
Obtén una política
El método getIamPolicy()
te permite obtener una política existente.
Este método muestra un objeto JSON que contiene la política asociada con el recurso.
A continuación, puedes ver un código de muestra a fin de obtener una política para una suscripción:
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
gcloud
Obtén la política de suscripción:
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Salida:
{ "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" } ] }
Comienza a usarlo
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
A continuación, puedes ver un código de muestra a fin de obtener una política para un tema:C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
gcloud
Obtén la política de temas:
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json
Salida:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role":" roles/pubsub.viewer", "members": [ "user:user-1@gmail.com" ] } ] }
Comienza a usarlo
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Establece una política
El método setIamPolicy()
te permite adjuntar una política a un recurso. El método setIamPolicy()
toma una SetIamPolicyRequest
, que contiene la política que se establecerá y el recurso al que se adjunta la política.
Muestra la política resultante.
A continuación, puedes ver un código de muestra a fin de establecer una política para una suscripción:
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
gcloud
1. Guarda la política para la suscripción.
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json > subscription_policy.json
2. Abre subscription_policy.json
y actualiza las vinculaciones. Para ello, otorga las funciones apropiadas a los miembros correspondientes.
Para obtener más información sobre cómo trabajar con archivos subscription_policy.json
, consulta Política en la documentación de 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. Aplica la nueva política de suscripción.
gcloud pubsub subscriptions set-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ subscription_policy.json
Comienza a usarlo
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
A continuación, puedes ver un código de muestra a fin de establecer una política para un tema:
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
gcloud
1. Guarda la política para el tema.
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json > topic_policy.json
2. Abre topic_policy.json
y actualiza las vinculaciones. Para ello, otorga las funciones apropiadas a los miembros correspondientes.
Para obtener más información sobre cómo trabajar con archivos subscription_policy.json
, consulta Política en la documentación de IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.editor", "members": [ "user:user-1@gmail.com", "user:user-2@gmail.com" ] } ] }
3. Aplica la nueva política de temas.
gcloud pubsub topics set-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ topic_policy.json
Comienza a usarlo
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Prueba los permisos
Puedes usar el método testIamPermissions()
para verificar cuáles de los permisos otorgados se pueden agregar o quitar para el recurso dado. Toma como parámetros un nombre de recurso y un conjunto de permisos, y muestra el subconjunto de permisos.
A continuación, puedes ver un código de muestra para probar los permisos de una suscripción:
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Salida:
[ { "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" } ]
Comienza a usarlo
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
A continuación, puedes ver un código de muestra para probar los permisos de un tema:
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/topics/${TOPIC} \ --format json
Salida
[ { "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" } ]
Comienza a usarlo
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Comunicación entre proyectos
La IAM de Pub/Sub es útil para optimizar el acceso en la comunicación entre proyectos.
Por ejemplo, supongamos que una cuenta de servicio en el proyecto de Cloud A desea publicar mensajes en un tema del proyecto de Cloud B. Primero, habilita la API de Pub/Sub en el proyecto A.
En segundo lugar, otorga el permiso Editar a la cuenta de servicio en el proyecto de Cloud B. Sin embargo, este acción suele resultar poco específica. Puedes usar la API de IAM para lograr un nivel de acceso más detallado.
Por ejemplo, este fragmento usa el método setIamPolicy()
en project-b y un archivo topic_policy.json
preparado para otorgar a la cuenta de servicio foobar@
project-a.iam.gserviceaccount.com
de project-a la función de publicador en el tema 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 topic topic-b. bindings: - members: - serviceAccount:foobar@project-a.iam.gserviceaccount.com role: roles/pubsub.publisher etag: BwWGrQYX6R4=
Comportamiento de disponibilidad parcial
Las verificaciones de autorización dependen del subsistema de IAM. A fin de ofrecer una latencia de respuesta baja y coherente para las operaciones de datos (publicación y consumo de mensajes), el sistema puede recurrir a las políticas de IAM almacenadas en caché. Para obtener información sobre cuándo se aplicarán los cambios, consulta la documentación de IAM.