Ruoli e autorizzazioni IAM

Questa pagina descrive i service account, i ruoli e le autorizzazioni di Cloud Deploy.

L'accesso in Cloud Deploy è controllato tramite Identity and Access Management (IAM). IAM consente di creare e gestire le autorizzazioni per le risorse Google Cloud . Cloud Deploy fornisce un insieme specifico di ruoli IAM predefiniti, in cui ogni ruolo contiene un insieme di autorizzazioni. Puoi utilizzare questi ruoli per concedere un accesso più granulare a risorse Google Cloud specifiche e impedire l'accesso indesiderato ad altre risorse. IAM ti consente di adottare il principio di sicurezza del privilegio minimo, in modo da concedere solo il livello di accesso necessario per le tue risorse.

Consulta Utilizzo di IAM per limitare l'accesso a Cloud Deploy per scoprire di più sulle funzionalità di sicurezza avanzate per il controllo dell'accesso.

Service account in Cloud Deploy

Per impostazione predefinita, Cloud Deploy viene eseguito utilizzando il account di servizio di Compute Engine predefinito. Per ulteriori informazioni sulla configurazione di questo account di servizio per l'utilizzo con Cloud Deploy o sulla scelta di un account diverso, consulta la documentazione relativa al service account di esecuzione di Cloud Deploy.

Scopri di più su come Cloud Deploy utilizza i service account.

Ruoli Cloud Deploy predefiniti

Con IAM, ogni metodo API nell'API Cloud Deploy richiede che l'identità che effettua la richiesta API disponga delle autorizzazioni appropriate per utilizzare la risorsa. Le autorizzazioni vengono concesse impostando policy che assegnano ruoli a un'entità (utente, gruppo o account di servizio) del tuo progetto. Puoi concedere più ruoli a un'entità nella stessa risorsa.

La documentazione IAM include un riferimento consultabile di tutti i ruoli predefiniti.

La tabella seguente elenca i ruoli IAM Cloud Deploy e le autorizzazioni che includono:

Role Permissions

(roles/clouddeploy.admin)

Full control of Cloud Deploy resources.

clouddeploy.*

  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list
  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update
  • clouddeploy.config.get
  • clouddeploy.customTargetTypes.create
  • clouddeploy.customTargetTypes.delete
  • clouddeploy.customTargetTypes.get
  • clouddeploy.customTargetTypes.getIamPolicy
  • clouddeploy.customTargetTypes.list
  • clouddeploy.customTargetTypes.setIamPolicy
  • clouddeploy.customTargetTypes.update
  • clouddeploy.deliveryPipelines.create
  • clouddeploy.deliveryPipelines.createTagBinding
  • clouddeploy.deliveryPipelines.delete
  • clouddeploy.deliveryPipelines.deleteTagBinding
  • clouddeploy.deliveryPipelines.get
  • clouddeploy.deliveryPipelines.getIamPolicy
  • clouddeploy.deliveryPipelines.list
  • clouddeploy.deliveryPipelines.listEffectiveTags
  • clouddeploy.deliveryPipelines.listTagBindings
  • clouddeploy.deliveryPipelines.setIamPolicy
  • clouddeploy.deliveryPipelines.update
  • clouddeploy.deployPolicies.create
  • clouddeploy.deployPolicies.delete
  • clouddeploy.deployPolicies.get
  • clouddeploy.deployPolicies.getIamPolicy
  • clouddeploy.deployPolicies.list
  • clouddeploy.deployPolicies.override
  • clouddeploy.deployPolicies.setIamPolicy
  • clouddeploy.deployPolicies.update
  • clouddeploy.jobRuns.get
  • clouddeploy.jobRuns.list
  • clouddeploy.jobRuns.terminate
  • clouddeploy.locations.get
  • clouddeploy.locations.list
  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list
  • clouddeploy.releases.abandon
  • clouddeploy.releases.create
  • clouddeploy.releases.get
  • clouddeploy.releases.list
  • clouddeploy.rollouts.advance
  • clouddeploy.rollouts.approve
  • clouddeploy.rollouts.cancel
  • clouddeploy.rollouts.create
  • clouddeploy.rollouts.get
  • clouddeploy.rollouts.ignoreJob
  • clouddeploy.rollouts.list
  • clouddeploy.rollouts.retryJob
  • clouddeploy.rollouts.rollback
  • clouddeploy.targets.create
  • clouddeploy.targets.createTagBinding
  • clouddeploy.targets.delete
  • clouddeploy.targets.deleteTagBinding
  • clouddeploy.targets.get
  • clouddeploy.targets.getIamPolicy
  • clouddeploy.targets.list
  • clouddeploy.targets.listEffectiveTags
  • clouddeploy.targets.listTagBindings
  • clouddeploy.targets.setIamPolicy
  • clouddeploy.targets.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.approver)

