Questa pagina descrive come concedere i ruoli di Identity and Access Management (IAM) alle entità sulle risorse Secure Source Manager. Per informazioni sulla concessione dei ruoli su altre risorse Google Cloud , consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Le istanze e i repository di Secure Source Manager hanno i propri ruoli. La prima volta che concedi i ruoli delle istanze in un progetto, devi utilizzare lo strumento gcloud CLI o l'API REST. Puoi concedere i 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 almeno una volta utilizzando lo strumento gcloud CLI, l'interfaccia web o l'API REST, il ruolo diventa disponibile per la selezione nella console Google Cloud quando concedi l'accesso a livello di progetto. Tuttavia, le assegnazioni (associazioni) di ruoli specifiche a livello di istanza e di repository non vengono visualizzate nell'elenco delle entità nella pagina IAM della console Google Cloud a livello di progetto.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per aggiornare la policy IAM su un'istanza o un repository, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Concedi i ruoli IAM dell'istanza:
Secure Source Manager Instance Owner (
roles/securesourcemanager.instanceOwner) sull'istanza Secure Source Manager -
Concedi i ruoli IAM del repository:
Secure Source Manager Repo Admin (
roles/securesourcemanager.repoAdmin) sul repository
Per saperne di più 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 di Secure Source Manager, consulta Controllo dell'accesso con IAM e Concedi agli utenti l'accesso alle istanze.
Specifica le entità
Un'entità rappresenta un'identità che può accedere a una risorsa. Ogni entità ha il proprio identificatore. Gli identificatori entità hanno il seguente formato:
PRINCIPAL-TYPE:ID
Ad esempio, user:my-user@example.com. Per saperne di più 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à della federazione delle identità per la forza lavoro
Se utilizzi la federazione delle identità per la forza lavoro per accedere a Secure Source Manager, le entità vengono rappresentate in modo diverso. Per scoprire di più sulla concessione dell'accesso alle entità 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 nell'istanza my-instance nel progetto my-project nella regione us-central1:
gcloud 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à per la forza lavoro in base agli attributi del tuo provider di identità (IdP) o utilizzare il Common Expression Language (CEL) per mappare gli attributi OIDC ad attributi personalizzati per definire una strategia di autorizzazione nella policy IAM. Per saperne di più sulle mappature degli attributi, consulta Mappature degli attributi.
Concedi o revoca i ruoli dell'istanza
Per concedere o revocare i ruoli delle istanze per le entità, utilizza lo strumento gcloud CLI o l'API Secure Source Manager.
gcloud
Per concedere un ruolo a un'entità su un'istanza, esegui questo comando:
gcloud source-manager instances add-iam-policy-binding INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --member=PRINCIPAL \ --role=ROLE_NAMESostituisci quanto segue:
INSTANCE_IDcon l'ID istanza.PROJECT_IDcon l'ID progetto o il numero di progetto dell'istanza.REGIONcon la regione in cui si trova l'istanza. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.PRINCIPALcon l'entità a cui concedere il ruolo. Ad esempio,user:my-user@example.com.ROLE_NAMEcon il nome del ruolo da concedere. Ad esempio,roles/securesourcemanager.instanceOwner.
Per revocare un ruolo a un'entità su un'istanza, esegui questo comando:
gcloud source-manager instances remove-iam-policy-binding INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --member=PRINCIPAL \ --role=ROLE_NAMESostituisci quanto segue:
INSTANCE_IDcon l'ID istanza.PROJECT_IDcon l'ID progetto o il numero di progetto dell'istanza.REGIONcon la regione in cui si trova l'istanza.PRINCIPALcon l'entità da cui revocare il ruolo. Ad esempio,user:my-user@example.com.ROLE_NAMEcon il nome del ruolo da revocare. Ad esempio,roles/securesourcemanager.instanceOwner.
API
Esegui il seguente comando
instances.getIamPolicyper 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.jsonSostituisci quanto segue:
PROJECT_IDl'ID progetto o il numero di progetto dell'istanza.REGIONla regione in cui si trova l'istanza. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.INSTANCE_IDl'ID istanza.
L'output includerà eventuali associazioni esistenti o, se non ne esistono, il valore
etagsimile al seguente:{ "etag": "BwUjHYKJUiQ=" }In modo programmatico o utilizzando un editor di testo, modifica la copia locale della policy di autorizzazione dell'istanza in modo che rifletta i ruoli che vuoi concedere o revocare.
Per assicurarti di non sovrascrivere altre modifiche, non modificare o rimuovere il campo
etagdella policy di autorizzazione. Il campoetagidentifica lo stato attuale della policy di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valoreetagnella richiesta con iletagesistente 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 dei ruoli nella policy di autorizzazione. Le associazioni dei 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.IDENTIFIERPRINCIPAL_1,PRINCIPAL_2,...PRINCIPAL_N: identificatori delle entità a cui vuoi concedere il ruolo.
Ad esempio, la seguente policy concede il ruolo
instanceOwnerauser1@gmail.come il ruoloinstanceManageragli utentiuser2@gmail.com,user3@gmail.come al account di serviziomy-other-app@.{ "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@" ] } ] } }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.setIamPolicyper 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.jsonSostituisci quanto segue:
PROJECT_IDl'ID progetto o il numero di progetto dell'istanza.REGIONla regione in cui si trova l'istanza. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.INSTANCE_IDl'ID istanza.
Concedi o revoca 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 la policy di autorizzazione del repository. Per concedere i ruoli del repository ai gruppi, devi utilizzare l'API Secure Source Manager.
Agli utenti deve essere concesso un ruolo di istanza prima che possano essere concessi i ruoli del repository. Per informazioni sulla concessione dei ruoli dell'istanza, consulta Concedi o revoca i ruoli dell'istanza.
Interfaccia web
Per concedere agli utenti o ai service account i ruoli a livello di repository utilizzando l'interfaccia web:
- Vai all'URL dell'istanza fornito dal tuo contatto Google.
- Nella 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'indirizzo 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 edit Modifica e aggiungi i ruoli utilizzando il menu Assegna un ruolo.
API
Il metodo repositories.getIamPolicy dell'API Secure Source Manager recupera la policy di autorizzazione di un repository.
- Eseguire quanto segue
repositories.getIamPolicycomando per leggere la policy corrente 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_PROJECTl'ID progetto o il numero di progetto del repository.REGIONla regione in cui si trova il repository.REPOSITORY_IDl'ID repository.
L'output includerà eventuali associazioni esistenti o, se non ne esistono, il valore etag simile al seguente:
{
"etag": "BwUjHYKJUiQ="
}
In modo programmatico o utilizzando un editor di testo, modifica la copia locale della policy di autorizzazione del repository salvata in
/tmp/repository.jsonin modo che rifletta i ruoli che vuoi concedere o revocare.Per assicurarti di non sovrascrivere altre modifiche, non modificare o rimuovere il campo
etagdella policy di autorizzazione. Il campoetagidentifica lo stato attuale della policy di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valoreetagnella richiesta con il valoreetagesistente 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 dei ruoli nella policy di autorizzazione. Le associazioni dei 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
repoAdminall'utenteemail1@gmail.come il ruolorepoWriteragli utentiemail2@gmail.com,group1@gmail.come al account di serviziomy-other-app@.{ "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@" ] } ] } }Salva il file
/tmp/repository.jsonmodificato.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.jsonSostituisci quanto segue:
REPOSITORY_PROJECTl'ID progetto o il numero di progetto del repository.REGIONla regione in cui si trova il repository. Consulta la documentazione sulle località per le regioni Secure Source Manager disponibili.REPOSITORY_IDl'ID repository.
Passaggi successivi
- Scopri di più sul controllo degli accessi con IAM in Secure Source Manager.