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.
En Pub/Sub, el control de acceso se puede configurar a nivel de proyecto y a nivel de los recursos individuales. Por ejemplo:
- Otorga acceso por tema o por suscripción, 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.
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.
Cada método de Pub/Sub requiere que el emisor tenga los permisos necesarios. Si quieres obtener una lista de los permisos y funciones que admite IAM para Pub/Sub, consulta la sección Funciones a continuación.
Permisos y funciones
En esta sección se resumen los permisos y las funciones que admite IAM de Pub/Sub.
Permisos necesarios
En la siguiente tabla, se enumeran los permisos que debe tener el emisor para llamar a cada método:
Método | Permisos necesarios |
---|---|
projects.snapshots.create |
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 |
pubsub.snapshots.delete en la instantánea solicitada. |
projects.snapshots.getIamPolicy |
pubsub.snapshots.getIamPolicy en la instantánea solicitada. |
projects.snapshots.list |
pubsub.snapshots.list en el proyecto de Cloud solicitado. |
projects.snapshots.patch |
pubsub.snapshots.update en la instantánea solicitada. |
projects.snapshots.setIamPolicy |
pubsub.snapshots.setIamPolicy en la instantánea solicitada. |
projects.snapshots.testIamPermissions |
Ninguno |
projects.subscriptions.acknowledge |
pubsub.subscriptions.consume en la suscripción solicitada. |
projects.subscriptions.create |
pubsub.subscriptions.create en el proyecto de Cloud que lo contiene y pubsub.topics.attachSubscription en el tema solicitado.
Ten en cuenta que para crear una suscripción en el proyecto A a un tema T en el proyecto B, se deben otorgar los permisos adecuados 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 |
pubsub.subscriptions.delete en la suscripción solicitada. |
projects.subscriptions.get |
pubsub.subscriptions.get en la suscripción solicitada. |
projects.subscriptions.getIamPolicy |
pubsub.subscriptions.getIamPolicy en la suscripción solicitada. |
projects.subscriptions.list |
pubsub.subscriptions.list en el proyecto de Cloud solicitado. |
projects.subscriptions.modifyAckDeadline |
pubsub.subscriptions.consume en la suscripción solicitada. |
projects.subscriptions.modifyPushConfig |
pubsub.subscriptions.update en la suscripción solicitada. |
projects.subscriptions.patch |
pubsub.subscriptions.update en la suscripción solicitada. |
projects.subscriptions.pull |
pubsub.subscriptions.consume en la suscripción solicitada. |
projects.subscriptions.seek |
pubsub.subscriptions.consume en la suscripción solicitada y pubsub.snapshots.seek en la instantánea solicitada, si la hubiera. |
projects.subscriptions.setIamPolicy |
pubsub.subscriptions.setIamPolicy en la suscripción solicitada. |
projects.subscriptions.testIamPermissions |
Ninguno |
projects.topics.create |
pubsub.topics.create en el proyecto de Cloud que lo contiene. |
projects.topics.delete |
pubsub.topics.delete en el tema solicitado. |
projects.topics.detachSubscription |
pubsub.topics.detachSubscription en el tema solicitado. |
projects.topics.get |
pubsub.topics.get en el tema solicitado. |
projects.topics.getIamPolicy |
pubsub.topics.getIamPolicy en el tema solicitado. |
projects.topics.list |
pubsub.topics.list en el proyecto de Cloud solicitado. |
projects.topics.patch |
pubsub.topics.update en el tema solicitado. |
projects.topics.publish |
pubsub.topics.publish en el tema solicitado. |
projects.topics.setIamPolicy |
pubsub.topics.setIamPolicy en el tema solicitado. |
projects.topics.subscriptions.list |
pubsub.topics.get en el tema solicitado. |
projects.topics.testIamPermissions |
Ninguno |
Funciones
En la siguiente tabla, se enumeran las funciones de IAM de Pub/Sub con la lista correspondiente de todos los permisos que se incluyen en cada función. Ten en cuenta que cada permiso es aplicable a un tipo de recurso específico.
Estas funciones preconfiguradas abordan muchos casos prácticos típicos. Sin embargo, es posible que necesites una función que incluya un conjunto personalizado de permisos. Por ejemplo, es posible que desees crear una función que permita a un usuario crear una suscripción en un proyecto, sin permitirle borrar o actualizar los temas o suscripciones existentes en el proyecto. En ese caso puedes crear una función personalizada de IAM que satisfaga tus necesidades.
Función | Permisos incluidos: | Para el tipo de recurso: |
---|---|---|
roles/pubsub.publisher |
pubsub.topics.publish |
Tema |
roles/pubsub.subscriber |
pubsub.snapshots.seek |
Instantánea |
pubsub.subscriptions.consume |
Suscripción | |
pubsub.topics.attachSubscription |
Tema | |
roles/pubsub.viewer oroles/viewer |
pubsub.snapshots.get |
Instantánea |
pubsub.snapshots.list |
Proyecto | |
pubsub.subscriptions.get |
Suscripción | |
pubsub.subscriptions.list |
Proyecto | |
pubsub.topics.get |
Tema | |
pubsub.topics.list |
Proyecto | |
resourcemanager.projects.get |
Proyecto | |
servicemanagement.projectSettings.get |
Proyecto | |
serviceusage.quotas.get |
Proyecto | |
serviceusage.services.get |
Proyecto | |
serviceusage.services.list |
Proyecto | |
roles/pubsub.editor oroles/editor |
Todos los mencionados con anterioridad, así como: | |
pubsub.snapshots.create |
Proyecto | |
pubsub.snapshots.delete |
Instantánea | |
pubsub.snapshots.update |
Instantánea | |
pubsub.subscriptions.create
|
Proyecto | |
pubsub.subscriptions.delete |
Suscripción | |
pubsub.subscriptions.update |
Suscripción | |
pubsub.topics.create |
Proyecto | |
pubsub.topics.delete |
Tema | |
pubsub.topics.detachSubscription |
Tema | |
pubsub.topics.update |
Tema | |
pubsub.topics.updateTag |
Tema | |
roles/pubsub.admin oroles/owner |
Todos los mencionados con anterioridad, así como: | |
pubsub.snapshots.getIamPolicy |
Instantánea | |
pubsub.snapshots.setIamPolicy |
Instantánea | |
pubsub.subscriptions.getIamPolicy |
Suscripción | |
pubsub.subscriptions.setIamPolicy |
Suscripción | |
pubsub.topics.getIamPolicy |
Tema | |
pubsub.topics.setIamPolicy |
Tema |
Las funciones roles/owner, roles/editor y roles/viewer también incluyen permisos para otros servicios de Google Cloud.
Control de acceso con Google Cloud Console
Puedes usar GCP Console para administrar el control de acceso a tus temas y proyectos.
Para configurar los controles de acceso a nivel de proyecto, sigue estos pasos:
- Abre la página IAM en Cloud Console.
- Selecciona tu proyecto y haz clic en Continuar.
- Haz clic en Agregar miembro.
- Ingresa la dirección de correo electrónico de un miembro nuevo al que no hayas otorgado ninguna función de IAM con anterioridad.
- Selecciona una función en el menú desplegable.
- Haz clic en Agregar.
- Verifica que el miembro aparezca en la lista con la función que le otorgaste.
Si quieres establecer controles de acceso para temas y suscripciones, haz lo siguiente:
- Navega a la página de temas de Pub/Sub en Console.
- Selecciona tu proyecto habilitado para Pub/Sub.
Selecciona el tema o la suscripción.
Puedes configurar permisos para varios temas a la vez. Si quieres establecer permisos para la suscripción de un tema, expande el tema y haz clic en la suscripción a fin de abrirla en tu propia página.
Haz clic en Permisos. En el panel que aparece, haz lo siguiente:
- Escribe un nombre o varios nombres de miembros.
- Selecciona una función en el menú desplegable.
- Haz clic en Agregar.
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 o el Explorador de API, o directamente a través de HTTP.
Ten en cuenta que no puedes usar la API de IAM para Pub/Sub a fin de administrar políticas a nivel de proyecto de Google Cloud.
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.
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 permisos
Puedes usar el método testIamPermissions()
a fin de verificar cuáles son los permisos otorgados que tiene el emisor para el recurso dado. Toma como parámetros un nombre de recurso y un conjunto de permisos, y muestra el subconjunto de permisos del emisor.
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.
Caso práctico de muestra: 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. Para que esto suceda, debes otorgar el permiso de Edición 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.jsonResultado:
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.