Creare un ruolo personalizzato

Questa pagina descrive come creare e gestire i ruoli personalizzati in Google Distributed Cloud (GDC) con air gap. I ruoli personalizzati ti consentono di gestire l'accesso oltre i set di autorizzazioni standard disponibili nei ruoli predefiniti, consentendoti di configurare le autorizzazioni in modo che soddisfino i tuoi criteri specifici.

I ruoli personalizzati seguono il principio del privilegio minimo e sono utili per concedere l'accesso minimo richiesto per le attività sensibili, mitigando i rischi per la sicurezza e prevenendo i conflitti di interesse.

La creazione di un ruolo personalizzato ti consente di:

  • Definisci l'ambito di accesso: scegli di applicare le autorizzazioni alla tua organizzazione, a tutti i progetti o di limitarle a progetti specifici.
  • Personalizza l'accesso granulare: seleziona una o più autorizzazioni già disponibili tramite i ruoli predefiniti per personalizzare l'accesso ad attività o responsabilità specifiche.

I ruoli personalizzati sono vincolati dall'ambito in cui vengono creati. L'accesso al ruolo personalizzato può essere concesso solo all'interno della stessa organizzazione o dello stesso progetto in cui è stato creato il ruolo personalizzato.

Questa pagina è rivolta ai membri del gruppo di amministratori della piattaforma, come amministratori IT o tecnici della sicurezza, che vogliono gestire in modo sicuro l'accesso alle risorse dell'organizzazione. Per saperne di più, consulta la documentazione sui segmenti di pubblico per GDC con air gap.

Per saperne di più sui ruoli, consulta Descrizioni dei ruoli predefiniti e Definizioni dei ruoli.

Prima di iniziare

Prima di creare o gestire ruoli personalizzati, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.

Richiedi ruoli IAM dell'organizzazione

Per creare, aggiornare ed eliminare ruoli personalizzati in un'organizzazione o all'interno di un progetto, contatta l'amministratore dell'organizzazione IAM per richiedere il ruolo Amministratore dell'organizzazione con ruoli personalizzati (custom-role-org-admin).

Scopri di più sull'assegnazione delle autorizzazioni dei ruoli per le organizzazioni.

Richiedi ruoli IAM per il progetto

Per creare, aggiornare ed eliminare ruoli personalizzati all'interno di un progetto specifico, contatta l'amministratore del progetto IAM per richiedere il ruolo Custom Role Project Admin (custom-role-project-admin).

Scopri di più sull'assegnazione delle autorizzazioni dei ruoli per i progetti.

prepara l'ambiente

Per utilizzare gli strumenti a riga di comando per creare o gestire ruoli personalizzati, completa la seguente configurazione:

Visualizza i ruoli e le relative autorizzazioni

Un ruolo personalizzato è costituito da un gruppo di autorizzazioni che puoi assegnare agli utenti. Per creare un ruolo personalizzato, seleziona le autorizzazioni dai ruoli predefiniti esistenti e combinale in base alle tue esigenze. Le autorizzazioni che puoi includere in un ruolo personalizzato dipendono dall'ambito in cui crei il ruolo: organizzazione o progetto.

Questa sezione spiega come elencare i ruoli disponibili (sia predefiniti che personalizzati) e visualizzare le relative autorizzazioni. Puoi utilizzare queste informazioni per:

  • Identifica le autorizzazioni per i nuovi ruoli personalizzati: scopri le stringhe di autorizzazione specifiche richieste per il flag --permissions quando utilizzi l'interfaccia a riga di comando gdcloud per creare un ruolo personalizzato.
  • Esamina i ruoli esistenti: esamina le autorizzazioni associate a qualsiasi ruolo predefinito o personalizzato nell'ambito selezionato (organizzazione o progetto).

Elenca i ruoli ed esamina le relative autorizzazioni utilizzando la console GDC o la CLI gdcloud:

