Concessione e revoca di ruoli IAM

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:

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:

  1. Leggi la policy di autorizzazione corrente chiamando getIamPolicy().
  2. Modifica la policy di autorizzazione utilizzando un editor di testo o in modo programmatico per aggiungere o rimuovere eventuali entità o associazioni di ruoli.
  3. Scrivi la policy di autorizzazione aggiornata chiamando setIamPolicy().

gcloud

  1. 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="
    }
    
  2. 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 campo etag identifica lo stato attuale del criterio di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valore etag nella richiesta con il valore etag 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 a user1@gmail.com e il ruolo instanceManager agli utenti user2@gmail.com,user3@gmail.com e all'account di servizio my-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"
            ]
        }
        ]
    }
    
  3. 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

  1. 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="
    }
    
  2. 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 campo etag identifica lo stato attuale della policy di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valore etag nella richiesta con il valore etag 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 a user1@gmail.com e il ruolo instanceManager agli utenti user2@gmail.com,user3@gmail.com e all'account di servizio my-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"
            ]
        }
        ]
    }
    }
    
  3. 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:

  1. Vai all'URL dell'istanza fornito dal tuo contatto Google.
  2. Dalla pagina I miei repository, seleziona il tuo repository.
  3. Fai clic sulla scheda Autorizzazioni.
  4. Nella sezione Persone e autorizzazioni, fai clic su Aggiungi utenti.
  5. Nel campo Aggiungi entità, inserisci l'email dell'utente o del service account a cui vuoi concedere il ruolo.
  6. Nel menu Assegna un ruolo, seleziona il ruolo da assegnare.
  7. 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.

  1. 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="
}
  1. 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 campo etag identifica lo stato attuale della policy di autorizzazione. Quando imposti la policy di autorizzazione aggiornata, IAM confronta il valore etag nella richiesta con il valore etag 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'utente email1@gmail.com e il ruolo repoWriter agli utenti email2@gmail.com, group1@gmail.com e al account di servizio my-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"
            ]
        }
        ]
    }
    }
    
  2. Salva il file /tmp/repository.json modificato.

  3. 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