Permission to approve or reject rollouts.

clouddeploy.config.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

clouddeploy.rollouts.approve

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.customTargetTypeAdmin)

Permission to manage CustomTargetType resources

clouddeploy.config.get

clouddeploy.customTargetTypes.*

  • clouddeploy.customTargetTypes.create
  • clouddeploy.customTargetTypes.delete
  • clouddeploy.customTargetTypes.get
  • clouddeploy.customTargetTypes.getIamPolicy
  • clouddeploy.customTargetTypes.list
  • clouddeploy.customTargetTypes.setIamPolicy
  • clouddeploy.customTargetTypes.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.developer)

Permission to manage deployment configuration without permission to access operational resources, such as targets.

clouddeploy.automationRuns.get

clouddeploy.automationRuns.list

clouddeploy.automations.get

clouddeploy.automations.list

clouddeploy.config.get

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.createTagBinding

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.deleteTagBinding

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deliveryPipelines.update

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

clouddeploy.releases.*

  • clouddeploy.releases.abandon
  • clouddeploy.releases.create
  • clouddeploy.releases.get
  • clouddeploy.releases.list

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.jobRunner)

Permission to execute Cloud Deploy work without permission to deliver to a target.

clouddeploy.config.get

logging.logEntries.create

storage.objects.create

storage.objects.get

storage.objects.list

(roles/clouddeploy.operator)

Permission to manage deployment configuration.

clouddeploy.automationRuns.*

  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list

clouddeploy.automations.*

  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.customTargetTypes.getIamPolicy

clouddeploy.customTargetTypes.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.createTagBinding

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.deleteTagBinding

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deliveryPipelines.update

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.getIamPolicy

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.*

  • clouddeploy.jobRuns.get
  • clouddeploy.jobRuns.list
  • clouddeploy.jobRuns.terminate

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

clouddeploy.releases.*

  • clouddeploy.releases.abandon
  • clouddeploy.releases.create
  • clouddeploy.releases.get
  • clouddeploy.releases.list

clouddeploy.rollouts.advance

clouddeploy.rollouts.cancel

clouddeploy.rollouts.create

clouddeploy.rollouts.get

clouddeploy.rollouts.ignoreJob

clouddeploy.rollouts.list

clouddeploy.rollouts.retryJob

clouddeploy.rollouts.rollback

clouddeploy.targets.create

clouddeploy.targets.createTagBinding

clouddeploy.targets.delete

clouddeploy.targets.deleteTagBinding

clouddeploy.targets.get

clouddeploy.targets.getIamPolicy

clouddeploy.targets.list

clouddeploy.targets.listEffectiveTags

clouddeploy.targets.listTagBindings

clouddeploy.targets.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyAdmin)

Permission to manage Deploy Policies.

clouddeploy.deployPolicies.*

  • clouddeploy.deployPolicies.create
  • clouddeploy.deployPolicies.delete
  • clouddeploy.deployPolicies.get
  • clouddeploy.deployPolicies.getIamPolicy
  • clouddeploy.deployPolicies.list
  • clouddeploy.deployPolicies.override
  • clouddeploy.deployPolicies.setIamPolicy
  • clouddeploy.deployPolicies.update

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyOverrider)

Permission to override Deploy Policies.

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.deployPolicies.override

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.releaser)

Permission to create Cloud Deploy releases and rollouts.

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.deliveryPipelines.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

clouddeploy.releases.create

clouddeploy.releases.get

clouddeploy.releases.list

clouddeploy.rollouts.advance

clouddeploy.rollouts.cancel

clouddeploy.rollouts.create

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.rollouts.rollback

clouddeploy.targets.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.serviceAgent)

Gives Cloud Deploy Service Account access to managed resources.

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.workerpools.use