Console

  1. Accedi alla console GDC.
  2. Nel selettore di progetti, seleziona l'organizzazione o il progetto in cui vuoi visualizzare i ruoli.
  3. Nel menu di navigazione, fai clic su Identità e accesso > Ruoli.

    Viene visualizzato un elenco dei ruoli predefiniti e personalizzati disponibili.

  4. Fai clic sul nome di un ruolo per visualizzarne i dettagli, incluse le autorizzazioni assegnate.

    Le autorizzazioni elencate per i ruoli predefiniti nell'ambito corrente (organizzazione o progetto) sono quelle disponibili per essere incluse in un nuovo ruolo personalizzato.

gdcloud

  1. Assicurati di aver installato la CLI gdcloud. Per saperne di più, consulta la pagina Panoramica di gdcloud CLI.
  2. Elenca i ruoli disponibili:

    gdcloud iam roles list \
      --type=ROLE_TYPE \
      --project=PROJECT
    

    Sostituisci quanto segue:

    • ROLE_TYPE: il tipo di ruoli da elencare. I valori validi sono predefined, custom o all.
    • PROJECT: lo spazio dei nomi del progetto in cui vuoi visualizzare i ruoli. Ometti il flag --project per i ruoli con ambito a livello di organizzazione.
  3. Visualizza le autorizzazioni specifiche all'interno di un ruolo:

    gdcloud iam roles describe ROLE_NAME \
      --project=PROJECT
    

    Sostituisci quanto segue:

    • ROLE_NAME: il nome della risorsa Kubernetes del ruolo
    • PROJECT: lo spazio dei nomi del progetto in cui vuoi visualizzare le autorizzazioni del ruolo. Ometti il flag --project per i ruoli con ambito a livello di organizzazione.

Per ulteriori dettagli sui comandi ed esempi di utilizzo, consulta gdcloud iam roles list e gdcloud iam roles describe.

Creare un ruolo personalizzato

Crea un nuovo ruolo personalizzato raggruppando le autorizzazioni dei ruoli predefiniti. I ruoli personalizzati ereditano le funzionalità multizona di IAM dei ruoli predefiniti su cui si basano. Dopo aver creato un ruolo personalizzato, puoi concedere l'accesso agli utenti.

Crea un ruolo personalizzato utilizzando la console GDC, la CLI gdcloud o l'API:

Console

  1. Accedi alla console GDC.
  2. Nel selettore di progetti, seleziona l'organizzazione o il progetto in cui vuoi creare un ruolo personalizzato.
  3. Nel menu di navigazione, fai clic su Identità e accesso > Ruoli.
  4. Fai clic su Crea ruolo personalizzato.
  5. Nel campo Titolo, inserisci il titolo del ruolo personalizzato.
  6. Nel campo Descrizione, fornisci una descrizione dello scopo del ruolo personalizzato.
  7. Nel campo ID, inserisci l'identificatore univoco del ruolo personalizzato.

    Gli ID dei ruoli personalizzati possono contenere fino a 10 caratteri alfanumerici minuscoli e non possono essere modificati dopo la creazione del ruolo.

  8. Seleziona una Fase di lancio.

  9. Seleziona l'ambito del ruolo personalizzato.

    Se selezioni Organizzazione, il ruolo personalizzato si applica a tutte le risorse dell'organizzazione. Se selezioni Progetti, il ruolo personalizzato viene applicato a tutti i progetti attuali e futuri dell'organizzazione. Puoi selezionare Limita ai progetti selezionati se vuoi specificare quali progetti possono accedere al ruolo personalizzato.

  10. Fai clic su Aggiungi autorizzazioni.

  11. Seleziona la casella di controllo accanto a una o più autorizzazioni supportate che vuoi assegnare al tuo ruolo personalizzato.

    Le autorizzazioni disponibili sono limitate all'ambito selezionato. Se modifichi l'ambito dopo aver aggiunto le autorizzazioni, devi confermare che tutte le autorizzazioni assegnate in precedenza vengano reimpostate.

  12. Fai clic su Salva.

  13. Fai clic su Crea.

    Il nuovo ruolo personalizzato viene visualizzato nella pagina Ruoli.

gdcloud

  1. Assicurati di aver installato la CLI gdcloud. Per saperne di più, consulta la pagina Panoramica di gdcloud CLI.
  2. Crea un ruolo personalizzato:

    gdcloud iam roles create ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Sostituisci quanto segue:

    • ROLE_ID: l'identificatore univoco del tuo ruolo personalizzato. Gli ID ruolo personalizzati possono contenere fino a 10 caratteri alfanumerici minuscoli e possono includere trattini. Gli ID dei ruoli personalizzati non possono essere modificati dopo la creazione del ruolo.
    • TITLE: un titolo facile da usare per il ruolo personalizzato
    • DESCRIPTION: una descrizione dello scopo del ruolo personalizzato
    • PERMISSIONS: un elenco separato da virgole delle autorizzazioni che vuoi concedere per il ruolo personalizzato

      Per informazioni dettagliate su come trovare le stringhe di autorizzazione corrette, consulta Visualizza i ruoli e le relative autorizzazioni. Ogni stringa di autorizzazione deve essere formattata in base alle indicazioni riportate in gdcloud iam roles create, dove iamRoleName è il nome della risorsa Kubernetes del ruolo predefinito contenente l'autorizzazione. Puoi trovare il nome della risorsa Kubernetes di un ruolo nella pagina Definizioni dei ruoli o utilizzando il comando gdcloud iam roles list.

    • LAUNCH_STAGE: (Facoltativo) La fase di rilascio del ruolo personalizzato. I valori validi sono ALPHA, BETA, GA o DISABLED. Se questo flag viene omesso, il valore predefinito è ALPHA.

    Consulta gdcloud iam roles create per un elenco completo dei flag obbligatori e facoltativi, nonché per esempi di utilizzo.

    In alternativa, puoi definire il ruolo personalizzato in un file YAML e utilizzare il flag --file:

    gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATH
    

    Sostituisci YAML_FILE_PATH con il percorso del file YAML contenente i flag obbligatori e facoltativi. Se utilizzi il flag --file, tutti gli altri flag come --title, --description e --permissions vengono ignorati.

API

