Tradurre ruoli e autorizzazioni di Cloud Source Repositories in Secure Source Manager

Questa guida mostra agli utenti di Cloud Source Repositories (CSR) come i relativi controlli dell'accesso vengono convertiti in Secure Source Manager (SSM). Per seguire questa guida, devi conoscere IAM e CSR e avere una conoscenza di base di SSM.

Modelli di risorse

Il CSR ha una Google Cloud risorsa che è un elemento figlio di un progetto:

  • Un repository, projects/<var>project</var>/repositories/<var>repo</var>

SSM ha due risorse che sono elementi secondari regionalizzati di un progetto:

  • Un'istanza, projects/<var>project</var>/locations/<var>location</var>/instances/<var>instance</var>
  • Un repository, che è l'equivalente più diretto di un repository CSR e deve essere collegato a (ma non è un elemento secondario di) un'istanza SSM nello stesso progetto e nella stessa località, projects/<var>project</var>/locations/<var>location</var>/repositories/<var>repo</var>

SSM ha altre risorse, ma sono modellate come elementi figlio del repository. Questa guida li considera parte del repository.

Ruoli

La CSR ha tre ruoli: roles/source.reader, roles/source.writer e roles/source.admin. Puoi associare i ruoli di lettore e scrittore a un repository o a un progetto. Devi associare il ruolo Amministratore solo a un progetto perché l'autorizzazione source.repos.create si applica solo all'ambito del progetto.

SSM ha 11 ruoli per le entità utente, un aumento significativo rispetto a Cloud Source Repositories. Puoi raggruppare questi ruoli in due categorie (più un ruolo di superutente).

Il ruolo Superuser (roles/securesourcemanager.admin) concede tutte le autorizzazioni SSM. Devi associare questo ruolo a un progetto perché le autorizzazioni dell'istanza non vengono applicate se le associ a un repository e le autorizzazioni del repository non vengono applicate se le associ a un'istanza.

Ruoli istanza SSM

I ruoli di istanza concedono le autorizzazioni per accedere alla UI di un'istanza Secure Source Manager e connettersi a essa utilizzando Git. Devi concedere agli utenti almeno un ruolo istanza per consentirgli di accedere ai repository sull'istanza. Puoi associare questi ruoli a una risorsa istanza o a un progetto.

Ruolo Autorizzazioni
roles/securesourcemanager.instanceAccessor Accedere a un'istanza e ai relativi repository. Obbligatorio per l'applicazione dei ruoli a livello di repository.
roles/securesourcemanager.instanceManager Gestisci le configurazioni a livello di istanza.
roles/securesourcemanager.instanceOwner Controllo completo delle configurazioni delle istanze.
roles/securesourcemanager.instanceRepoCreator Crea repository su un'istanza.
roles/securesourcemanager.sshKeyUser Gestisci le chiavi SSH per l'autenticazione a un'istanza. Non concede l'accesso all'istanza da solo.

Ruoli del repository SSM

I ruoli del repository concedono autorizzazioni sui repository all'interno di un'istanza di Secure Source Manager. Puoi associare questi ruoli a una risorsa repository o a un progetto, ad eccezione di repoCreator, che devi associare a un progetto.

Ruolo Autorizzazioni
roles/securesourcemanager.repoAdmin Controllo completo di un repository, incluse le impostazioni del repository e l'accesso degli utenti.
roles/securesourcemanager.repoPullRequestApprover Approvare le richieste di pull in un repository.
roles/securesourcemanager.repoReader Leggere i contenuti del repository e visualizzare le richieste di pull e i problemi.
roles/securesourcemanager.repoWriter Leggere e scrivere contenuti del repository e gestire richieste di pull e problemi.
roles/securesourcemanager.repoCreator Crea nuovi repository all'interno di un progetto.

Mappatura dei ruoli CSR a SSM