iam.serviceAccounts.actAs

iam.serviceAccounts.getAccessToken

logging.logEntries.create

pubsub.topics.get

pubsub.topics.publish

servicemanagement.services.report

serviceusage.services.use

storage.buckets.create

storage.buckets.get

storage.objects.get

(roles/clouddeploy.viewer)

Can view Cloud Deploy resources.

clouddeploy.automationRuns.get

clouddeploy.automationRuns.list

clouddeploy.automations.get

clouddeploy.automations.list

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.customTargetTypes.getIamPolicy

clouddeploy.customTargetTypes.list

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.getIamPolicy

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.get

clouddeploy.operations.list

clouddeploy.releases.get

clouddeploy.releases.list

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.targets.get

clouddeploy.targets.getIamPolicy

clouddeploy.targets.list

clouddeploy.targets.listEffectiveTags

clouddeploy.targets.listTagBindings

resourcemanager.projects.get

resourcemanager.projects.list

Oltre ai ruoli predefiniti di Cloud Deploy, anche i ruoli di base Visualizzatore, Editor e Proprietario includono autorizzazioni relative a Cloud Deploy. Tuttavia, ti consigliamo di concedere ruoli predefiniti, ove possibile, per rispettare il principio di sicurezza del privilegio minimo.

Autorizzazioni

La tabella seguente elenca le autorizzazioni che il chiamante deve avere per chiamare ogni metodo:

