Gestire le risorse delle funzioni utilizzando vincoli personalizzati
In qualità di amministratore dell'organizzazione, puoi creare vincoli personalizzati per le funzioni Cloud Run. I criteri dell'organizzazione applicano questi vincoli personalizzati a livello di progetto, cartella o organizzazione.
I criteri dell'organizzazione forniscono vincoli predefiniti per vari servizi Google Cloud. Tuttavia, se vuoi più granulare, personalizzabile controllo sui campi specifici con restrizioni nella tua organizzazione criteri, puoi anche creare criteri dell'organizzazione personalizzati.
Questa pagina spiega come creare vincoli personalizzati per le funzioni create utilizzando API Cloud Functions v2 e applica a livello di progetto. Per informazioni sui criteri dell'organizzazione personalizzati, consulta Creare e gestire criteri dell'organizzazione personalizzati.
Vantaggi
- Gestione dei costi: utilizza i criteri dell'organizzazione per limitare le dimensioni e i tipi di istanze VM e di dischi che possono essere utilizzati nella tua organizzazione. Puoi anche limitare la famiglia di macchine utilizzata per l'istanza VM.
- Sicurezza, conformità e governance:
- Per applicare i requisiti di sicurezza, puoi richiedere regole specifiche per le porte del firewall sulle VM.
- Per supportare l'isolamento hardware o la conformità delle licenze, puoi richiedere che tutte le VM all'interno di un progetto o di una cartella specifica vengano eseguite su nodi single-tenant.
- Per gestire gli script di automazione, puoi utilizzare un'organizzazione personalizzata per verificare che le etichette corrispondano alle espressioni necessarie.
Eredità dei criteri
Quando un criterio dell'organizzazione viene applicato a una risorsa, a tutti i discendenti eredita anche il criterio dell'organizzazione. Ad esempio, se applichi un criterio su una cartella, Google Cloud applica i criteri a tutti i progetti . Per scoprire di più su questo comportamento e su come modificarlo, consulta Regole di valutazione della gerarchia.
Prezzi
Il servizio di criteri dell'organizzazione, inclusi i criteri dell'organizzazione predefiniti e personalizzati, viene fornito senza costi.
Limitazioni
Ai criteri personalizzati dell'organizzazione si applicano le seguenti limitazioni:
- Non viene applicato per i nomi delle istanze VM quando utilizzi l'API di inserimento collettivo.
- Applicato solo in
CREATE
per le risorse Compute Engine. - Disponibile solo su Cloud Functions API v2. Non possono essere applicati alle funzioni Cloud Run (1ª generazione.).
- Proteggi le funzioni solo quando utilizzi le API Cloud Functions v2. Le funzioni di Cloud Run possono essere modificate anche dell'API Cloud Run. Per una maggiore protezione, potrebbero servirti per applicare vincoli personalizzati anche su Cloud Run.
Prima di iniziare
- Assicurati di conoscere il ID organizzazione.
Ruoli obbligatori
- Per creare o modificare i criteri dell'organizzazione, il tuo account deve disporre di:
il ruolo
roles/orgpolicy.policyAdmin
.
Creare un vincolo personalizzato
Un vincolo personalizzato viene definito in un file YAML dalle risorse, dai metodi le condizioni e le azioni supportate dal servizio per applicare il criterio dell'organizzazione. Le condizioni per i vincoli personalizzati vengono definite utilizzando Common Expression Language (CEL). Per ulteriori informazioni su come creare condizioni nei vincoli personalizzati utilizzando CEL, consulta la sezione CEL di Creare e gestire vincoli personalizzati.
Per specificare un vincolo personalizzato che impedisca la creazione di tutte le funzioni con un massimo di istanze superiore a 150, procedi nel seguente modo:
Crea un nuovo file
maxInstanceConstraint.yaml
con i seguenti contenuti:name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: - cloudfunctions.googleapis.com/Function methodTypes: - CREATE - UPDATE condition: resource.serviceConfig.maxInstanceCount > 150 actionType: DENY displayName: Deny functions with max instance count greater than 150 description: Functions cannot be created with a max instance count greater than 150
Sostituisci ORGANIZATION_ID
con l'ID della tua organizzazione, ad esempio
123456789
.
Per ulteriori informazioni, vedi Definizione di vincoli personalizzati.
Configurare un vincolo personalizzato
Dopo aver creato il file YAML per un nuovo vincolo personalizzato, devi configurarlo per disponibile per i criteri dell'organizzazione nella tua organizzazione. Per impostare un vincolo personalizzato, utilizza il comandogcloud org-policies set-custom-constraint
:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
con il percorso completo del tuo
personalizzato. Ad esempio: /home/user/customconstraint.yaml
.
Al termine, troverai i vincoli personalizzati come criteri dell'organizzazione disponibili
nel tuo elenco di criteri dell'organizzazione
di Google Cloud.
Per verificare che il vincolo personalizzato esista, utilizza il metodo
Comando gcloud org-policies list-custom-constraints
:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
con l'ID della risorsa della tua organizzazione.
Per ulteriori informazioni, consulta
Visualizzare i criteri dell'organizzazione.
Applicare un criterio dell'organizzazione personalizzato
Puoi applicare un vincolo booleano creando un criterio dell'organizzazione che vi faccia riferimento. e applicando il criterio dell'organizzazione a una risorsa Google Cloud.Console
Per applicare un vincolo booleano:
- Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
- Seleziona il selettore del progetto nella parte superiore della pagina.
- Nel selettore di progetti, seleziona il progetto per cui vuoi impostare il criterio dell'organizzazione.
- Seleziona il vincolo dall'elenco nella pagina Criteri dell'organizzazione. Dovrebbe essere visualizzata la pagina Dettagli norme relativa alla limitazione.
- Per configurare il criterio dell'organizzazione per questa risorsa, fai clic su Gestisci criterio.
- Nella pagina Modifica criterio, seleziona Sostituisci criterio della risorsa padre.
- Fai clic su Aggiungi una regola.
- In Applicazione, seleziona se l'applicazione di questo criterio dell'organizzazione deve essere attivata o disattivata.
- Facoltativamente, per rendere i criteri dell'organizzazione condizionali su un tag, fai clic su Aggiungi condizione. Tieni presente che se aggiungi una regola condizionale a un criterio dell'organizzazione, devi aggiungere almeno una regola non condizionale, altrimenti il criterio non può essere salvato. Per maggiori informazioni i dettagli, vedi Impostazione di un criterio dell'organizzazione con i tag.
- Se si tratta di un vincolo personalizzato, puoi fare clic su Prova modifiche per simulare l'effetto di questo criterio dell'organizzazione. Per ulteriori informazioni, consulta Testare le modifiche ai criteri dell'organizzazione con Policy Simulator.
- Per completare e applicare il criterio dell'organizzazione, fai clic su Imposta criterio. Le norme Possono trascorrere fino a 15 minuti prima che le modifiche diventino effettive.
gcloud
Per creare un criterio dell'organizzazione che applichi un vincolo booleano, crea un file YAML del criterio che faccia riferimento al vincolo:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
Sostituisci quanto segue:
-
PROJECT_ID
: il progetto su cui vuoi applicare il vincolo. -
CONSTRAINT_NAME
: il nome definito per il vincolo personalizzato. Per ad esempiocustom.cloudFunctionsMaxInstanceLimit
.
Per applicare il criterio dell'organizzazione contenente il vincolo, esegui questo comando:
gcloud org-policies set-policy POLICY_PATH
Sostituisci POLICY_PATH
con il percorso completo del criterio dell'organizzazione
YAML. L'applicazione del criterio potrebbe richiedere fino a 15 minuti.
Testa il criterio dell'organizzazione personalizzato
Per creare una funzione con un'istanza massima di 151, esegui il seguente comando:
gcloud functions deploy FUNCTION_NAME \
...
--max-instances 151
Viene visualizzato il seguente output:
Operation denied by custom org policy on resource: ["customConstraints/custom.cloudFunctionsMaxInstanceLimit": "Cloud Functions cannot be created with a max instance count greater than 150."]
Risorse e operazioni supportate dalle funzioni Cloud Run
Tipo di risorsa | Tipi di metodi | Riferimento API |
---|---|---|
cloudfunctions.googleapis.com/Function |
CREATE , UPDATE |
projects.locations.functions |
Esempi comuni di criteri dell'organizzazione
La seguente tabella fornisce la sintassi di alcuni criteri dell'organizzazione personalizzati che potresti trovare utili:
Descrizione | Sintassi del vincolo |
---|---|
Impedire la creazione di funzioni con una lingua specifica |
name: organizations/ORGANIZATION_IDcustomConstraints/custom.cloudFunctionRuntimeBlock resource_types: cloudfunctions.googleapis.com/Function method_types: - CREATE - UPDATE condition: resource.buildConfig.runtime == "python312" action_type: DENY display_name: Deny functions using Python 3.12 description: Functions cannot be created with Python 3.12 as the language runtime |
Richiedere alle funzioni di utilizzare un pool di worker specifico |
name: organizations/ORGANIZATION_ID/customConstraints/custom.cloudFunctionsWorkerPool resource_types: cloudfunctions.googleapis.com/Function method_types: - CREATE - UPDATE condition: resource.buildConfig.workerPool == "WORKER_POOL" action_type: DENY display_name: Require worker pool description: Functions must use a worker pool |
Richiedono che le funzioni archivino tutte le immagini container in un repository di immagini specifico |
name: organizations/ORGANIZATION_ID/customConstraints/custom.cloudFunctionsRepository resource_types: cloudfunctions.googleapis.com/Function method_types: - CREATE - UPDATE condition: resource.buildConfig.dockerRepository.startsWith("REPO_PATH") action_type: DENY display_name: Image repository constraint description: Functions must push images to a central image repository under REPO_PATH |
Passaggi successivi
- Per saperne di più sui criteri dell'organizzazione, consulta Introduzione al servizio Criteri dell'organizzazione.
- Scopri di più su come creare e gestire i criteri dell'organizzazione.
- Consulta l'elenco completo dei vincoli dei criteri dell'organizzazione predefiniti.