Questa pagina descrive come condividere tipi e fornitori di tipi che appartengono al tuo progetto con altri progetti. Ad esempio, supponiamo di avere un progetto responsabile della gestione dei fornitori di tipi pre-approvati per la tua azienda. Vuoi poter condividere questi provider di tipi da questo progetto con altri progetti e utilizzare il progetto come repository centrale di tipi. Allo stesso modo, puoi utilizzare questo metodo anche per condividere tipi compositi tra progetti.
Per configurare l'accesso, un proprietario del progetto che possiede il tipo
dovrà concedere il ruolo deploymentmanager.typeViewer
(beta) all'account di servizio
del progetto che vuole utilizzare i tipi. Inoltre, deve
concedere il ruolo agli utenti che vogliono visualizzare ed elencare i tipi di un altro progetto.
Prima di iniziare
- Se vuoi utilizzare gli esempi di riga di comando in questa guida, installa lo strumento a riga di comando`gcloud`.
- Se vuoi utilizzare gli esempi di API in questa guida, configura l'accesso API.
- Scopri di più sulle configurazioni di Deployment Manager.
- Scopri di più sui tipi.
- Leggi la documentazione di Identity and Access Management (IAM).
Limitazioni
Di seguito sono riportate le limitazioni per l'utilizzo di questa funzionalità:
- La concessione del ruolo
deploymentmanager.typeViewer
concede le autorizzazioni per tutti i tipi nel progetto specifico. Non è possibile limitare la condivisione a tipi individuali. - Non è possibile concedere questo ruolo a
allAuthenticatedUsers
oallUsers
.
Concessione dell'accesso di un progetto ai tipi di utilizzo
Per concedere l'accesso a tipi appartenenti ad altri progetti, il proprietario del progetto proprietario dei tipi in questione deve concedere il ruolo deploymentmanager.typeViewer
al service account delle API di Google del progetto che vuole utilizzare i tipi.
- Vai alla pagina IAM nella console Google Cloud del progetto che utilizzerà i tipi.
- Se richiesto, seleziona il progetto dall'elenco.
Cerca il service account API di Google, con indirizzo email nel seguente formato:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Prendi nota dell'indirizzo email riportato sopra. Successivamente, un proprietario del progetto in cui si trovano i tipi desiderati può concedere all'account di servizio delle API di Google il ruolo
roles/deploymentmanager.typeViewer
.Console
- Mentre ti trovi ancora nella console Google Cloud , vai alla pagina IAM del progetto che contiene i tipi che vuoi condividere.
- Seleziona il progetto dall'elenco dei progetti.
- Fai clic sul pulsante Aggiungi per aggiungere un nuovo membro.
- Nella casella Membri, inserisci l'indirizzo email del account di servizio.
- Espandi il menu a discesa Ruoli e seleziona Altro > Visualizzatore tipi di Deployment Manager (beta).
- Fai clic su Aggiungi per aggiungere l'account.
gcloud
Con Google Cloud CLI, aggiungi un'associazione al criterio IAM per il progetto:
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/deploymentmanager.typeViewer
dove:
[PROJECT_ID]
è l'ID del progetto contenente le immagini che vuoi condividere.[SERVICE_ACCOUNT_EMAIL]
è l'email del account di servizio nel progetto con cui vuoi condividere i tipi.
Ad esempio:
gcloud projects add-iam-policy-binding database-images \ --member serviceAccount:123456789012@cloudservices.gserviceaccount.com \ --role roles/deploymentmanager.typeViewer
API
Nell'API, invia una richiesta
POST
al seguente URL, dove[PROJECT_ID]
è l'ID del progetto contenente i tipi che vuoi condividere.POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
Il corpo della richiesta deve contenere l'elenco dei binding che vuoi applicare a questo progetto. Il ruolo
roles/deploymentmanager.typeViewer
deve far parte dell'associazione. Ad esempio:{ "policy": { "version": "0", "bindings": [ { "role": "roles/owner", "members": [ "user:example@gmail.com" ] }, { "role": "roles/deploymentmanager.typeViewer", "members": [ "serviceAccount:123456789012@cloudservices.gserviceaccount.com" ] } ] }
}
Utilizzo di tipi di altri progetti nella configurazione
Una volta che hai accesso ai tipi, puoi specificarli nelle configurazioni utilizzando la sintassi. Per i tipi composti:
type: [PROJECT_ID]/composite:[TYPE]
Per i fornitori di tipi:
type: [PROJECT_ID]/[TYPE]:[COLLECTION]
Dove:
[PROJECT_ID]
è l'ID progetto proprietario del tipo.[TYPE]
è il nome del provider di tipi o del tipo composito.[COLLECTION]
è la risorsa specifica che stai creando. Questo è applicabile solo per i tipi di base. Per ulteriori informazioni sulla specifica dei tipi di base, leggi Chiamare un provider di tipi in una configurazione.
Ad esempio, se l'ID progetto è my-type-repository
, potresti
fornire la seguente specifica del tipo:
resources: - name: a-special-vm type: my-type-repository/composite:autoscaled-igm properties: ...
Concedere agli utenti la possibilità di elencare e visualizzare i tipi
La concessione del ruolo deploymentmanager.typeViewer
al account di servizio del progetto
consente al progetto di eseguire il deployment di questi tipi nelle configurazioni, ma non
consente agli utenti di visualizzarli o elencarli. Se vuoi concedere ai singoli utenti
la possibilità di visualizzare i tipi, devi concedere il ruolo deploymentmanager.typeViewer
a ogni utente.
Ad esempio, affinché Jane possa eseguire il comando
gcloud beta deployment-manager types list --project another-project
per un progetto che non le appartiene, il proprietario di another-project
deve concedere a Jane il ruolo deploymentmanager.typeViewer
.
Utilizzando gcloud CLI, puoi concedere il ruolo a Jane nel seguente modo:
gcloud projects add-iam-policy-binding another-project \
--member user:jane@gmail.com --role deploymentmanager.typeViewer
Per istruzioni complete su come aggiungere e rimuovere ruoli dagli utenti, leggi la documentazione relativa a concessione, modifica e revoca dell'accesso ai membri del progetto.
Passaggi successivi
- Scopri di più sugli altri ruoli IAM che puoi concedere.
- Scopri di più sui service account.