Questo documento descrive le opzioni di controllo dell'accesso disponibili in Pub/Sub.
Panoramica
Pub/Sub utilizza Identity and Access Management (IAM) per il controllo degli accessi.
IAM ti consente di concedere ruoli specifici a utenti, gruppi e service account, fornendo loro le autorizzazioni necessarie per svolgere le loro attività. Puoi concedere questi ruoli IAM utilizzando la consoleGoogle Cloud o l'API IAM.
In Pub/Sub, controllo dell'accesso può essere configurato a livello di progetto e a livello di singola risorsa. Ecco alcuni esempi di utilizzo controllo dell'accessoo Pub/Sub:
Concedi l'accesso in base alle singole risorse, anziché per l'intero progetto cloud.
Concedi l'accesso con funzionalità limitate, ad esempio solo per pubblicare messaggi in un argomento o solo per utilizzare messaggi da un abbonamento, ma non per eliminare l'argomento o l'abbonamento.
Concedi a un gruppo di sviluppatori l'accesso a tutte le risorse Pub/Sub all'interno di un progetto.
Se hai accesso di sola visualizzazione a una singola risorsa, ad esempio un argomento o un abbonamento, non puoi visualizzarla utilizzando la console Google Cloud . In alternativa, puoi utilizzare Google Cloud CLI per visualizzare la risorsa.
Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la documentazione di IAM. In particolare, consulta l'articolo Concessione, modifica e revoca dell'accesso alle risorse.
Tipi di ruoli in Pub/Sub
Analogamente ad altri prodotti Google Cloud , Pub/Sub supporta tre tipi di ruoli:
Ruoli di base: i ruoli di base sono ruoli altamente permissivi che esistevano prima dell'introduzione di IAM. Per ulteriori informazioni sui ruoli di base, consulta Ruoli di base.
Ruoli predefiniti: i ruoli predefiniti forniscono un accesso granulare a risorse Google Cloud specifiche. Per ulteriori informazioni sui ruoli predefiniti, consulta Ruoli predefiniti. I ruoli predefiniti Pub/Sub sono inclusi in una parte successiva di questa sezione.
Ruoli personalizzati: i ruoli personalizzati ti aiutano ad applicare il principio del privilegio minimo. Per ulteriori informazioni sui ruoli personalizzati, vedi Ruoli personalizzati.
Autorizzazioni Pub/Sub richieste
Le sezioni seguenti elencano le autorizzazioni Pub/Sub richieste per accedere a diverse risorse Pub/Sub.
Autorizzazioni richieste per gli argomenti
La tabella seguente illustra le autorizzazioni richieste per ogni metodo dell'API Pub/Sub correlato agli argomenti. Mostra quale autorizzazione IAM è necessaria per chiamare ogni metodo, insieme a una descrizione di cosa fa il metodo.
Metodo | Descrizione | Autorizzazione obbligatoria |
---|---|---|
projects.topics.create
|
Crea l'argomento specificato con il nome indicato. | pubsub.topics.create
sul progetto Cloud contenitore |
projects.topics.delete
|
Elimina l'argomento con il nome specificato. | pubsub.topics.delete
sull'argomento richiesto |
projects.topics.get
|
Recupera la configurazione di un argomento. | pubsub.topics.get
sull'argomento richiesto |
projects.topics.getIamPolicy
|
Recupera il criterio di controllo dell'accesso IAM per un argomento. | pubsub.topics.getIamPolicy
sull'argomento richiesto |
projects.topics.list
|
Elenca tutti gli argomenti. | pubsub.topics.list
sul progetto Cloud richiesto |
projects.topics.patch
|
Aggiorna un argomento esistente. | pubsub.topics.update
sull'argomento richiesto |
projects.topics.publish
|
Aggiunge uno o più messaggi all'argomento. | pubsub.topics.publish
sull'argomento richiesto |
projects.topics.setIamPolicy
|
Imposta il criterio di controllo dell'accesso IAM per un argomento. | pubsub.topics.setIamPolicy
sull'argomento richiesto |
projects.topics.testIamPermissions
|
Restituisce le autorizzazioni di cui dispone un chiamante sulla risorsa specificata. | Nessuno |
Autorizzazioni richieste per gli abbonamenti
La tabella seguente illustra le autorizzazioni richieste per ogni metodo dell'API Pub/Sub relativo alle sottoscrizioni. Mostra l'autorizzazione IAM necessaria per chiamare ogni metodo, insieme a una descrizione della funzione del metodo.
Metodo | Descrizione | Autorizzazione obbligatoria |
---|---|---|
projects.subscriptions.acknowledge
|
Riconosce i messaggi associati agli ack_ids in AcknowledgeRequest. | pubsub.subscriptions.consume
sull'abbonamento richiesto |
projects.subscriptions.create
|
Crea una sottoscrizione a un determinato argomento. | pubsub.subscriptions.create
sul progetto Cloud contenitore e
pubsub.topics.attachSubscription sull'argomento richiesto.
Per creare una sottoscrizione S nel progetto A collegata a un argomento T nel progetto B, è necessario concedere le autorizzazioni appropriate sia per il progetto A sia per l'argomento T. In questo caso, le informazioni sull'identità dell'utente possono essere acquisite nei log di controllo del progetto B. |
projects.subscriptions.delete
|
Elimina un abbonamento esistente. | pubsub.subscriptions.delete
sull'abbonamento richiesto |
projects.subscriptions.detach
|
Scollega una sottoscrizione da questo argomento. | pubsub.subscriptions.detach
sull'abbonamento |
projects.subscriptions.get
|
Recupera i dettagli di configurazione di un abbonamento. | pubsub.subscriptions.get
sull'abbonamento richiesto |
projects.subscriptions.getIamPolicy
|
Recupera il criterio di controllo dell'accesso IAM per un abbonamento. | pubsub.subscriptions.getIamPolicy
sull'abbonamento richiesto |
projects.subscriptions.list
|
Elenchi di abbonamenti corrispondenti. | pubsub.subscriptions.list
sul progetto Cloud richiesto |
projects.subscriptions.modifyAckDeadline
|
Modifica la scadenza di conferma per un messaggio specifico. | pubsub.subscriptions.consume
sull'abbonamento richiesto |
projects.subscriptions.modifyPushConfig
|
Modifica pushConfig per un abbonamento specificato. | pubsub.subscriptions.update
sull'abbonamento richiesto |
projects.subscriptions.patch
|
Aggiorna un abbonamento esistente. | pubsub.subscriptions.update
sull'abbonamento richiesto |
projects.subscriptions.pull
|
Recupera i messaggi dal server. | pubsub.subscriptions.consume
sull'abbonamento richiesto |
projects.subscriptions.seek
|
Cerca un abbonamento esistente fino a un punto nel tempo o uno snapshot. | pubsub.subscriptions.consume
sull'abbonamento richiesto e pubsub.snapshots.seek
sullo snapshot richiesto, se presente. |
projects.subscriptions.setIamPolicy
|
Imposta il criterio di controllo dell'accesso IAM per un abbonamento. | pubsub.subscriptions.setIamPolicy
sull'abbonamento richiesto |
projects.subscriptions.testIamPermissions
|
Restituisce le autorizzazioni di cui dispone un chiamante sulla risorsa specificata. | Nessuno |
Autorizzazioni richieste per gli schemi
La tabella seguente illustra le autorizzazioni richieste per ogni metodo dell'API Pub/Sub correlato agli schemi. Mostra l'autorizzazione IAM necessaria per chiamare ogni metodo, insieme a una descrizione della funzione del metodo.
Metodo | Descrizione | Autorizzazione obbligatoria |
---|---|---|
projects.schemas.commit
|
Esegue il commit di una nuova revisione dello schema. | pubsub.schemas.commit
nello schema richiesto |
projects.schemas.create
|
Crea uno schema. | pubsub.schemas.create
sul progetto Cloud contenitore |
projects.schemas.delete
|
Elimina uno schema. | pubsub.schemas.delete
nello schema richiesto |
projects.schemas.deleteRevision
|
Elimina una revisione dello schema specifica. | pubsub.schemas.delete
nello schema richiesto |
projects.schemas.get
|
Recupera uno schema. | pubsub.schemas.get
nello schema richiesto |
projects.schemas.getIamPolicy
|
Recupera il criterio di controllo dell'accesso IAM per uno schema. | pubsub.schemas.getIamPolicy nello schema richiesto |
projects.schemas.list
|
Elenca gli schemi in un progetto. | pubsub.schemas.list
sul progetto Cloud richiesto |
projects.schemas.listRevisions
|
Elenca tutte le revisioni dello schema denominato. | pubsub.schemas.listRevisions
nello schema richiesto |
projects.schemas.rollback
|
Crea una nuova revisione dello schema da una revisione precedente. | pubsub.schemas.rollback
nello schema richiesto |
projects.schemas.validate
|
Convalida una definizione dello schema. | pubsub.schemas.validate
sul progetto Cloud contenitore |
projects.schemas.validateMessage
|
Valida un messaggio in base a uno schema. | pubsub.schemas.validate
sul progetto Cloud contenitore |
Autorizzazioni richieste per gli snapshot
La tabella seguente illustra le autorizzazioni richieste per ogni metodo dell'API Pub/Sub correlato agli snapshot. Mostra l'autorizzazione IAM necessaria per chiamare ogni metodo, insieme a una descrizione della funzione del metodo.
Metodo REST | Descrizione | Autorizzazione obbligatoria |
---|---|---|
projects.snapshots.create
|
Crea uno snapshot dalla sottoscrizione richiesta. | pubsub.snapshots.create
sul progetto Cloud contenitore e l'autorizzazione pubsub.subscriptions.consume
sulla sottoscrizione di origine. |
projects.snapshots.delete
|
Rimuove uno snapshot esistente. | pubsub.snapshots.delete
nello snapshot richiesto |
projects.snapshots.getIamPolicy
|
Recupera il criterio di controllo dell'accesso IAM per uno snapshot. | pubsub.snapshots.getIamPolicy
nello snapshot richiesto |
projects.snapshots.list
|
Elenca gli snapshot esistenti. | pubsub.snapshots.list
sul progetto Cloud richiesto |
projects.snapshots.patch
|
Aggiorna uno snapshot esistente. | pubsub.snapshots.update
nello snapshot richiesto |
projects.snapshots.setIamPolicy
|
Imposta il criterio di controllo dell'accesso IAM per uno snapshot. | pubsub.snapshots.setIamPolicy
nello snapshot richiesto |
projects.snapshots.testIamPermissions
|
Restituisce le autorizzazioni di cui dispone un chiamante sulla risorsa specificata. | Nessuno |
Ruoli Pub/Sub disponibili
La tabella seguente elenca tutti i ruoli Pub/Sub e le autorizzazioni associate a ciascun ruolo:
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:
|
|
Cloud Pub/Sub Service Agent( Grants Cloud Pub/Sub Service Account access to manage resources. |
|
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:
|
|
Controllo dell'accesso tramite la console Google Cloud
Puoi utilizzare la console Google Cloud per gestire il controllo dell'accesso per argomenti e progetti.
Per impostare i controlli dell'accesso a livello di progetto:
Nella console Google Cloud , vai alla pagina IAM.
Seleziona il progetto.
Fai clic su
Aggiungi.Digita uno o più nomi di entità.
Nell'elenco Seleziona un ruolo, seleziona il ruolo che vuoi concedere.
Fai clic su Salva.
Verifica che l'entità sia elencata con il ruolo che hai concesso.
Per impostare i controlli di accesso per argomenti e abbonamenti:
Nella console Google Cloud , vai all'elenco Argomenti di Pub/Sub.
Se necessario, seleziona il progetto abilitato a Pub/Sub.
Esegui uno dei seguenti passaggi:
Per impostare i ruoli per uno o più argomenti, seleziona gli argomenti.
Per impostare i ruoli per una sottoscrizione collegata a un argomento, fai clic sull'ID argomento. Nella pagina Dettagli argomento, fai clic sull'ID sottoscrizione. Viene visualizzata la pagina Dettagli abbonamento.
Se il riquadro informazioni è nascosto, fai clic su Mostra riquadro informazioni.
Nella scheda Autorizzazioni, fai clic su
Aggiungi entità.Digita uno o più nomi di entità.
Nell'elenco Seleziona un ruolo, seleziona il ruolo che vuoi concedere.
Fai clic su Salva.
Controllo dell'accesso tramite l'API IAM
L'API Pub/Sub IAM consente di impostare e recuperare i criteri per singoli argomenti e abbonamenti in un progetto e di testare le autorizzazioni di un utente per una determinata risorsa. Come per i metodi Pub/Sub regolari, puoi richiamare i metodi dell'API IAM tramite le librerie client, l'API Explorer o direttamente tramite HTTP.
Tieni presente che non puoi utilizzare l'API Pub/Sub IAM per gestire i criteri a livello di progetto. Google Cloud
Le sezioni seguenti forniscono esempi su come impostare e recuperare un criterio e su come testare le autorizzazioni di un chiamante per una determinata risorsa.
Acquisisci una polizza
Il metodo getIamPolicy()
consente di recuperare una policy esistente.
Questo metodo restituisce un oggetto JSON contenente il criterio associato alla risorsa.
Di seguito è riportato un codice campione per ottenere una norma per un abbonamento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
Recupera il criterio di sottoscrizione:
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Output:
{ "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" ] } ] }
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub PHP.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Ecco un codice campione per ottenere una norma per un argomento:C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
Recuperare il criterio argomento
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json
Output:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role":" roles/pubsub.viewer", "members": [ "user:user-1@gmail.com" ] } ] }
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub PHP.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Impostare un criterio
Il metodo setIamPolicy()
consente di collegare un criterio
a una risorsa. Il metodo setIamPolicy()
accetta un SetIamPolicyRequest
, che
contiene il criterio da impostare e la risorsa a cui è associato.
Restituisce le norme risultanti.
Di seguito è riportato un codice campione per impostare una norma per un abbonamento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
1. Salva la norma per l'abbonamento.
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json > subscription_policy.json
2. Apri subscription_policy.json
e aggiorna i binding assegnando i ruoli appropriati alle entità appropriate.
Per saperne di più sull'utilizzo dei file subscription_policy.json
, consulta
Policy nella documentazione di 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. Applica le nuove norme sugli abbonamenti.
gcloud pubsub subscriptions set-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ subscription_policy.json
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Di seguito è riportato un codice campione per impostare una norma per un argomento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
1. Salva le norme per l'argomento.
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json > topic_policy.json
2. Apri topic_policy.json
e aggiorna i binding assegnando i ruoli appropriati alle entità appropriate.
Per saperne di più sull'utilizzo dei file subscription_policy.json
, consulta
Policy nella documentazione di IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.editor", "members": [ "user:user-1@gmail.com", "user:user-2@gmail.com" ] } ] }
3. Applica le nuove norme relative agli argomenti.
gcloud pubsub topics set-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ topic_policy.json
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Test delle autorizzazioni
Puoi utilizzare il metodo testIamPermissions()
per verificare quali delle autorizzazioni
indicate possono essere aggiunte o rimosse per la risorsa specificata. Prende
come parametri un nome di risorsa e un insieme di autorizzazioni e restituisce il sottoinsieme
di autorizzazioni.
Di seguito è riportato un codice campione per testare le autorizzazioni per un abbonamento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Output:
[ { "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" } ]
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub PHP.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Di seguito è riportato un codice campione per testare le autorizzazioni per un argomento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/topics/${TOPIC} \ --format json
Output
[ { "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" } ]
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub PHP.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Comunicazione tra progetti
IAM Pub/Sub è utile per perfezionare l'accesso nella comunicazione tra progetti.
Supponiamo che un account di servizio nel progetto Cloud A voglia pubblicare messaggi in un argomento nel progetto Cloud B. Innanzitutto, abilita l'API Pub/Sub nel progetto A.
In secondo luogo, concedi al account di servizio l'autorizzazione Modifica nel progetto Cloud B. Tuttavia, questo approccio è spesso troppo grossolano. Puoi utilizzare l'API IAM per ottenere un livello di accesso più granulare.
Ad esempio, questo snippet utilizza il metodo setIamPolicy()
in project-b e un file
topic_policy.json
preparato per concedere al account di servizio
foobar@
project-a.iam.gserviceaccount.com
di project-a il ruolo Publisher nell'argomento
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=
Comportamento di disponibilità parziale
I controlli di autorizzazione dipendono dal sottosistema IAM. Per offrire una latenza di risposta costantemente bassa per le operazioni sui dati (pubblicazione e consumo di messaggi), il sistema potrebbe ricorrere a criteri IAM memorizzati nella cache. Per informazioni su quando le modifiche avranno effetto, consulta la documentazione di IAM.
Passaggi successivi
- Se hai problemi ad accedere alle risorse Pub/Sub o ad autenticarle, consulta la sezione Risoluzione dei problemi generali.