Per utilizzare SSM in modo efficace, devi avere almeno due ruoli: un ruolo istanza e un ruolo repository. Non esiste una mappatura 1:1 da un ruolo CSR a un ruolo SSM. Queste ricette forniscono un accesso equivalente solo per il controllo del codice sorgente, non per le funzionalità SSM come richieste pull, problemi o gestione delle istanze.

In CSR, puoi creare repository in più progetti. In Secure Source Manager, tutti i repository di un'istanza appartengono allo stesso progetto dell'istanza. Se associ un ruolo a livello di progetto in Secure Source Manager, concedi le autorizzazioni di quel ruolo a ogni repository dell'istanza. Se devi concedere autorizzazioni solo a repository specifici, utilizza i binding a livello di repository.

Mappatura di Source.Reader

Se hai associato questo ruolo a livello di repository, associa securesourcemanager.repoReader alla risorsa repository e securesourcemanager.instanceAccessor all'istanza host per ricreare lo stesso livello di accesso. Se hai associato il ruolo a livello di progetto, l'associazione di repoReader e instanceAccessor a livello di progetto concede l'accesso in lettura a tutti i repository dell'istanza.

Mapping source.writer

Se hai associato questo ruolo a livello di repository, associa securesourcemanager.repoWriter alla risorsa repository e securesourcemanager.instanceAccessor all'istanza host per ricreare lo stesso livello di accesso. Se hai associato il ruolo a livello di progetto, l'associazione di repoWriter e instanceAccessor a livello di progetto concede l'accesso in scrittura a tutti i repository dell'istanza.

Mapping source.admin

Puoi associare questo ruolo solo a livello di progetto. Puoi ricrearlo associando una combinazione di securesourcemanager.instanceAccessor, securesourcemanager.repoAdmin, securesourcemanager.instanceRepoCreator e securesourcemanager.repoCreator a livello di progetto. Questa combinazione di ruoli concede l'autorizzazione per creare repository su qualsiasi istanza del progetto e concede agli amministratori le autorizzazioni per tutti i repository su qualsiasi istanza del progetto. Per concedere tutte le autorizzazioni SSM nello stesso modo in cui source.admin ha concesso tutte le autorizzazioni CSR, associa il ruolo di superutente, securesourcemanager.admin, a livello di progetto.

Differenze tra SSM e CSR

Questa sezione descrive le modifiche chiave nel modo in cui Secure Source Manager gestisce ruoli e autorizzazioni rispetto a Cloud Source Repositories.

Concessione implicita del ruolo

Quando crei una nuova risorsa repository, al principal chiamante viene concesso automaticamente il ruolo repoAdmin nella risorsa repository appena creata.

Nuovi tipi di risorse

SSM ha più funzionalità di CSR e queste funzionalità sono modellate come nuovi tipi di risorse. Queste funzionalità includono regole di protezione dei rami, hook, problemi e richieste pull, oltre ai commenti su problemi e richieste pull. Queste risorse sono elementi secondari della risorsa repository. I ruoli del repository includono le autorizzazioni per queste risorse. Ad esempio, repoAdmin e repoWriter forniscono l'accesso in scrittura, mentre repoReader concede solo l'accesso in lettura.

Ruoli granulari

SSM include ruoli granulari che forniscono controlli dell'accesso specifici.

  • roles/securesourcemanager.repoPullRequestApprover concede solo l'autorizzazione per approvare le richieste di pull. Utilizza questo ruolo con repoReader e instanceAccessor per consentire a un utente di accedere a un'istanza, sfogliare il repository e approvare le richieste di pull senza modificare altri dati.
  • roles/securesourcemanager.repoCreator concede solo l'autorizzazione per creare repository in un progetto. Poiché i repository devono essere collegati a un'istanza, devi anche disporre di roles/securesourcemanager.instanceRepoCreator per collegare un repository a un'istanza. Utilizza roles/securesourcemanager.repoCreator con instanceRepoCreator per concedere le autorizzazioni per creare repository e collegarli a un'istanza.

Passaggi successivi