Metodo API Autorizzazione obbligatoria Descrizione
automations.create() clouddeploy.automations.create Crea una nuova risorsa di automazione.
automations.delete() clouddeploy.automations.delete Elimina una risorsa di automazione esistente.
automations.get() clouddeploy.automations.get Recupera i dettagli di una singola risorsa di automazione.
automations.list() clouddeploy.automations.list Elenca le risorse di automazione e i relativi metadati.
automations.update() clouddeploy.automations.update Aggiorna una risorsa di automazione esistente.
automationRuns.cancel() clouddeploy.automationRuns.cancel Annulla un'automazione in esecuzione.
automationRuns.get() clouddeploy.automationRuns.get Recupera i dettagli di una singola esecuzione dell'automazione.
automationRuns.list() clouddeploy.automationRuns.list Elenca le esecuzioni dell'automazione e i relativi metadati.
customTargetTypes.create() clouddeploy.customTargetTypes.create Crea una risorsa di tipo target personalizzato.
customTargetTypes.delete() clouddeploy.customTargetTypes.delete Elimina una risorsa di tipo target personalizzato.
customTargetTypes.get() clouddeploy.customTargetTypes.get Recupera i dettagli di un tipo di target personalizzato.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy Recupera il criterio IAM per una risorsa di tipo target personalizzato.
customTargetTypes.list() clouddeploy.customTargetTypes.list Elenca i tipi di destinazione personalizzati disponibili e i relativi metadati.
customTargetTypes.patch() clouddeploy.customTargetTypes.patch Aggiorna un tipo di target personalizzato esistente.
customTargetTypes.setIamPolicy() clouddeploy.customTargetTypes.setIamPolicy Imposta il criterio IAM per una risorsa di tipo target personalizzato.
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Crea una nuova risorsa pipeline di distribuzione.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Elimina una risorsa pipeline di distribuzione esistente.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Recupera i dettagli di una singola pipeline di distribuzione.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Recupera il criterio IAM per una risorsa pipeline di distribuzione.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Elenca le pipeline di distribuzione e i relativi metadati.
deliveryPipelines.rollbackTarget() clouddeploy.rollouts.rollback Esegue il rollback di una destinazione.
deliveryPipelines.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Imposta il criterio IAM per una risorsa pipeline di distribuzione.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Aggiorna una risorsa pipeline di distribuzione esistente.
deployPolicies.create() clouddeploy.deployPolicies.create Crea una risorsa policy di deployment.
deployPolicies.delete() clouddeploy.deployPolicies.delete Elimina una risorsa policy di deployment.
deployPolicies.get() clouddeploy.deployPolicies.get Recupera i dettagli di una risorsa di policy di deployment.
deployPolicies.list() clouddeploy.deployPolicies.list Elenca le policy di deployment disponibili e i relativi metadati.
jobRuns.get() clouddeploy.jobRuns.get Recupera una risorsa JobRuns.
jobRuns.list() clouddeploy.jobRuns.list Elenca le risorse JobRuns e i relativi metadati.
jobRuns.terminate() clouddeploy.jobRuns.terminate Termina un'esecuzione del job in corso.
operations.cancel() clouddeploy.operations.cancel Annulla un'operazione a lunga esecuzione.
operation.delete() clouddeploy.operations.delete Elimina un'operazione a lunga esecuzione.
operations.get() clouddeploy.operations.get Recupera un'operazione a lunga esecuzione specifica (ad esempio, per restituire lo stato della creazione di una release).
operations.list() clouddeploy.operations.list Elenca le operazioni a lunga esecuzione.
releases.abandon() clouddeploy.releases.abandon Abbandona una release e impedisci ulteriori implementazioni.
releases.create() clouddeploy.releases.create Crea una nuova risorsa di release. Il chiamante richiede anche l'autorizzazione iam.serviceAccounts.actAs per l'account di servizio utilizzato per il rendering del manifest.
releases.get() clouddeploy.releases.get Recupera i dettagli della singola uscita.
releases.list() clouddeploy.releases.list Elenco delle uscite e dei metadati.
rollouts.advance() clouddeploy.rollouts.advance Passa alla fase successiva di un'implementazione.
rollouts.approve() clouddeploy.rollouts.approve Approva o rifiuta un'implementazione con stato di approvazione required.
rollouts.cancel() clouddeploy.rollouts.cancel Annullare un'implementazione.
rollouts.create() clouddeploy.rollouts.create Crea una nuova risorsa di implementazione o promuovi una release. Il chiamante richiede anche l'autorizzazione iam.serviceAccounts.actAs per il progetto o il account di servizio utilizzato per il deployment.
rollouts.get() clouddeploy.rollouts.get Recupera i dettagli per la singola implementazione.
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Ignora un job non riuscito.
rollouts.list() clouddeploy.rollouts.list Elenco dei rollout e dei metadati.
rollouts.retryJob() clouddeploy.rollouts.retryJob Riprova un job non riuscito.
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() clouddeploy.deployPolicies.override Esegui l'override di una risorsa della policy di deployment.
deployPolicies.update() clouddeploy.deployPolicies.update Aggiorna una risorsa policy di deployment esistente.
targets.create() clouddeploy.targets.create Crea una nuova risorsa di destinazione.
targets.delete() clouddeploy.targets.delete Elimina una risorsa di destinazione esistente.
targets.get() clouddeploy.targets.get Recuperare i dettagli di un singolo target.
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Recupera il criterio IAM per una risorsa di destinazione.
targets.list() clouddeploy.targets.list Elenco dei target e dei relativi metadati.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Imposta il criterio IAM per una risorsa di destinazione.
targets.update() clouddeploy.targets.update Aggiorna una risorsa di destinazione esistente.

Utilizzo di IAM per limitare le azioni sulle risorse Cloud Deploy

Puoi proteggere le risorse Cloud Deploy utilizzando IAM nei seguenti modi:

  • API meta IAM

    Utilizza setIamPolicy sulle risorse Cloud Deploy per limitare le azioni su queste risorse.

  • IAM condizionale

    Applica in modo programmatico policy di accesso, incluse le condizioni in base alle quali concedere o negare l'accesso.

Puoi utilizzare queste norme e condizioni per limitare le seguenti azioni sulle tue risorse Cloud Deploy:

  • Crea una pipeline di distribuzione o un target

    Puoi concedere questo accesso a utenti o gruppi specifici.

  • Aggiornare o eliminare una pipeline di distribuzione specifica

    Puoi concedere questo accesso a utenti o gruppi specifici.

  • Crea una release per una pipeline di distribuzione specifica

    Puoi concedere questo accesso a utenti o gruppi specifici.

  • Aggiornare o eliminare un target specifico

    Puoi concedere questo accesso a utenti o gruppi specifici.

  • Creare o approvare un'implementazione o promuovere una release

    Puoi concedere questo accesso a utenti o gruppi specifici per una pipeline di targeting o di pubblicazione specifica.

    Puoi anche impostare una condizione che limiti questo accesso a un intervallo di tempo specificato.

Passaggi successivi