Ruoli e autorizzazioni IAM

Questa pagina descrive gli account di servizio, i ruoli e autorizzazioni aggiuntive.

L'accesso in Cloud Deploy è controllato utilizzando Identity and Access Management (IAM). IAM consente di creare e gestire delle autorizzazioni per le risorse Google Cloud. Cloud Deploy fornisce un servizio insieme di ruoli IAM predefiniti in cui ogni ruolo contiene un insieme di autorizzazioni. Puoi usare questi ruoli per assegnare un accesso più granulare a specifiche risorse Google Cloud e prevenire 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 Compute Engine predefinito l'account di servizio. Questo account di servizio dispone delle autorizzazioni sufficienti per eseguire il rendering dei manifest e il relativo deployment nelle destinazioni.

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

Ruoli predefiniti di Cloud Deploy

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 criteri che concedono ruoli a un dell'entità (utente, gruppo o account di servizio) del tuo progetto. Puoi concedere più ruoli a un'entità sulla stessa risorsa.

La documentazione di IAM include un riferimento disponibile 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, Visualizzatore di base, I ruoli Editor e Proprietario includono anche le autorizzazioni relative a Cloud Deploy. Tuttavia, ti consigliamo di concedere ruoli predefiniti, ove possibile, per rispettare le principio di sicurezza del privilegio minimo.

Autorizzazioni

Nella tabella seguente sono elencate le autorizzazioni che il chiamante deve avere 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 per 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 per una singola esecuzione dell'automazione.
automationRuns.list() clouddeploy.automationRuns.list Elenca le esecuzioni dell'automazione e i relativi metadati.
customTargetTypes.create() clouddeploy.customTargetTypes.create Creare 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 per un tipo di destinazione personalizzato.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy Ottieni il criterio IAM per una risorsa di tipo di destinazione personalizzata.
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 di destinazione personalizzata.
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Creare una nuova risorsa della pipeline di distribuzione.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Elimina una risorsa esistente della pipeline di distribuzione.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Recupera i dettagli per una singola pipeline di distribuzione.
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 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 della pipeline di distribuzione.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Aggiorna una risorsa esistente della pipeline di distribuzione.
jobRuns.get() clouddeploy.jobRuns.get Recupera una risorsa JobRuns.
jobRuns.list() clouddeploy.jobRuns.list Elenca JobRuns risorse e i relativi metadati.
jobRuns.terminate() clouddeploy.jobRuns.terminate Termina l'esecuzione di un 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 Recupera un'operazione specifica a lunga esecuzione (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 della release.
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 eseguire il rendering del manifest.
releases.get() clouddeploy.releases.get Recupera i dettagli per una singola release.
releases.list() clouddeploy.releases.list Elenca le uscite e i metadati.
releases.promote() clouddeploy.rollouts.create Promuovi la release al target successivo.
rollouts.advance() clouddeploy.rollouts.advance Porta un'implementazione alla fase successiva.
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 Creare una nuova risorsa di implementazione. Il chiamante richiede anche l'autorizzazione iam.serviceAccounts.actAs per l'account di progetto o di servizio utilizzato per il deployment.
rollouts.get() clouddeploy.rollouts.get Recupera i dettagli di una singola 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.
targets.create() clouddeploy.targets.create Creare 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 Ottiene il criterio IAM per una risorsa di destinazione.
targets.list() clouddeploy.targets.list Elenca le destinazioni 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:

  • Meta API IAM

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

  • IAM condizionale

    Applicare i 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 una destinazione

    Puoi concedere questo accesso a utenti o gruppi specifici.

  • Aggiorna o elimina 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 specifico. di distribuzione dei container.

    Puoi anche impostare una condizione che limiti questo accesso all'interno di un finestra temporale.

Passaggi successivi