Premesse
I ruoli personalizzati di Identity and Access Management ti consentono di concedere autorizzazioni granulari agli account utente e agli account di servizio. A differenza dei ruoli predefiniti, che vengono gestiti da Google e aggiornati di conseguenza, i ruoli personalizzati vengono gestiti dalla tua organizzazione non appena diventano disponibili nuove autorizzazioni.
Cloud Deployment Manager può semplificare la configurazione e la manutenzione dei ruoli personalizzati. Puoi utilizzare Deployment Manager per descrivere i ruoli utilizzando i file di configurazione, che possono poi essere controllati dal tuo sistema di controllo dei file sorgente preferito. Insieme, Deployment Manager e il controllo del codice sorgente possono rendere più semplice effettuare "config-as-code" per:
- Monitorare i ruoli personalizzati man mano che cambiano nel tempo
- Promozione di ruoli personalizzati durante le fasi di lancio man mano che vengono testati e convalidati
- Automazione del deployment dei ruoli in tutta l'organizzazione
Prima di iniziare
-
Abilita le API IAM and Cloud Deployment Manager.
Scenari per la gestione dei ruoli personalizzati utilizzando Deployment Manager
Considera i seguenti scenari che dimostrano i vantaggi dell'utilizzo di Deployment Manager per la gestione dei ruoli personalizzati:
- Controllo dell'accesso alle nuove autorizzazioni:hai un ruolo personalizzato che contiene le autorizzazioni per un servizio Google Cloud. Il servizio aggiunge nuove funzionalità beta ed espone nuove autorizzazioni. Queste autorizzazioni non vengono ereditate automaticamente dal ruolo personalizzato: devono essere aggiunte manualmente. Finché le nuove autorizzazioni non verranno aggiunte al tuo ruolo personalizzato, gli utenti della tua organizzazione non avranno accesso alle funzionalità beta. Puoi utilizzare i file di configurazione e il controllo del codice sorgente di Deployment Manager per controllare le autorizzazioni esistenti, aggiornare i ruoli personalizzati in base alle esigenze e gestire una cronologia delle revisioni.
- Gestione del ciclo di vita dei ruoli: hai un nuovo ruolo personalizzato a cui hai assegnato una fase di lancio di
ALPHA
. Dopo che il ruolo personalizzato è stato testato e convalidato, puoi utilizzare Deployment Manager per aggiornare la configurazione del ruolo personalizzato e passare alla faseBETA
senza utilizzare Google Cloud Console. - Comprendere l'adozione dei ruoli personalizzati: usufruire di più definizioni dei ruoli personalizzati dell'organizzazione per il controllo del codice sorgente, semplifica la condivisione, l'apprendimento dai modelli di utilizzo e l'applicazione forzata dei controlli dell'accesso in più progetti.
Informazioni sui file di configurazione di Deployment Manager
Deployment Manager utilizza tre diversi tipi di file per descrivere un deployment. Ogni tipo è descritto di seguito:
- Le configurazioni sono file YAML che descrivono le risorse e le loro proprietà. Per i ruoli personalizzati di Identity and Access Management (IAM) ogni file YAML specifica tutte le proprietà per uno o più ruoli personalizzati, come nome, descrizione e autorizzazioni.
- Gli schemi specificano tutte le possibili proprietà per una determinata risorsa e i relativi valori predefiniti. Per i ruoli personalizzati IAM, esistono schemi per i ruoli personalizzati a livello di progetto e di organizzazione.
- I modelli, ovvero i file Jinja o Python che migliorano le configurazioni, consentono di suddividere una configurazione in parti riutilizzabili. Per i ruoli personalizzati IAM sono disponibili due modelli: uno per i ruoli personalizzati a livello di progetto e uno per i ruoli personalizzati a livello di organizzazione.
Per ulteriori informazioni su questi tipi, consulta la sezione Concetti di base di Deployment Manager.
Prima di iniziare
Se non hai dimestichezza con Deployment Manager, completa prima la Guida rapida. Poi segui questi passaggi:- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.
-
Abilita le API Deployment Manager and IAM.
- Installa Google Cloud CLI.
-
Per inizializzare l'interfaccia a riga di comando gcloud, esegui il comando seguente:
gcloud init
-
Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.
-
Abilita le API Deployment Manager and IAM.
- Installa Google Cloud CLI.
-
Per inizializzare l'interfaccia a riga di comando gcloud, esegui il comando seguente:
gcloud init
Una volta completati questi passaggi preliminari, puoi iniziare a utilizzare Deployment Manager con IAM per gestire i tuoi ruoli personalizzati.
Concedi le autorizzazioni all'account di servizio delle API di Google
Per gestire i ruoli personalizzati utilizzando Deployment Manager, devi prima concedere le autorizzazioni appropriate all'account di servizio delle API di Google. Questo account viene creato per impostazione predefinita per ogni organizzazione e progetto.
Nella console Google Cloud, vai alla pagina IAM.
Nell'elenco delle entità, individua l'entità con il nome Agente di servizio API Google.
Per modificare i ruoli dell'account di servizio, fai clic sul pulsante Modifica
, quindi aggiungi il ruolo Ruoli > Amministratore ruoli.Fai clic su Salva per applicare il ruolo.
Ora che all'account di servizio delle API di Google è stata concessa l'autorizzazione per mantenere i ruoli personalizzati, puoi eseguire il deployment di un ruolo personalizzato di esempio utilizzando Deployment Manager.
Esegui il deployment di ruoli personalizzati nel progetto
Come descritto nella sezione precedente, Deployment Manager utilizza una combinazione di file di configurazione per descrivere un deployment. Per IAM, considera i seguenti due file di esempio per i ruoli personalizzati di un progetto:
progetto_ruolo_personalizzato.yaml
imports: - path: project_custom_role.jinja resources: - name: custom-role type: project_custom_role.jinja properties: roleId: myCustomRole title: My Title description: My description. includedPermissions: - iam.roles.get - iam.roles.list
Questo file YAML specifica le proprietà di un ruolo personalizzato denominato custom-role
, che concede autorizzazioni a iam.roles.get
e iam.roles.list
.
Tieni presente che fa riferimento a un file .jinja due volte; questi riferimenti utilizzano i valori forniti dal modello Jinja come descritto di seguito.
progetto_ruolo_personalizzato.jinja
# Copyright 2017 Google LLC. All rights reserved. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. resources: - name: custom-role type: gcp-types/iam-v1:projects.roles properties: parent: projects/{{ env["project"] }} roleId: {{ properties["roleId"] }} role: title: {{ properties["title"] }} description: {{ properties["description"] }} stage: {{ properties["stage"] }} includedPermissions: {{ properties["includedPermissions"] }}
Questo file Jinja fornisce un modello per un ruolo personalizzato per ridurre al minimo la duplicazione delle stesse proprietà in più ruoli. I valori predefiniti vengono inseriti da un file .schema se il file YAML corrispondente non specifica valori per ogni proprietà.
Per eseguire il deployment di questo ruolo personalizzato con Deployment Manager:
- Scarica i contenuti di questo repository GitHub sulla tua macchina locale.
- In una finestra del terminale, vai alla directory
examples/v2/iam_custom_role/jinja
nel repository scaricato. Contiene il file project_custom_role.yaml e i file Jinja associati. Esegui questo comando per eseguire il deployment del ruolo personalizzato di esempio, sostituendo il valore segnaposto your-deployment-name con un nome di deployment di tua scelta:
gcloud deployment-manager deployments create \ your-deployment-name --config project_custom_role.yaml
Attendi il completamento dell'operazione. L'impronta digitale e l'indicatore di avanzamento del deployment sono mostrati:
The fingerprint of the deployment is PUo2fmKdoFdJqiLViHjT3Q== Waiting for create [operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc]...done.
Se l'operazione è riuscita, verrà visualizzato il seguente messaggio di stato:
Create operation operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc completed successfully. NAME TYPE STATE ERRORS INTENT custom-role gcp-types/iam-v1:projects.roles COMPLETED []
Visualizzare il ruolo personalizzato di cui è stato eseguito il deployment
Per visualizzare il tuo ruolo personalizzato in Deployment Manager:
In una finestra del terminale, esegui il comando seguente:
gcloud deployment-manager deployments describe your-deployment-name
Verrà visualizzata una descrizione del deployment, con informazioni complete sul suo stato, eventuali errori e altro.
fingerprint: oaJoGesEFYvsAldP2bm5jQ== id: '3222872306422524501' insertTime: '2018-01-29T13:40:10.822-08:00' manifest: manifest-1517262010855 name: your-deployment-name operation: endTime: '2018-01-29T13:40:26.500-08:00' name: operation-1517262010573-563f1172be0c9-ce5f0242-239fe1af operationType: insert progress: 100 startTime: '2018-01-29T13:40:11.535-08:00' status: DONE user: id-7201362145@my-example-project.iam.gserviceaccount.com NAME TYPE STATE INTENT custom-role gcp-types/iam-v1:projects.roles COMPLETED
Puoi anche visualizzare le informazioni dettagliate sulla configurazione del ruolo personalizzato recuperando il manifest del deployment. Nell'output del comando
describe
nel passaggio 2 precedente, prendi nota dell'IDmanifest
. Copia questo ID, incluso il prefissomanifest-
, e utilizzalo per sostituire il valore segnaposto di seguito:gcloud deployment-manager manifests describe your-manifest-id \ --deployment your-deployment-name
Il file manifest contiene informazioni esaustive sul deployment dei ruoli personalizzati, inclusi i contenuti non elaborati dei file di origine project_custom_role.yaml e project_custom_role.jinja. In particolare, nota il blocco
resources
nella parte inferiore del manifest, che riepiloga i dettagli del ruolo personalizzato:... resources: - name: custom-role properties: description: My description. includedPermissions: - iam.roles.get - iam.roles.list roleId: aCustomRole stage: ALPHA title: My Title resources: - name: custom-role type: gcp-types/iam-v1:projects.roles type: project_custom_role.jinja ...
Per visualizzare il tuo ruolo personalizzato in Google Cloud Console:
Nella console Google Cloud, vai alla pagina IAM.
Seleziona un progetto e fai clic su Apri.
Nel menu a sinistra, fai clic su Ruoli.
Fai clic sul nome del ruolo personalizzato appena creato dall'elenco. Dovrebbe essere simile al seguente screenshot: