Nesta página, descrevemos como criar, configurar e gerenciar restrições personalizadas em instâncias do Cloud SQL. Para uma visão geral das políticas personalizadas da organização, consulte Políticas personalizadas da organização.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Adicione o papel Administrador da política da organização
(
roles/orgpolicy.policyAdmin
) à sua conta de usuário ou de serviço da página IAM e administrador. - Consulte Restrições antes de realizar este procedimento.
Campos compatíveis com restrições personalizadas
É possível definir restrições personalizadas nos seguintes campos:
Campo | Exemplo de caso de uso: |
SqlDatabaseVersion | Exigir o uso de versões específicas do banco de dados |
region | Restringir a criação de instâncias a regiões específicas |
availabilityType | Aplicar alta disponibilidade |
ipConfiguration > pscConfig > allowedConsumerProjects | Restringir a lista de permissões de projetos do consumidor no PSC para projetos específicos |
ipConfiguration > sslMode | Aplique o modo SSL para ser ENCRYPTED_ONLY ou TRUSTED_CLIENT_CERTIFICATE_REQUIRED . Não é possível escolher o modo SSL ao criar uma instância do Cloud SQL no console do Google Cloud. Portanto, se você criar essa política da organização personalizada, precisará criar uma instância do Cloud SQL usando a gcloud CLI, a API ou o Terraform.
|
dataDiskType | Exigir o uso de SSD ou HDD |
backupConfiguration > location | Restringir locais de backup automatizado a locais específicos |
backupConfiguration > pointInTimeRecoveryEnabled | Aplicar todas as instâncias para ativar a PITR |
backupConfiguration > transactionLogRetentionDays | Fazer com que todas as instâncias usem um período de armazenamento específico para a retenção de registros de transações |
backupConfiguration > backupRetentionSettings > retentionUnit | Aplicar os dias de retenção em todos os backups |
passwordValidationPolicy > minLength | Aplicar a política de senha para um tamanho mínimo |
passwordValidationPolicy > complexity | Aplicar a política de senha para complexidade |
passwordValidationPolicy > reuseInterval | Aplicar a política de senha a um intervalo de reutilização específico |
passwordValidationPolicy > disallowUsernameSubstring | Aplicar a política de senha para não permitir o nome de usuário como senha |
Edição | Aplicar todas as instâncias para usar a edição Enterprise Plus |
connectorEnforcement | Exigir que todas as conexões usem conectores do Cloud SQL |
dataCacheConfig | Exigir que todas as instâncias usem o cache de dados |
Criar e configurar uma restrição personalizada
Uma restrição personalizada é definida em um arquivo YAML usando os recursos, métodos, condições e ações compatíveis com o serviço em que você está aplicando a política da organização. As condições das restrições personalizadas são definidas usando a Common Expression Language (CEL). Para mais informações sobre como criar condições em restrições personalizadas usando CEL, consulte Common Expression Language.
Console
No console do Google Cloud, acesse a página Políticas da organização.
Selecione o seletor de projetos na parte superior da página.
No Seletor de projetos, selecione o recurso em que você quer definir a política da organização.
Clique em
Restrição personalizada.Na caixa Nome de exibição, digite um nome para a restrição. Esse campo tem um comprimento máximo de 200 caracteres.
Na caixa ID da restrição, insira o nome que você quer para a nova restrição personalizada. Uma restrição personalizada precisa começar com
custom.
e só pode incluir letras maiúsculas, minúsculas ou números, por exemplo,custom.requireCloudSqlPasswordMinLength
. O tamanho máximo desse campo é de 70 caracteres, sem contar o prefixo (por exemplo,organizations/123456789/customConstraints/custom.
).Na caixa Descrição, insira uma descrição legível a ser exibida como uma mensagem de erro quando a política for violada. Esse campo tem um comprimento máximo de 2000 caracteres.
Na caixa Tipo de recurso, selecione o nome do recurso REST do Google Cloud que contém o objeto e o campo que você quer restringir. Por exemplo,
sqladmin.googleapis.com/Instance
. Há um máximo de 20 restrições personalizadas por tipo de recurso. Se você tentar criar uma restrição personalizada para um tipo de recurso que já tem 20 restrições personalizadas, a operação falhará.Em Método de aplicação, selecione se quer aplicar a restrição. em um método REST
CREATE
ou em ambos os métodosCREATE
eUPDATE
.Edite a condição e faça o seguinte:
No painel Adicionar condição, crie uma condição de CEL que se refira a um recurso de serviço compatível, por exemplo,
resource.settings.passwordValidationPolicy.minLength > 10
. Esse campo tem um comprimento máximo de 1.000 caracteres. Para detalhes sobre o uso da CEL, consulte Common Expression Language. Para mais informações sobre os recursos de serviço que você pode usar nas restrições personalizadas, consulte Serviços compatíveis com restrição personalizada.Clique em Salvar.
Em Ação, selecione se você quer permitir ou negar o método avaliado se a condição anterior for atendida.
Negar bloqueia operações para criar ou atualizar o recurso se a condição for avaliada como verdadeira.
Permitir permite que as operações criem ou atualizem o recurso se a condição for avaliada como verdadeira. Todos os outros casos, exceto os listados explicitamente na condição, estão bloqueados.
Clique em Criar restrição.
Quando você insere um valor em cada campo, a configuração YAML equivalente para essa restrição personalizada é exibida à direita.
gcloud
Para criar um arquivo YAML para uma restrição personalizada, use o seguinte formato:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- container.googleapis.com/RESOURCE_NAME
methodTypes:
- CREATE
- UPDATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Substitua:
ORGANIZATION_ID
: o ID da organização, como123456789
.CONSTRAINT_NAME
: o nome da sua nova restrição personalizada. Uma restrição personalizada precisa começar comcustom.
e só pode incluir letras maiúsculas, minúsculas ou números, por exemplo, custom.enableGkeAutopilot. O tamanho máximo desse campo é de 70 caracteres, sem contar o prefixo (por exemplo,organizations/123456789/customConstraints/custom
).RESOURCE_NAME
: o nome (não o URI) do recurso REST da API GKE que contém o objeto e o campo que você quer restringir. Por exemplo,Cluster
.CONDITION
: uma condição de CEL gravada em uma representação de um recurso de serviço compatível. Esse campo tem um comprimento máximo de 1000 caracteres.ACTION
: a ação a ser realizada se ocondition
for atendido. Pode serALLOW
ouDENY
.Negar bloqueia operações para criar ou atualizar o recurso se a condição for avaliada como verdadeira.
Permitir permite que as operações criem ou atualizem o recurso se a condição for avaliada como verdadeira. Todos os outros casos, exceto os listados explicitamente na condição, estão bloqueados.
DISPLAY_NAME
: um nome para a restrição. Esse campo tem um comprimento máximo de 200 caracteres.DESCRIPTION
: uma descrição da restrição para exibir como uma mensagem de erro quando a política for violada. Esse campo tem um comprimento máximo de 2000 caracteres.
gcloud org-policies set-custom-constraint
:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
pelo caminho completo
do arquivo da restrição personalizada. Por exemplo, /home/user/customconstraint.yaml
.
Após a conclusão, as restrições personalizadas vão estar disponíveis na sua lista de políticas da organização
do Google Cloud.
Para verificar se a restrição personalizada existe, use o
comando gcloud org-policies list-custom-constraints
:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
pelo ID do recurso da organização.
Para mais informações, consulte
Como visualizar as políticas da organização.Aplicar uma política da organização personalizada
Depois que uma restrição personalizada é configurada, ela opera de forma idêntica às restrições booleanas predefinidas. O Google Cloud verifica primeiro as restrições personalizadas ao avaliar se uma solicitação do usuário é permitida. Se alguma das políticas personalizadas da organização negar a solicitação, ela será rejeitada. Em seguida, o Google Cloud verificará se há políticas da organização predefinidas aplicadas a esse recurso.
Para aplicar uma restrição booleana, crie uma política da organização com referência a ela e aplique essa política da organização a um recurso do Google Cloud.Console
Para aplicar uma restrição booleana:
- No console do Google Cloud, acesse a página Políticas da organização.
- Selecione o seletor de projetos na parte superior da página.
- No seletor de projetos, selecione o projeto em que você quer definir a política da organização.
- Selecione a restrição na lista da página Políticas da organização. A página Detalhes da política dessa restrição será exibida.
- Para personalizar a política da organização nesse recurso, clique em Gerenciar política.
- Na página Editar política, selecione Substituir a política do editor principal.
- Clique em Adicionar uma regra.
- Em Aplicação, selecione se a aplicação dessa política da organização precisa ser ativada ou desativada.
- Para tornar a política da organização condicional em uma tag, clique em Adicionar condição. Se você adicionar uma regra condicional a uma política da organização, inclua pelo menos uma regra não condicional. Caso contrário, não será possível salvar a política. Para mais detalhes, consulte Como definir uma política da organização com tags.
- Se essa for uma restrição personalizada, clique em Testar alterações para simular o efeito da política da organização. Para mais informações, consulte Testar alterações na política da organização com o Simulador de política.
- Para concluir e aplicar a política da organização, clique em Definir política. A política levará até 15 minutos para entrar em vigor.
gcloud
Para criar uma política da organização que aplica uma restrição booleana, crie um arquivo YAML da política com referência à restrição:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
Substitua:
-
PROJECT_ID
: o projeto em que você quer aplicar a restrição. -
CONSTRAINT_NAME
: o nome definido para a restrição personalizada. Por exemplo,custom.enableGkeAutopilot
.
Para aplicar a política da organização que contém a restrição, execute o seguinte comando:
gcloud org-policies set-policy POLICY_PATH
Substitua POLICY_PATH
pelo caminho completo do arquivo YAML da política da organização. A política levará até 15 minutos para entrar em vigor.
Atualizar uma restrição personalizada
Você pode atualizar uma restrição personalizada editando a restrição no
console do Google Cloud ou criando um novo arquivo YAML e usando o
comando set-custom-constraint
da gcloud CLI novamente. Não há
controle de versões de restrições personalizadas. Dessa forma, isso substitui a
restrição personalizada existente. Se a restrição personalizada já tiver sido aplicada, a restrição personalizada atualizada
entrará em vigor imediatamente.
Console
No console do Google Cloud, acesse a página Políticas da organização.
Selecione o seletor de projetos na parte superior da página.
No Seletor de projetos, selecione o recurso em que você quer atualizar a política da organização.
Selecione a restrição que deseja editar na lista da página Políticas da organização. A página Detalhes da política dessa restrição será exibida.
Clique em
Editar restrição.Mude o nome de exibição, a descrição, o método de aplicação condição e ação. Não é possível alterar o ID da restrição ou o tipo de recurso depois que a restrição for criada.
Clique em Salvar alterações.
gcloud
Para editar uma restrição personalizada atual usando a gcloud CLI, crie um arquivo YAML que contém as alterações a serem feitas:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- METHOD1
- METHOD2
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Substitua:
ORGANIZATION_ID
: o ID da organização, como123456789
.CONSTRAINT_NAME
: o nome da sua nova restrição personalizada. Uma restrição personalizada precisa começar comcustom.
e só pode incluir letras maiúsculas, minúsculas ou números, por exemplo,custom.disableGkeAutoUpgrade
. O tamanho máximo desse campo é de 70 caracteres, sem contar o prefixo (por exemplo,organizations/123456789/customConstraints/custom.
).RESOURCE_NAME
: o nome totalmente qualificado do recurso REST do Google Cloud que contém o objeto e o campo que você quer restringir. Por exemplo,container.googleapis.com/NodePool
. Para mais informações sobre os recursos de serviço que você pode usar em nas restrições personalizadas, consulte Serviços compatíveis com restrição personalizada.METHOD1,METHOD2
: uma lista de métodos "RESTful" para aplicar a restrição. Pode serCREATE
ouCREATE
eUPDATE
. Nem todos os serviços do Google Cloud aceitam os dois métodos. Para ver os métodos compatíveis para cada serviço, encontre o serviço em Serviços compatíveis.CONDITION
: uma condição CEL que se refere a um recurso de serviço compatível, por exemplo,"resource.management.autoUpgrade == false"
. Esse campo tem um comprimento máximo de 1.000 caracteres. Para detalhes sobre o uso da CEL, consulte Common Expression Language.ACTION
: a ação a ser realizada se ocondition
for atendido. Pode serALLOW
ouDENY
.DISPLAY_NAME
: um nome para a restrição. Esse campo tem um comprimento máximo de 200 caracteres.DESCRIPTION
: uma descrição legível da restrição a ser exibida como uma mensagem de erro quando a política for violada. Esse campo tem um comprimento máximo de 2000 caracteres.
Depois de criar uma nova restrição personalizada usando a gcloud CLI, configure-a para
disponibilizá-la para as políticas da organização. Para configurar uma restrição personalizada, use
o comando gcloud org-policies set-custom-constraint
:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
pelo caminho completo
do arquivo da restrição personalizada. Por exemplo, /home/user/customconstraint.yaml
.
Após a conclusão, as restrições personalizadas vão estar disponíveis na sua lista de políticas da organização
do Google Cloud.
Para verificar se a restrição personalizada existe, use o
comando gcloud org-policies list-custom-constraints
:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
pelo ID do recurso da organização.
Para mais informações, consulte
Como visualizar as políticas da organização.Excluir uma restrição personalizada
É possível excluir uma restrição personalizada usando o console do Google Cloud ou a gcloud CLI.
Console
No console do Google Cloud, acesse a página Políticas da organização.
Selecione o seletor de projetos na parte superior da página.
No Seletor de projetos, selecione o recurso em que você quer definir a política da organização.
Selecione a restrição que quer excluir da lista na página Políticas da organização. A página Detalhes da política dessa restrição será exibida.
Clique em
Excluir.Para confirmar que você quer excluir a restrição, clique em Excluir.
gcloud
Para excluir uma restrição personalizada, use o comando org-policies delete-custom-constraint
da gcloud CLI:
gcloud org-policies delete-custom-constraint custom.CONSTRAINT_NAME \
--organization=ORGANIZATION_ID
Substitua:
ORGANIZATION_ID
: o ID da organização, como123456789
.CONSTRAINT_NAME
: o nome da sua restrição personalizada. Por exemplo,
.custom.disableGkeAutoUpgrade
O resultado será assim:
Deleted custom constraint [organizations/123456789/customConstraints/custom.disableGkeAutoUpgrade
]
Depois de excluir uma restrição personalizada, todas as políticas criadas usando a restrição continuam existindo, mas são ignoradas. Não é possível criar outra restrição personalizada com o mesmo nome de uma restrição personalizada excluída.
Exemplo: usar uma restrição personalizada para impor o uso de SSD em vez de HDD
Crie o arquivo
dataDiskType.yaml
da seguinte maneira:name: organizations/651333429324/customConstraints/custom.dataDiskType resourceTypes: - sqladmin.googleapis.com/Instance methodTypes: - CREATE - UPDATE condition: resource.settings.dataDiskType == "PD_SSD" actionType: ALLOW displayName: dataDiskType must be PD_SDD description: dataDiskType must be PD_SSD
Isso garante que todos os métodos
CREATE
eUPDATE
em uma instância atendam à restrição dedataDiskType
serSSD
. Como resultado, todas as instâncias que envolveremHDD
serão rejeitadas.Configure a restrição personalizada no nível da organização:
gcloud org-policies set-custom-constraint dataDiskType.yaml
Crie "enforceDataDiskType.yaml" da seguinte forma:
name: projects/custom-constraints-cloudsql3/policies/custom.dataDiskType spec: rules: - enforce: true
Aplique a restrição personalizada no nível do projeto:
gcloud org-policies set-policy enforceDataDiskType.yaml
A seguir
- Saiba mais sobre as políticas da organização.
- Saiba como o IP privado funciona com o Cloud SQL.
- Saiba como configurar o IP privado para o Cloud SQL.
- Saiba mais sobre o serviço de política da organização.
- Saiba mais sobre restrições da política da organização.
- Saiba mais sobre como criar e gerenciar políticas personalizadas da organização.