As políticas da organização dão-lhe um controlo centralizado e programático sobre os recursos da organização. Enquanto administrador de políticas da organização, pode configurar políticas em toda a organização.
Nesta versão do Google Distributed Cloud (GDC) air-gapped, não existe uma IU nem uma CLI para as políticas da organização. Tem de usar a API ou a CLI kubectl para as gerir.
Vantagens
A configuração de políticas da organização oferece várias vantagens:
- Centralize o controlo para configurar restrições sobre a forma de usar os recursos da organização.
- Defina e estabeleça limites para que as suas equipas de desenvolvimento cumpram os limites de conformidade.
- Ajude os proprietários de projetos e as respetivas equipas a avançarem rapidamente sem violarem a conformidade.
Diferenças em relação à Gestão de identidade e de acesso
A Gestão de identidade e de acesso foca-se em quem e permite que o administrador autorize quem pode realizar ações em recursos específicos com base nas autorizações.
As políticas da organização focam-se no quê e permitem que o administrador defina restrições em recursos específicos para determinar como os configurar.
Lista de tipos de políticas da organização disponíveis
Nesta versão do GDC, pode usar o seguinte tipo de política.
GDCHRestrictedService
O tipo de política GDCHRestrictedService permite-lhe restringir o serviço que pode usar no GDC. Quando aplicada, a política impede a utilização das APIs a que faz referência. Por exemplo, pode usar este tipo de política para restringir a utilização de um determinado serviço a determinados projetos. Também pode usar a política para restringir completamente o acesso a um novo serviço do GDC no qual quer executar testes antes de permitir que as suas equipas o usem.
Crie esta política no mesmo cluster que os recursos de serviço. Pode criar várias instâncias desta política para diferentes serviços ou projetos.
Segue-se um modelo para esta política:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: POLICY_NAME
spec:
match:
MATCH_SCHEMA
parameters:
disabledOperations:
- DISABLED_OPERATION
Substitua o seguinte:
POLICY_NAME: o nome da política da organização.MATCH_SCHEMA: os recursos a corresponder para esta restrição. Consulte a secção Defina o âmbito de uma política da organização num cluster para mais informações.DISABLED_OPERATION: os grupos de operações que esta política bloqueia. Os valores permitidos sãoCREATE,UPDATEeDELETE. O valor predefinido do campodisabledOperationsé*.
A política GDCHRestrictedService só suporta as operações UPDATE, CREATE e DELETE. Para restringir as operações GET, LIST e DELETE,
recomendamos que use a Gestão de identidade e de acesso
para atribuir funções.
A política GDCHRestrictedService só suporta o seguinte subconjunto dos serviços disponíveis no GDC.
| Serviço | Grupo de APIs | kinds |
|---|---|---|
| Marketplace | marketplace.gdc.goog |
MarketplaceService
|
| Vertex AI Workbench | aiplatform.gdc.goog |
Notebook
|
| Serviço de base de dados – Postgres | postgresql.dbadmin.gdc.goog |
|
| Serviço de base de dados – Oracle | oracle.dbadmin.gdc.goog |
|
| Transfer Appliance | system.gpc.gke.io |
TransferApplianceRequest |
| Cópia de segurança | backup.gdc.goog |
BackupRepositoryManager |
| Contentor do Dataproc para o Spark (serviço do Marketplace) | sparkoperator.k8s.io |
SparkApplication |
Não tem de especificar todos os tipos para um determinado serviço. Pode restringir a utilização de um subconjunto das funcionalidades de um serviço especificando apenas os tipos correspondentes.
Por exemplo, para restringir as atualizações aos serviços do Marketplace, crie a seguinte política:
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"
Esta política impede qualquer operação UPDATE em qualquer grupo de APIs marketplace.gdc.goog com o valor MarketplaceService para o respetivo tipo. Na prática, esta política impede que qualquer pessoa modifique qualquer serviço do Marketplace.
Para desativar completamente um serviço, indique CREATE, UPDATE e DELETE no parâmetro disabledOperations e indique todos os tipos documentados aqui.
Conceda funções da Gestão de identidade e de acesso para gerir políticas da organização
Cada política da organização tem uma função da Gestão de identidade e de acesso associada. Conceda a função da Gestão de identidade e de acesso aos utilizadores e grupos que quer que façam a gestão dessa política da organização específica. Para permitir que um utilizador ou um grupo crie, atualize ou elimine políticas do tipo GDCHRestrictedService, atribua ao utilizador ou ao grupo a função da Gestão de identidade e de acesso gdchrestrictedservice-policy-manager.
Defina o âmbito de uma política da organização num cluster
Ao definir uma política da organização, decida se deve afetar todos os espaços de nomes, apenas espaços de nomes específicos ou todos os espaços de nomes, exceto uma determinada lista. Para tal, use uma combinação dos parâmetros .spec.match.excludedNamespaces, .spec.match.namespaceSelector, .spec.match.namespaces e .spec.match.scope da definição da política.
Leia a
página da secção de correspondência de políticas da organização
para saber mais acerca destes parâmetros. Por exemplo, para permitir a criação de bases de dados apenas em espaços de nomes que tenham a etiqueta owner: dba-team, crie a seguinte política:
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"
- "DELETE"
Reverta uma política existente
Para deixar de aplicar uma política existente, elimine-a com a CLI kubectl. Use um ficheiro kubeconfig que lhe dê acesso ao cluster onde a política está definida e à função da Gestão de identidade e de acesso gdchrestrictedservice-policy-manager.
Para eliminar uma política da organização, execute o seguinte comando:
kubectl --kubeconfig CLUSTER_KUBECONFIG delete \
GDCHRestrictedService/POLICY_NAME
Substitua o seguinte:
CLUSTER_KUBECONFIG: o ficheiro kubeconfig do cluster onde reside a política da organização.POLICY_NAME: o nome da política da organização a eliminar.
Teste uma política num modo de auditoria
Pode testar uma política sem a aplicar. Teste uma política para se certificar de que não interrompe os sistemas existentes antes de a implementar ou para ter uma estimativa da prevalência de um comportamento. Para adicionar um teste, adicione uma enforcementAction à definição da política. Existem três valores possíveis para este parâmetro:
deny: a política é aplicada. Esta é a predefinição.dryrun: a ação é permitida, mas pode ver que existe uma violação de política nos registos de auditoria e no estado da política. Examine a violação comkubectl --kubeconfig CLUSTER_KUBECONFIG get POLICY_TYPE/POLICY_NAME.warn: equivalente adryrun, exceto que o teste também mostra um aviso em resposta ao pedido que acionou uma violação de política.
Por exemplo, para testar uma política que desativa o Marketplace, crie a seguinte política:
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"]