As políticas da organização oferecem controle centralizado e programático sobre os recursos da sua organização. Como administrador de políticas da organização, você pode configurar políticas em toda a organização.
Nesta versão do Google Distributed Cloud (GDC) air-gapped, não há UI ou CLI para
políticas da organização. Use a API ou a CLI kubectl
para gerenciar esses recursos.
Vantagens
Configurar políticas da organização oferece vários benefícios:
- Centralizar o controle para configurar restrições sobre como usar os recursos da sua organização.
- Definir e estabelecer proteções para que suas equipes de desenvolvimento permaneçam dentro dos limites de conformidade.
- Ajudar os proprietários de projetos e suas equipes a se movimentarem rapidamente sem violar a conformidade.
Diferenças do gerenciamento de identidade e acesso
O foco do Identity and Access Management é quem. Com ele, o administrador autoriza quem pode realizar ações em recursos específicos com base nas permissões.
O foco das políticas da organização é o quê. Elas permitem que o administrador defina limitações em recursos específicos para determinar como configurá-los.
Lista de tipos de políticas da organização disponíveis
Nesta versão do GDC, é possível usar o seguinte tipo de política.
GDCHRestrictedService
O tipo de política GDCHRestrictedService
permite restringir qual serviço pode ser usado no
GDC. Quando aplicada, a política impede o uso das APIs
a que ela se refere. Por exemplo, é possível usar esse tipo de política para restringir o
uso de um determinado serviço a alguns projetos. Você também pode usar a política para
restringir completamente o acesso a um novo serviço do GDC que você
quer testar antes de permitir que suas equipes o usem.
Crie essa política no mesmo cluster dos recursos de serviço. É possível criar várias instâncias dessa política para diferentes serviços ou projetos.
Confira a seguir um modelo para essa política:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: POLICY_NAME
spec:
match:
MATCH_SCHEMA
parameters:
disabledOperations:
- DISABLED_OPERATION
Substitua:
POLICY_NAME
: o nome da política da organização.MATCH_SCHEMA
: os recursos a serem correspondidos para esta restrição. Consulte a seção Definir o escopo de uma política da organização em um cluster para mais informações.DISABLED_OPERATION
: os grupos de operações que essa política bloqueia. Os valores permitidos sãoCREATE
eUPDATE
. O valor padrão do campodisabledOperations
é*
.
A política GDCHRestrictedService
é compatível apenas com as operações UPDATE
e CREATE
. Para restringir as operações GET
, LIST
e DELETE
, recomendamos que você use o IAM para atribuir papéis.
A política GDCHRestrictedService
só é compatível com 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 banco de dados - Postgres | postgresql.dbadmin.gdc.goog |
|
Serviço de banco de dados: Oracle | oracle.dbadmin.gdc.goog |
|
Transfer Appliance | system.gpc.gke.io |
TransferApplianceRequest |
Backup | backup.gdc.goog |
BackupRepositoryManager |
Contêiner do Dataproc para Spark (serviço do Marketplace) | sparkoperator.k8s.io |
SparkApplication |
Não é necessário especificar todos os tipos para um determinado serviço. É possível restringir o uso de um subconjunto de recursos de um serviço especificando apenas os tipos correspondentes.
Por exemplo, para restringir 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"
Essa política impede qualquer operação UPDATE
em qualquer grupo de APIs marketplace.gdc.goog
com o valor MarketplaceService
para o tipo. Na prática, essa 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.
Conceder papéis do IAM para gerenciar políticas da organização
Cada política da organização tem um papel do IAM associado. Conceda o papel do IAM aos usuários e grupos que você quer gerenciar essa política específica da organização. Para
permitir que um usuário ou grupo crie, atualize ou exclua políticas do
tipo GDCHRestrictedService
, atribua a ele o papel do IAM gdchrestrictedservice-policy-manager
.
Definir o escopo de uma política da organização em um cluster
Ao definir uma política da organização, decida se ela vai afetar todos os namespaces, apenas namespaces específicos ou todos os namespaces, exceto uma determinada lista. Para isso, use uma combinação dos parâmetros .spec.match.excludedNamespaces
, .spec.match.namespaceSelector
, .spec.match.namespaces
e .spec.match.scope
da definição de política.
Leia a seção
Correspondência de política da organização
para saber mais sobre esses parâmetros. Por exemplo, para permitir a criação de
bancos de dados apenas em namespaces com o rótulo 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"
Reverter uma política atual
Para interromper a aplicação de uma política, exclua-a usando a CLI kubectl
. Use um
arquivo kubeconfig que dê acesso ao cluster em que a política está
definida e à função do IAM gdchrestrictedservice-policy-manager
.
Para excluir uma política da organização, execute:
kubectl --kubeconfig CLUSTER_KUBECONFIG delete \
GDCHRestrictedService/POLICY_NAME
Substitua:
CLUSTER_KUBECONFIG
: o arquivo kubeconfig do cluster em que a política da organização reside.POLICY_NAME
: o nome da política da organização a ser excluída.
Testar uma política no modo de auditoria
É possível testar uma política sem aplicá-la. Teste uma política para garantir que ela não vai prejudicar os sistemas atuais antes de ser lançada ou para ter uma estimativa de quão difundido é um comportamento. Para adicionar um teste, adicione um enforcementAction
à definição da política. Há três valores possíveis para esse parâmetro:
deny
: a política é aplicada. Esta é a configuração padrão.dryrun
: a ação é permitida, mas é possível ver que há uma violação de política nos registros de auditoria e no status da política. Analise a violação comkubectl --kubeconfig CLUSTER_KUBECONFIG get POLICY_TYPE/POLICY_NAME
.warn
: equivalente adryrun
, mas o teste também mostra um aviso em resposta à solicitação que acionou uma violação da 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"]