I criteri dell'organizzazione ti offrono un controllo centralizzato e programmatico sulle risorse della tua organizzazione. In qualità di amministratore dei criteri dell'organizzazione, puoi configurare i criteri per l'intera organizzazione.
In questa versione di Google Distributed Cloud (GDC) air-gap, non esiste un'interfaccia utente o una CLI per
i criteri dell'organizzazione. Devi utilizzare l'API o l'interfaccia a riga di comando kubectl
per gestirli.
Vantaggi
La configurazione dei criteri dell'organizzazione offre diversi vantaggi:
- Centralizza il controllo per configurare le limitazioni sull'utilizzo delle risorse della tua organizzazione.
- Definisci e stabilisci sistemi di protezione per i tuoi team di sviluppo per rimanere entro i limiti di conformità.
- Aiuta i proprietari dei progetti e i loro team a muoversi rapidamente senza violare la conformità.
Differenze rispetto a Identity and Access Management
Identity and Access Management si concentra su chi e consente all'amministratore di autorizzare chi può intervenire su risorse specifiche in base alle autorizzazioni.
Le policy dell'organizzazione si concentrano sul cosa e consentono all'amministratore di impostare limitazioni su risorse specifiche per determinare come configurarle.
Elenco dei tipi di policy dell'organizzazione disponibili
In questa release di GDC, puoi utilizzare il seguente tipo di norma.
GDCHRestrictedService
Il tipo di policy GDCHRestrictedService
ti consente di limitare il servizio che puoi utilizzare su
GDC. Una volta applicato, il criterio impedisce l'utilizzo delle API a cui fa riferimento. Ad esempio, puoi utilizzare questo tipo di norma per limitare l'utilizzo di un determinato servizio a determinati progetti. Puoi anche utilizzare il criterio per
limitare completamente l'accesso a un nuovo servizio GDC su cui
vuoi eseguire test prima di consentire ai tuoi team di utilizzarlo.
Crea questa policy nello stesso cluster delle risorse del servizio. Puoi creare più istanze di questa norma per servizi o progetti diversi.
Di seguito è riportato un modello per queste norme:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: POLICY_NAME
spec:
match:
MATCH_SCHEMA
parameters:
disabledOperations:
- DISABLED_OPERATION
Sostituisci quanto segue:
POLICY_NAME
: il nome della norma dell'organizzazione.MATCH_SCHEMA
: le risorse da abbinare per questo vincolo. Per saperne di più, consulta la sezione Definisci l'ambito di una policy dell'organizzazione all'interno di un cluster.DISABLED_OPERATION
: i gruppi di operazioni che questa policy blocca. I valori consentiti sonoCREATE
eUPDATE
. Il valore predefinito per il campodisabledOperations
è*
.
Il criterio GDCHRestrictedService
supporta solo le operazioni UPDATE
e CREATE
. Per
limitare le operazioni GET
, LIST
e DELETE
, ti consigliamo di
utilizzare IAM per assegnare i ruoli.
Il criterio GDCHRestrictedService
supporta solo il seguente sottoinsieme dei servizi disponibili su GDC.
Servizio | Gruppo API | kinds |
---|---|---|
Marketplace | marketplace.gdc.goog |
MarketplaceService
|
Vertex AI Workbench | aiplatform.gdc.goog |
Notebook
|
Servizio di database - Postgres | postgresql.dbadmin.gdc.goog |
|
Servizio di database - Oracle | oracle.dbadmin.gdc.goog |
|
Transfer Appliance | system.gpc.gke.io |
TransferApplianceRequest |
Backup | backup.gdc.goog |
BackupRepositoryManager |
Dataproc Container for Spark (servizio Marketplace) | sparkoperator.k8s.io |
SparkApplication |
Non devi specificare tutti i tipi per un determinato servizio. Puoi limitare l'utilizzo di un sottoinsieme delle funzionalità di un servizio specificando solo i tipi corrispondenti.
Ad esempio, per limitare gli aggiornamenti ai servizi di marketplace, crea la seguente norma:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: no-update-to-marketplace-service
spec:
match:
kinds:
- apiGroups:
- "marketplace.gdc.goog"
kinds:
- MarketplaceService
parameters:
disabledOperations:
- "UPDATE"
Questo criterio impedisce qualsiasi operazione UPDATE
su qualsiasi gruppo di API marketplace.gdc.goog
con il valore MarketplaceService
per il tipo. In effetti, questo criterio impedisce a chiunque di modificare qualsiasi servizio Marketplace.
Per disattivare completamente un servizio, elenca sia CREATE
che UPDATE
nel
parametro disabledOperations
ed elenca tutti i tipi documentati qui.
Concedi ruoli IAM per gestire i criteri dell'organizzazione
A ogni criterio dell'organizzazione è associato un ruolo IAM. Concedi il ruolo IAM agli
utenti e ai gruppi che vuoi gestire con questo criterio dell'organizzazione specifico. Per
consentire a un utente o a un gruppo di creare, aggiornare o eliminare policy di
tipo GDCHRestrictedService
, assegna all'utente o al gruppo il ruolo IAM gdchrestrictedservice-policy-manager
.
Definisci l'ambito di un criterio dell'organizzazione all'interno di un cluster
Quando definisci un criterio dell'organizzazione, decidi se deve influire su tutti gli spazi dei nomi, solo su spazi dei nomi specifici o su tutti gli spazi dei nomi tranne un elenco specifico. Per
ottenere questo risultato, utilizza una combinazione dei parametri .spec.match.excludedNamespaces
,
.spec.match.namespaceSelector
, .spec.match.namespaces
e
.spec.match.scope
della definizione della policy.
Leggi la pagina
Sezione Corrispondenza con i criteri dell'organizzazione
per scoprire di più su questi parametri. Ad esempio, per consentire la creazione di
database solo negli spazi dei nomi con l'etichetta owner: dba-team
, crea i
seguenti criteri:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: db-restricted-to-dbas
spec:
match:
scope: Namespaced
namespaceSelector:
matchExpressions:
# We are restricting the use of the service in namespaces that
# don't have the owner: dba-team label
- key: owner
operator: NotIn
values:
- dba-team
kinds:
- apiGroups:
- "postgresql.dbadmin.gdc.goog"
kinds:
- DBCluster
- BackupPlan
- Import
- Restore
- apiGroups:
- "oracle.dbadmin.gdc.goog"
kinds:
- DBCluster
- BackupPlan
- Import
parameters:
disabledOperations:
- "UPDATE"
- "CREATE"
Eseguire il rollback di una policy esistente
Per interrompere l'applicazione di un criterio esistente, eliminalo utilizzando la CLI kubectl
. Utilizza un file kubeconfig che ti dia accesso al cluster in cui è definito il criterio e al ruolo IAM gdchrestrictedservice-policy-manager
.
Per eliminare un criterio dell'organizzazione, esegui:
kubectl --kubeconfig CLUSTER_KUBECONFIG delete \
GDCHRestrictedService/POLICY_NAME
Sostituisci quanto segue:
CLUSTER_KUBECONFIG
: il file kubeconfig del cluster in cui risiede la policy dell'organizzazione.POLICY_NAME
: il nome della policy dell'organizzazione da eliminare.
Testare una policy in modalità di audit
Puoi testare una policy senza applicarla. Testa una policy per assicurarti che non interrompa i sistemi esistenti prima di implementarla o per ottenere una stima della diffusione di un comportamento. Per aggiungere un test, aggiungi un enforcementAction
alla definizione della policy. Per questo parametro sono possibili tre valori:
deny
: la norma viene applicata. Questa è l'impostazione predefinita.dryrun
: l'azione è consentita, ma puoi notare che si è verificata una violazione delle norme sia negli audit log sia nello stato delle norme. Esamina la violazione conkubectl --kubeconfig CLUSTER_KUBECONFIG get POLICY_TYPE/POLICY_NAME
.warn
: equivalente adryrun
, tranne per il fatto che il test mostra anche un avviso in risposta alla richiesta che ha attivato una violazione delle norme.
Ad esempio, per testare una norma che disattiva Marketplace, crea la seguente norma:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: disable-marketplace-service-project-alice
Spec:
enforcementAction: warn
match:
kinds:
- apiGroups: ["marketplace.gdc.goog"]
kinds: ["MarketplaceService"]