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 account di servizio, fornendo loro le autorizzazioni necessarie per svolgere le loro attività. Puoi concedere questi ruoli IAM utilizzando la console Google Cloud o l'API IAM.
In Pub/Sub, il controllo dell'accesso può essere configurato a livello di progetto e a livello di singola risorsa. Ecco alcuni esempi di utilizzo del controllo dell'accesso Pub/Sub:
Concedi l'accesso in base alla risorsa, anziché all'intero progetto Cloud.
Concedi l'accesso con funzionalità limitate, ad esempio per pubblicare solo messaggi in un argomento o per consumare solo messaggi da una sottoscrizione, ma non per eliminare l'argomento o la sottoscrizione.
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 Concessione, modifica e revoca dell'accesso alle risorse.
Tipi di ruoli in Pub/Sub
Come altri Google Cloud prodotti, Pub/Sub supporta tre tipi di ruoli:
Ruoli di base: i ruoli di base sono ruoli altamente permissivi esistenti prima dell'introduzione di IAM. Per ulteriori informazioni sui ruoli di base, consulta Ruoli di base.
Ruoli predefiniti: i ruoli predefiniti forniscono accesso granulare a risorseGoogle Cloud specifiche. Per ulteriori informazioni sui ruoli predefiniti, consulta Ruoli predefiniti. I ruoli predefiniti di 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, consulta Ruoli personalizzati.
Autorizzazioni Pub/Sub richieste
Le sezioni seguenti elencano le autorizzazioni Pub/Sub necessarie 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 relativo agli argomenti. Mostra l'autorizzazione IAM necessaria per chiamare ogni metodo, insieme a una descrizione della funzionalità del metodo.
Metodo | Descrizione | Autorizzazione obbligatoria |
---|---|---|
projects.topics.create
|
Crea l'argomento specificato con il nome specificato. | pubsub.topics.create
nel progetto Cloud contenente |
projects.topics.delete
|
Consente di eliminare 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
nel 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
|
Conferma i messaggi associati agli ack_id in AcknowledgeRequest. | pubsub.subscriptions.consume
sull'abbonamento richiesto |
projects.subscriptions.create
|
Crea una sottoscrizione a un determinato argomento. | pubsub.subscriptions.create
nel progetto Cloud contenente e
pubsub.topics.attachSubscription nell'argomento richiesto.
Per creare una sottoscrizione S nel progetto A collegata a un argomento T nel progetto B, le autorizzazioni appropriate devono essere concesse sia al progetto A sia all'argomento T. In questo caso, le informazioni sull'identità
dell'utente possono essere acquisite nei log di controllo del progetto B. |
projects.subscriptions.delete
|
Consente di eliminare 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
|
Elenca le iscrizioni corrispondenti. | pubsub.subscriptions.list
nel 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
|
Estrae i messaggi dal server. | pubsub.subscriptions.consume
sull'abbonamento richiesto |
projects.subscriptions.seek
|
Cerca una sottoscrizione esistente a un punto nel tempo o a 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 relativo agli schemi. Mostra l'autorizzazione IAM necessaria per chiamare ogni metodo, insieme a una descrizione della funzionalità del metodo.
Metodo | Descrizione | Autorizzazione obbligatoria |
---|---|---|
projects.schemas.commit
|
Esegue il commit di una nuova revisione dello schema. | pubsub.schemas.commit
sullo schema richiesto |
projects.schemas.create
|
Crea uno schema. | pubsub.schemas.create
nel progetto Cloud contenente |
projects.schemas.delete
|
Consente di eliminare uno schema. | pubsub.schemas.delete
sullo schema richiesto |
projects.schemas.deleteRevision
|
Consente di eliminare una revisione dello schema specifica. | pubsub.schemas.delete
sullo schema richiesto |
projects.schemas.get
|
Recupera uno schema. | pubsub.schemas.get
sullo 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
nel progetto Cloud richiesto |
projects.schemas.listRevisions
|
Elenca tutte le revisioni dello schema per lo schema denominato. | pubsub.schemas.listRevisions
sullo schema richiesto |
projects.schemas.rollback
|
Crea una nuova revisione dello schema da una revisione precedente. | pubsub.schemas.rollback
sullo schema richiesto |
projects.schemas.validate
|
Convalida una definizione di schema. | pubsub.schemas.validate
nel progetto Cloud contenente |
projects.schemas.validateMessage
|
Convalida un messaggio in base a uno schema. | pubsub.schemas.validate
nel progetto Cloud contenente |
Autorizzazioni richieste per gli snapshot
La tabella seguente illustra le autorizzazioni richieste per ogni metodo dell'API Pub/Sub relativo agli snapshot. Mostra l'autorizzazione IAM necessaria per chiamare ogni metodo, insieme a una descrizione della funzionalità del metodo.
Metodo REST | Descrizione | Autorizzazione obbligatoria |
---|---|---|
projects.snapshots.create
|
Crea uno snapshot dall'abbonamento richiesto. | pubsub.snapshots.create
sul progetto Cloud contenente 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
nel 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:
|
|
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 i tuoi argomenti e progetti.
Per impostare i controlli di 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 gli argomenti e le sottoscrizioni:
Nella console Google Cloud, vai all'elenco Argomenti di Pub/Sub.
Se necessario, seleziona il progetto abilitato per Pub/Sub.
Esegui uno dei seguenti passaggi:
Per impostare i ruoli per uno o più argomenti, selezionali.
Per impostare i ruoli per una sottoscrizione collegata a un argomento, fai clic sull'ID argomento. Nella pagina Dettagli argomento, fai clic sull'ID abbonamento. 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 IAM Pub/Sub ti 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 standard, puoi invocare i metodi dell'API IAM tramite le librerie client, l'API Explorer o direttamente tramite HTTP.
Tieni presente che non puoi utilizzare l'API IAM Pub/Sub per gestire i criteri a livello di Google Cloud progetto.
Le sezioni seguenti forniscono esempi di come impostare e recuperare un criterio e come verificare le autorizzazioni di un chiamante per una determinata risorsa.
Acquisisci una polizza
Il metodo getIamPolicy()
consente di recuperare un criterio esistente.
Questo metodo restituisce un oggetto JSON contenente il criterio associato alla risorsa.
Di seguito è riportato un codice di esempio per ottenere le norme per un abbonamento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP Pub/Sub.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
Di seguito è riportato un codice di esempio per ottenere le norme per un argomento:C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
Ottieni 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP Pub/Sub.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
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 il criterio risultante.
Di seguito è riportato un codice di esempio per impostare un criterio per un abbonamento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
1. Salva il criterio 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 le associazioni assegnando i ruoli appropriati alle entità appropriate.
Per ulteriori informazioni sull'utilizzo dei file subscription_policy.json
, consulta
Norme 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 il nuovo criterio di sottoscrizione.
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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
Di seguito è riportato un codice di esempio per impostare una norma per un argomento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
gcloud
1. Salva il criterio 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 le associazioni assegnando i ruoli appropriati alle entità appropriate.
Per ulteriori informazioni sull'utilizzo dei file subscription_policy.json
, consulta
Norme nella documentazione di IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.editor", "members": [ "user:user-1@gmail.com", "user:user-2@gmail.com" ] } ] }
3. Applica il nuovo criterio per gli 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 riportate 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
Test delle autorizzazioni
Puoi utilizzare il metodo testIamPermissions()
per verificare quali delle autorizzazioni specificate possono essere aggiunte o rimosse per la risorsa in questione. Prende come parametri un nome della risorsa e un insieme di autorizzazioni e restituisce il sottoinsieme di autorizzazioni.
Di seguito è riportato un codice di esempio per testare le autorizzazioni per una sottoscrizione:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP Pub/Sub.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
Di seguito è riportato un codice di esempio per testare le autorizzazioni per un argomento:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate 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 riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP Pub/Sub.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
Comunicazione tra progetti
L'IAM di 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 all'account di servizio l'autorizzazione Modifica nel progetto Cloud B. Tuttavia, questo approccio è spesso troppo approssimativo. 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 all'account di servizio
foobar@
project-a.iam.gserviceaccount.com
di project-a il ruolo editore per l'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 ai criteri IAM memorizzati nella cache. Per informazioni su quando verranno applicate le modifiche, consulta la documentazione di IAM.