As políticas da organização dão-lhe um controlo centralizado e programático sobre os recursos da sua organização. Enquanto administrador da política 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 de organização. Tem de usar a API ou a kubectl
CLI para os gerir.
Vantagens
A configuração de políticas da organização oferece várias vantagens:
- Centralize o controlo para configurar restrições sobre como usar os recursos da sua organização.
- Defina e estabeleça limites para as suas equipas de desenvolvimento permanecerem dentro dos limites de conformidade.
- Ajudar 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 centra-se em quem e permite que o administrador autorize quem pode tomar medidas em recursos específicos com base em 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 de organização disponíveis
Neste lançamento 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 a esta restrição. Consulte a secção Defina o âmbito de uma política de 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
eUPDATE
. O valor predefinido do campodisabledOperations
é*
.
A política GDCHRestrictedService
só suporta as operações UPDATE
e CREATE
. Para restringir as operações GET
, LIST
e DELETE
, recomendamos que use o IAM 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 Spark (serviço do Marketplace) | sparkoperator.k8s.io |
SparkApplication |
Não tem de especificar todos os tipos de 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 de mercado, 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, liste CREATE
e UPDATE
no parâmetro disabledOperations
e liste todos os tipos documentados aqui.
Conceda funções de IAM para gerir políticas da organização
Cada política de organização tem uma função IAM associada. Conceda a função do IAM aos utilizadores e grupos que quer que geram essa política de 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 do IAM gdchrestrictedservice-policy-manager
.
Defina o âmbito de uma política de organização num cluster
Ao definir uma política organizacional, 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
o conseguir, 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 da política 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"
Reverta uma política existente
Para parar de aplicar uma política existente, elimine-a através da CLI kubectl
. Use um ficheiro kubeconfig que lhe dê acesso ao cluster onde a política está definida e à função IAM 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 obter uma
estimativa da abrangência de um comportamento. Para adicionar um teste, adicione um
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 mercado, 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"]