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.repoPullRequestApproverconcede solo l'autorizzazione per approvare le richieste di pull. Utilizza questo ruolo conrepoReadereinstanceAccessorper consentire a un utente di accedere a un'istanza, sfogliare il repository e approvare le richieste di pull senza modificare altri dati.roles/securesourcemanager.repoCreatorconcede solo l'autorizzazione per creare repository in un progetto. Poiché i repository devono essere collegati a un'istanza, devi anche disporre diroles/securesourcemanager.instanceRepoCreatorper collegare un repository a un'istanza. Utilizzaroles/securesourcemanager.repoCreatorconinstanceRepoCreatorper concedere le autorizzazioni per creare repository e collegarli a un'istanza.