Ruoli e autorizzazioni IAM

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

L'accesso in Cloud Deploy è controllato utilizzando Identity and Access Management (IAM). IAM ti 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 Utilizzare IAM per limitare l'accesso a Cloud Deploy per saperne di più sulle funzionalità di sicurezza avanzate per il controllo dell'accesso.

Account di servizio in Cloud Deploy

Per impostazione predefinita, Cloud Deploy viene eseguito utilizzando l'account di servizio predefinito di Compute Engine. 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 all'account di servizio di esecuzione Cloud Deploy.

Scopri di più su come Cloud Deploy utilizza gli account di servizio.

Ruoli Cloud Deploy predefiniti

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

La documentazione IAM include un riferimento per la ricerca di tutti i ruoli predefiniti.

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

Autorizzazioni

(roles/clouddeploy.admin)

Controllo completo delle risorse Cloud Deploy.

clouddeploy.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.approver)

Autorizzazione per l'approvazione o il rifiuto delle implementazioni.

clouddeploy.config.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.rollouts.approve

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.customTargetTypeAdmin)

Autorizzazione per gestire le risorse CustomTargetType

clouddeploy.config.get

clouddeploy.customTargetTypes.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.developer)

Autorizzazione per gestire la configurazione del deployment senza l'autorizzazione ad accedere alle risorse operative, come i target.

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.operations.*

clouddeploy.releases.*

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.jobRunner)

Autorizzazione per eseguire le operazioni di Cloud Deploy senza autorizzazione a consegnare a una destinazione.

clouddeploy.config.get

logging.logEntries.create

storage.objects.create

storage.objects.get

storage.objects.list

(roles/clouddeploy.operator)

Autorizzazione per gestire la configurazione del deployment.

clouddeploy.automationRuns.*

clouddeploy.automations.*

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.list

clouddeploy.jobRuns.*

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.releases.*

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)

Autorizzazione a gestire i criteri di deployment.

clouddeploy.deployPolicies.*

clouddeploy.locations.*

clouddeploy.operations.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyOverrider)

Autorizzazione a sostituire i criteri di deployment.

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.deployPolicies.override

clouddeploy.locations.*

clouddeploy.operations.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.releaser)

Autorizzazione per creare release e lanci di Cloud Deploy.

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.deliveryPipelines.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

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.viewer)

Può visualizzare le risorse di Cloud Deploy.

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.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

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, i ruoli di base Visualizzatore, Editor e Proprietario includono anche le autorizzazioni relative a Cloud Deploy. Tuttavia, ti consigliamo di assegnare ruoli predefiniti, se possibile, per rispettare il principio di sicurezza del privilegio minimo.

Autorizzazioni

La tabella seguente elenca le autorizzazioni che chi chiama deve disporre per chiamare ciascun 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 Annullare 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 di destinazione personalizzata.
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 target 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 della pipeline di distribuzione.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Elimina una risorsa della pipeline di distribuzione esistente.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Recupera i dettagli di una singola pipeline di importazione.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Recupera il criterio IAM per una risorsa della pipeline di distribuzione.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Elenca le pipeline di importazione 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 della pipeline di importazione.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Aggiorna una risorsa della pipeline di importazione esistente.
deployPolicies.create() clouddeploy.deployPolicies.create Crea una risorsa del criterio di deployment.
deployPolicies.delete() clouddeploy.deployPolicies.delete Elimina una risorsa del criterio di deployment.
deployPolicies.get() clouddeploy.deployPolicies.get Recupera i dettagli di una risorsa del criterio di deployment.
deployPolicies.list() clouddeploy.deployPolicies.list Elenca i criteri 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 di job in corso.
operations.cancel() clouddeploy.operations.cancel Annullare un'operazione a lunga esecuzione.
operation.delete() clouddeploy.operations.delete Elimina un'operazione a lunga esecuzione.
operations.get() clouddeploy.operations.get Ottenere 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 Abbandonare una release ed evitare ulteriori implementazioni.
releases.create() clouddeploy.releases.create Crea una nuova risorsa di release. L'utente che chiama richiede anche l'autorizzazione iam.serviceAccounts.actAs per l'account di servizio utilizzato per eseguire il rendering del manifest.
releases.get() clouddeploy.releases.get Recupera i dettagli per una singola release.
releases.list() clouddeploy.releases.list Elenca le release e i metadati.
rollouts.advance() clouddeploy.rollouts.advance Passare a una fase successiva dell'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. L'utente che chiama richiede anche l'autorizzazione iam.serviceAccounts.actAs per il progetto o l'account di servizio utilizzato per il deployment.
rollouts.get() clouddeploy.rollouts.get Recupera i dettagli per il singolo implementazione.
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Ignora un job non riuscito.
rollouts.list() clouddeploy.rollouts.list Elenca le implementazioni e i metadati.
rollouts.retryJob() clouddeploy.rollouts.retryJob Esegue un nuovo tentativo per un job non riuscito.
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() clouddeploy.deployPolicies.override Sostituisci una risorsa del criterio di deployment.
deployPolicies.update() clouddeploy.deployPolicies.update Aggiorna una risorsa del criterio 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 Recupera 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 Elenca i target e i 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

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

Puoi utilizzare questi criteri e queste 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.

  • Creare 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 un target o una pipeline di importazione specifici.

    Puoi anche impostare una condizione che limiti questo accesso a un determinato arco di tempo.

Passaggi successivi