Crea e applica la risorsa personalizzata CustomRole utilizzando kubectl:

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: LAUNCH_STAGE
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Sostituisci quanto segue:

  • ROLE_NAME: il nome della risorsa Kubernetes del ruolo
  • NAMESPACE: lo spazio dei nomi per il ruolo personalizzato. Utilizza platform per i ruoli con ambito a livello di organizzazione e per più progetti. Utilizza lo spazio dei nomi del progetto (ad esempio my-project) per i ruoli con ambito a livello di progetto e per i singoli progetti.
  • DESCRIPTION: una descrizione dello scopo del ruolo personalizzato
  • ROLE_ID: l'identificatore univoco del tuo ruolo personalizzato. Gli ID ruolo personalizzati possono contenere fino a 10 caratteri alfanumerici minuscoli e possono includere trattini. Gli ID dei ruoli personalizzati non possono essere modificati dopo la creazione del ruolo.
  • SCOPE: utilizza organization per i ruoli creati nello spazio dei nomi platform. Utilizza project per i ruoli creati in uno spazio dei nomi del progetto.
  • LAUNCH_STAGE: (Facoltativo) La fase di rilascio del ruolo personalizzato. I valori validi sono ALPHA, BETA, GA o DISABLED. Se questo campo viene omesso, il valore predefinito è ALPHA.
  • TITLE: un titolo facile da usare per il ruolo personalizzato
  • RULES_TYPE: l'ambito delle regole. Sostituisci con globalRules (per le autorizzazioni nell'API globale), zonalRules (per le autorizzazioni nell'API di zona) o entrambi.
  • RULES_LIST: un elenco rientrato di oggetti regola RBAC Kubernetes standard. Ogni oggetto nell'elenco concede autorizzazioni. Puoi determinare i valori corretti di apiGroups, resources e verbs esaminando le autorizzazioni all'interno dei ruoli predefiniti utilizzando gdcloud iam roles describe, come mostrato in Visualizza i ruoli e le relative autorizzazioni.

    L'esempio seguente mostra la struttura di un singolo elemento all'interno di un oggetto globalRules:

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Puoi includere più elementi nell'elenco, ognuno dei quali definisce un insieme diverso di autorizzazioni.

Gestisci un ruolo personalizzato

Sei responsabile della gestione del ciclo di vita dei tuoi ruoli personalizzati. Quando Distributed Cloud aggiunge nuove autorizzazioni, funzionalità o servizi, aggiorna i ruoli predefiniti. Gli aggiornamenti come l'eliminazione di un ruolo predefinito o la rimozione delle autorizzazioni da un ruolo predefinito possono rendere non funzionanti i ruoli personalizzati che si basano su queste autorizzazioni. Devi monitorare questi aggiornamenti e modificare manualmente i ruoli personalizzati interessati per assicurarti che continuino a funzionare come previsto.

Puoi modificare, disattivare o eliminare un ruolo personalizzato, ma non puoi modificare, disattivare o eliminare un ruolo predefinito. Per visualizzare un elenco di tutti i ruoli e delle relative autorizzazioni specifiche, consulta Visualizza i ruoli e le relative autorizzazioni.

Modifica di un ruolo personalizzato

Modifica un ruolo personalizzato utilizzando la console GDC, la CLI gdcloud o l'API:

Console

  1. Accedi alla console GDC.
  2. Nel selettore di progetti, seleziona l'organizzazione o il progetto in cui vuoi modificare un ruolo personalizzato.
  3. Nel menu di navigazione, fai clic su Identità e accesso > Ruoli.
  4. Dall'elenco dei ruoli, seleziona il ruolo personalizzato che vuoi modificare.
  5. Nella pagina dei dettagli del ruolo personalizzato, fai clic su Modifica.
  6. Modifica i dettagli del ruolo personalizzato, ad esempio titolo, descrizione, ID o fase di lancio.
  7. Facoltativamente, aggiungi o rimuovi le autorizzazioni assegnate.
    1. Fai clic su Aggiungi autorizzazioni per selezionare dall'elenco delle autorizzazioni disponibili.
    2. Per rimuovere un'autorizzazione assegnata, seleziona la casella di controllo accanto all'autorizzazione che vuoi rimuovere e fai clic su Rimuovi.
  8. Fai clic su Salva.

    Viene visualizzato un messaggio che conferma il salvataggio delle modifiche.

gdcloud

  1. Assicurati di aver installato la CLI gdcloud. Per saperne di più, consulta la pagina Panoramica di gdcloud CLI.
  2. Modifica un ruolo personalizzato:

    gdcloud iam roles update ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Sostituisci quanto segue:

    • ROLE_ID: l'identificatore univoco del tuo ruolo personalizzato
    • TITLE: un titolo facile da usare per il ruolo personalizzato
    • DESCRIPTION: una descrizione dello scopo del ruolo personalizzato
    • PERMISSIONS: un elenco separato da virgole delle autorizzazioni che vuoi concedere per il ruolo personalizzato

      Per informazioni dettagliate su come trovare le stringhe di autorizzazione corrette, consulta Visualizza i ruoli e le relative autorizzazioni. Ogni stringa di autorizzazione deve essere formattata in base alle indicazioni riportate in gdcloud iam roles create, dove iamRoleName è il nome della risorsa Kubernetes del ruolo predefinito contenente l'autorizzazione. Puoi trovare il nome della risorsa Kubernetes di un ruolo nella pagina Definizioni dei ruoli o utilizzando il comando gdcloud iam roles list.

    • LAUNCH_STAGE: (Facoltativo) La fase di rilascio del ruolo personalizzato. I valori validi sono ALPHA, BETA, GA o DISABLED. Se questo flag viene omesso, il valore predefinito è ALPHA.

    Consulta gdcloud iam roles update per un elenco completo dei flag obbligatori e facoltativi, nonché per esempi di utilizzo.

    In alternativa, puoi aggiornare il ruolo personalizzato nel relativo file YAML e utilizzare il flag --file:

    gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATH
    

    Sostituisci YAML_FILE_PATH con il percorso del file YAML contenente i flag obbligatori e facoltativi aggiornati. Se utilizzi il flag --file, tutti gli altri flag come --title, --description e --permissions vengono ignorati.

API

Modifica una risorsa personalizzata CustomRole utilizzando kubectl:

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: LAUNCH_STAGE
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Sostituisci quanto segue:

  • ROLE_NAME: il nome della risorsa Kubernetes del ruolo
  • NAMESPACE: lo spazio dei nomi per il ruolo personalizzato. Utilizza platform per i ruoli con ambito a livello di organizzazione e per più progetti. Utilizza lo spazio dei nomi del progetto (ad esempio my-project) per i ruoli con ambito a livello di progetto e per i singoli progetti.
  • DESCRIPTION: una descrizione dello scopo del ruolo personalizzato
  • ROLE_ID: l'identificatore univoco del tuo ruolo personalizzato. Gli ID ruolo personalizzati possono contenere fino a 10 caratteri alfanumerici minuscoli e possono includere trattini. Gli ID dei ruoli personalizzati non possono essere modificati dopo la creazione del ruolo.
  • SCOPE: utilizza organization per i ruoli creati nello spazio dei nomi platform. Utilizza project per i ruoli creati in uno spazio dei nomi del progetto.
  • LAUNCH_STAGE: (Facoltativo) La fase di rilascio del ruolo personalizzato. I valori validi sono ALPHA, BETA, GA o DISABLED. Se questo campo viene omesso, il valore predefinito è ALPHA.
  • TITLE: un titolo facile da usare per il ruolo personalizzato
  • RULES_TYPE: l'ambito delle regole. Sostituisci con globalRules (per le autorizzazioni nell'API globale), zonalRules (per le autorizzazioni nell'API di zona) o entrambi.
  • RULES_LIST: un elenco rientrato di oggetti regola RBAC Kubernetes standard. Ogni oggetto nell'elenco concede autorizzazioni. Puoi determinare i valori corretti di apiGroups, resources e verbs esaminando le autorizzazioni all'interno dei ruoli predefiniti utilizzando gdcloud iam roles describe, come mostrato in Visualizza i ruoli e le relative autorizzazioni.

    L'esempio seguente mostra la struttura di un singolo elemento all'interno di un oggetto globalRules:

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Puoi includere più elementi nell'elenco, ognuno dei quali definisce un insieme diverso di autorizzazioni.

Disabilita un ruolo personalizzato

I ruoli personalizzati disattivati rimangono nell'elenco dei ruoli e possono comunque essere assegnati agli utenti, ma non hanno alcun effetto. Puoi riattivare il ruolo personalizzato in qualsiasi momento.

Disabilita un ruolo personalizzato utilizzando la console GDC, la CLI gdcloud o l'API:

Console

  1. Accedi alla console GDC.
  2. Nel selettore di progetti, seleziona l'organizzazione o il progetto in cui vuoi disabilitare un ruolo personalizzato.
  3. Nel menu di navigazione, fai clic su Identità e accesso > Ruoli.
  4. Nell'elenco dei ruoli, seleziona il ruolo personalizzato che vuoi disabilitare.
  5. Nella pagina dei dettagli del ruolo personalizzato, fai clic su Disattiva.

gdcloud

  1. Assicurati di aver installato la CLI gdcloud. Per saperne di più, consulta la pagina Panoramica di gdcloud CLI.
  2. Disabilita un ruolo personalizzato:

    gdcloud iam roles update ROLE_ID --stage=DISABLED
    

    Sostituisci quanto segue:

    • ROLE_ID: l'identificatore univoco del tuo ruolo personalizzato

    Per saperne di più, consulta gdcloud iam roles update.

API

Disattiva una risorsa personalizzata CustomRole modificando il campo stage in DISABLED. Assicurati che tutti gli altri campi corrispondano ai valori correnti del ruolo personalizzato che vuoi disattivare.

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: DISABLED
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Sostituisci quanto segue:

  • ROLE_NAME: il nome della risorsa Kubernetes del ruolo
  • NAMESPACE: lo spazio dei nomi per il ruolo personalizzato. Utilizza platform per i ruoli con ambito a livello di organizzazione e per più progetti. Utilizza lo spazio dei nomi del progetto (ad esempio my-project) per i ruoli con ambito a livello di progetto e per i singoli progetti.
  • DESCRIPTION: una descrizione dello scopo del ruolo personalizzato
  • ROLE_ID: l'identificatore univoco del tuo ruolo personalizzato. Gli ID ruolo personalizzati possono contenere fino a 10 caratteri alfanumerici minuscoli e possono includere trattini. Gli ID dei ruoli personalizzati non possono essere modificati dopo la creazione del ruolo.
  • SCOPE: utilizza organization per i ruoli creati nello spazio dei nomi platform. Utilizza project per i ruoli creati in uno spazio dei nomi del progetto.
  • TITLE: un titolo facile da usare per il ruolo personalizzato
  • RULES_TYPE: l'ambito delle regole. Sostituisci con globalRules (per le autorizzazioni nell'API globale), zonalRules (per le autorizzazioni nell'API di zona) o entrambi.
  • RULES_LIST: un elenco rientrato di oggetti regola RBAC Kubernetes standard. Ogni oggetto nell'elenco concede autorizzazioni. Puoi determinare i valori corretti di apiGroups, resources e verbs esaminando le autorizzazioni all'interno dei ruoli predefiniti utilizzando gdcloud iam roles describe, come mostrato in Visualizza i ruoli e le relative autorizzazioni.

    L'esempio seguente mostra la struttura di un singolo elemento all'interno di un oggetto globalRules:

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Puoi includere più elementi nell'elenco, ognuno dei quali definisce un insieme diverso di autorizzazioni.

Eliminazione di un ruolo personalizzato

I ruoli eliminati vengono rimossi definitivamente dal sistema, ma puoi creare un nuovo ruolo con lo stesso nome.

Elimina un ruolo personalizzato utilizzando la CLI gdcloud o l'API:

gdcloud

  1. Assicurati di aver installato la CLI gdcloud. Per saperne di più, consulta la pagina Panoramica di gdcloud CLI.
  2. Elimina un ruolo personalizzato:

    gdcloud iam roles delete ROLE_ID --project=PROJECT
    

    Sostituisci quanto segue:

    • ROLE_ID: l'identificatore univoco del tuo ruolo personalizzato
    • PROJECT: lo spazio dei nomi del progetto in cui vuoi eliminare il ruolo personalizzato. Se il flag --project non è specificato, viene eliminato il ruolo con ambito a livello di organizzazione.

    Per ulteriori informazioni ed esempi di utilizzo, consulta gdcloud iam roles delete.

API

Elimina una risorsa personalizzata CustomRole utilizzando kubectl:

kubectl delete -f CUSTOM_ROLE

Sostituisci CUSTOM_ROLE con il percorso del file YAML CustomRole. Si tratta dello stesso file che hai utilizzato per creare o aggiornare il ruolo.