Questa pagina descrive come concedere ruoli IAM (Identity and Access Management) alle entità sulle risorse Secure Source Manager. Per informazioni sulla concessione dei ruoli su altre risorse Google Cloud , consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Le istanze e i repository di Secure Source Manager hanno ruoli propri. La prima volta che concedi ruoli istanza in un progetto, devi utilizzare lo strumento gcloud CLI o l'API REST. Puoi concedere ruoli del repository con lo strumento gcloud CLI, l'API REST o tramite l'interfaccia web di Secure Source Manager.
Dopo aver concesso un ruolo Secure Source Manager utilizzando gcloud CLI, l'interfaccia web o l'API REST, il ruolo è visibile per il tuo progetto nella console Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per aggiornare il criterio IAM su un'istanza o un repository, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Concedi ruoli IAM all'istanza:
Secure Source Manager Instance Owner (
roles/securesourcemanager.instanceOwner
) nell'istanza Secure Source Manager -
Concedi ruoli IAM per il repository:
Secure Source Manager Repo Admin (
roles/securesourcemanager.repoAdmin
) sul repository
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per informazioni sulla concessione dei ruoli Secure Source Manager, consulta Controllo dell'accesso con IAM e Concedere agli utenti l'accesso all'istanza.
Specifica le entità
Un'entità rappresenta un'identità che può accedere a una risorsa. Ogni entità ha il proprio identificatore. Gli identificatori delle entità hanno il seguente formato:
PRINCIPAL-TYPE:ID
Ad esempio, user:my-user@example.com
. Per ulteriori informazioni sulle entità, leggi Come funziona IAM.
Per il tipo di entità user
, il nome di dominio nell'identificatore deve essere un
dominio Google Workspace o un dominio Cloud Identity, a meno che tu non utilizzi
la federazione delle identità per la forza lavoro. Per scoprire come configurare un dominio Cloud Identity, consulta la panoramica di Cloud Identity.
Entità di sicurezza della federazione delle identità per la forza lavoro
Se utilizzi la federazione delle identità per la forza lavoro per accedere a Secure Source Manager, i principal sono rappresentati in modo diverso. Per scoprire di più su come concedere l'accesso ai principal che rappresentano gruppi di identità, consulta Rappresenta gli utenti del pool di forza lavoro nelle policy IAM.
Ad esempio, il seguente comando concede all'utente user@example.com
il ruolo
Instance Accessor (roles/securesourcemanager.instanceAccessor
) nel
pool di forza lavoro my-pool
sull'istanza my-instance
nel
progetto my-project
nella regione us-central1
:
gcloud beta source-manager instances add-iam-policy-binding my-instance \
--project=my-project \
--region=us-central1 \
--member=principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com \
--role=roles/securesourcemanager.instanceAccessor
Puoi concedere l'accesso a utenti o gruppi all'interno del pool di identità della forza lavoro in base agli attributi del provider di identità (IdP) oppure utilizzare il Common Expression Language (CEL) per mappare gli attributi OIDC agli attributi personalizzati per definire una strategia di autorizzazione nel criterio IAM. Per ulteriori informazioni sulle mappature degli attributi, leggi Mappature degli attributi.
Concedere o revocare i ruoli dell'istanza
Per concedere o revocare i ruoli dell'istanza, utilizza il pattern di lettura, modifica e scrittura per aggiornare la policy di autorizzazione della risorsa:
- Leggi la policy di autorizzazione corrente chiamando
getIamPolicy()
. - Modifica la policy di autorizzazione utilizzando un editor di testo o in modo programmatico per aggiungere o rimuovere eventuali entità o associazioni di ruoli.
- Scrivi la policy di autorizzazione aggiornata chiamando
setIamPolicy()
.
gcloud
Per leggere la policy di autorizzazione corrente e salvarla in
/tmp/instances.json
, esegui questo comando:gcloud beta source-manager instances get-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --format=json > /tmp/instance.json
Sostituisci quanto segue:
INSTANCE_ID
con l'ID istanza.PROJECT_ID
con l'ID o il numero del progetto dell'istanza.REGION
con la regione in cui si trova l'istanza. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.
L'output includerà eventuali binding esistenti o, se non ne esistono, il valore
etag
simile al seguente:{ "etag": "BwUjHYKJUiQ=" }
Modifica la copia locale del criterio di autorizzazione dell'istanza in modo programmatico o mediante un editor di testo per riflettere i ruoli che vuoi concedere o revocare.
Per assicurarti di non sovrascrivere altre modifiche, non modificare o rimuovere il campo
etag
del criterio di autorizzazione. Il campoetag
identifica lo stato attuale del criterio di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valoreetag
nella richiesta con il valoreetag
esistente e scrive la policy di autorizzazione solo se i valori corrispondono.Per modificare i ruoli concessi da una policy di autorizzazione, devi modificare le associazioni di ruolo nella policy di autorizzazione. Le associazioni di ruoli hanno il seguente formato:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
I segnaposto hanno i seguenti valori:
ROLE_NAME
: il nome del ruolo che vuoi concedere. Utilizza il formato seguente:roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: identificatori delle entità a cui vuoi concedere il ruolo.
Ad esempio, la seguente policy concede il ruolo
instanceOwner
auser1@gmail.com
e il ruoloinstanceManager
agli utentiuser2@gmail.com
,user3@gmail.com
e all'account di serviziomy-other-app@appspot.gserviceaccount.com
.{ "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] }
Dopo aver modificato la policy di autorizzazione salvata per concedere e revocare i ruoli selezionati, aggiorna la policy di autorizzazione dell'istanza eseguendo il seguente comando:
gcloud beta source-manager instances set-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ /tmp/instance.json
Sostituisci quanto segue:
INSTANCE_ID
con l'ID istanza.PROJECT_ID
con l'ID o il numero del progetto dell'istanza.REGION
con la regione in cui si trova l'istanza. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.
API
Esegui questo comando
instances.getIamPolicy
per leggere la policy attuale:curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:getIamPolicy > /tmp/instance.json
Sostituisci quanto segue:
PROJECT_ID
l'ID o il numero di progetto dell'istanza.REGION
la regione in cui si trova l'istanza. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.INSTANCE_ID
l'ID istanza.
L'output includerà eventuali binding esistenti o, se non ne esistono, il valore
etag
simile al seguente:{ "etag": "BwUjHYKJUiQ=" }
Modifica la copia locale del criterio di autorizzazione dell'istanza in modo programmatico o mediante un editor di testo per riflettere i ruoli che vuoi concedere o revocare.
Per assicurarti di non sovrascrivere altre modifiche, non modificare o rimuovere il campo
etag
del criterio di autorizzazione. Il campoetag
identifica lo stato attuale della policy di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valoreetag
nella richiesta con il valoreetag
esistente e scrive la policy di autorizzazione solo se i valori corrispondono.Per modificare i ruoli concessi da una policy di autorizzazione, devi modificare le associazioni di ruolo nella policy di autorizzazione. Le associazioni di ruoli hanno il seguente formato:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
I segnaposto hanno i seguenti valori:
ROLE_NAME
: il nome del ruolo che vuoi concedere. Utilizza il formato seguente:roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: identificatori delle entità a cui vuoi concedere il ruolo.
Ad esempio, la seguente policy concede il ruolo
instanceOwner
auser1@gmail.com
e il ruoloinstanceManager
agli utentiuser2@gmail.com
,user3@gmail.com
e all'account di serviziomy-other-app@appspot.gserviceaccount.com
.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }
Dopo aver modificato la policy di autorizzazione per concedere e revocare i ruoli scelti, chiama
instances.setIamPolicy()
per apportare gli aggiornamenti.Utilizza il seguente comando
instances.setIamPolicy
per impostare la nuova policy sull'istanza.curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:setIamPolicy \ -d @/tmp/instance.json
Sostituisci quanto segue:
PROJECT_ID
l'ID o il numero di progetto dell'istanza.REGION
la regione in cui si trova l'istanza. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.INSTANCE_ID
l'ID istanza.
Concedere o revocare i ruoli del repository
Per concedere o revocare i ruoli del repository a utenti e service account, puoi assegnarli dall'interfaccia web di Secure Source Manager o utilizzare l'API Secure Source Manager per aggiornare il criterio di autorizzazione del repository. Per concedere ai gruppi i ruoli del repository, devi utilizzare l'API Secure Source Manager.
Agli utenti deve essere concesso un ruolo di istanza prima che possano essere concessi ruoli di repository. Per informazioni sulla concessione dei ruoli dell'istanza, vedi Concedere o revocare i ruoli dell'istanza.
Interfaccia web
Per concedere ruoli a livello di repository a utenti o service account utilizzando l'interfaccia web:
- Vai all'URL dell'istanza fornito dal tuo contatto Google.
- Dalla pagina I miei repository, seleziona il tuo repository.
- Fai clic sulla scheda Autorizzazioni.
- Nella sezione Persone e autorizzazioni, fai clic su Aggiungi utenti.
- Nel campo Aggiungi entità, inserisci l'email dell'utente o del service account a cui vuoi concedere il ruolo.
- Nel menu Assegna un ruolo, seleziona il ruolo da assegnare.
- Fai clic su Salva.
Per aggiungere altri ruoli, fai clic sull'icona Modifica Modifica e aggiungi i ruoli utilizzando il menu Assegna un ruolo.
API
Il metodo dell'API Secure Source Manager repositories.getIamPolicy
recupera la policy di autorizzazione di un repository.
- Esegui questo comando
repositories.getIamPolicy
per leggere la policy attuale e salvarla in/tmp/repository.json
:
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:getIamPolicy > /tmp/repository.json
Sostituisci quanto segue:
REPOSITORY_PROJECT
l'ID o il numero di progetto del repository.REGION
la regione in cui si trova il repository.REPOSITORY_ID
l'ID repository.
L'output includerà eventuali binding esistenti o, se non ne esistono, il valore etag
simile al seguente:
{
"etag": "BwUjHYKJUiQ="
}
Modifica la copia locale del criterio di autorizzazione del repository salvato in
/tmp/repository.json
in modo programmatico o mediante un editor di testo per riflettere i ruoli che vuoi concedere o revocare.Per assicurarti di non sovrascrivere altre modifiche, non modificare o rimuovere il campo
etag
del criterio di autorizzazione. Il campoetag
identifica lo stato attuale della policy di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valoreetag
nella richiesta con il valoreetag
esistente e scrive la policy di autorizzazione solo se i valori corrispondono.Per modificare i ruoli concessi da una policy di autorizzazione, devi modificare le associazioni di ruolo nella policy di autorizzazione. Le associazioni di ruoli hanno il seguente formato:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
I segnaposto hanno i seguenti valori:
ROLE_NAME
: il nome del ruolo che vuoi concedere. Utilizza il formato seguente:roles/securesourcemanager.<var>IDENTIFIER</var>
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: identificatori delle entità a cui vuoi concedere il ruolo.
L'esempio seguente concede il ruolo
repoAdmin
all'utenteemail1@gmail.com
e il ruolorepoWriter
agli utentiemail2@gmail.com
,group1@gmail.com
e al account di serviziomy-other-app@appspot.gserviceaccount.com
.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.repoAdmin", "members": [ "user:email1@gmail.com" ] }, { "role": "roles/resourcemanager.repoWriter", "members": [ "user:email2@gmail.com", "group:group1@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }
Salva il file
/tmp/repository.json
modificato.Imposta la nuova policy con il comando
setIamPolicy
:curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:setIamPolicy \ -d @/tmp/repository.json
Sostituisci quanto segue:
REPOSITORY_PROJECT
l'ID o il numero di progetto del repository.REGION
la regione in cui si trova il repository. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.REPOSITORY_ID
l'ID repository.
Passaggi successivi
- Scopri di più sul controllo dell'accesso con IAM in Secure Source Manager.