Este documento descreve como criar, configurar e gerenciar restrições personalizadas de políticas da organização para instâncias do Memorystore for Valkey. Para uma visão geral das políticas personalizadas da organização, consulte Políticas personalizadas da organização.
O serviço de políticas da organização do Google Cloud oferece controle centralizado e programático sobre os recursos da sua organização. Um administrador de políticas da organização pode definir políticas da organização, ou seja, conjuntos de restrições chamados restrições que se aplicam aos Google Cloud recursos e aos elementos que descendem desses recursos na Google Cloud hierarquia de recursos. É possível aplicar políticas da organização no nível da organização, da pasta ou do projeto.
O serviço de políticas da organização oferece restrições predefinidas para vários Google Cloud serviços, incluindo o Memorystore for Valkey. No entanto, se você quiser um controle mais granular e personalizável sobre os campos específicos restritos nas suas políticas da organização, crie também restrições personalizadas e use-as em políticas da organização.
Ao implementar restrições personalizadas de políticas da organização, você aplica configurações e restrições consistentes. Isso verifica se as instâncias aderem às práticas recomendadas de segurança e aos requisitos regulatórios.
É possível usar políticas personalizadas da organização para permitir ou negar recursos do Memorystore for Valkey. Por exemplo, se você tentar criar ou atualizar uma instância enquanto uma restrição personalizada estiver aplicada e a instância não estiver em conformidade com a restrição, o Memorystore for Valkey não vai criar ou atualizar a instância. Além disso, qualquer projeto adicionado a uma organização ou pasta que use uma política personalizada da organização herda as restrições dessa política.
Herança de políticas
Por padrão, as políticas da organização são herdadas pelos elementos que descendem dos recursos em que elas são aplicadas. Por exemplo, se você aplicar uma política a uma pasta, ela será aplicada a todos os projetos na pasta. Google Cloud Para saber mais sobre esse comportamento e como alterá-lo, consulte Regras de avaliação da hierarquia.
Antes de começar
Antes de começar a usar políticas personalizadas da organização, conclua os pré-requisitos desta seção.
Usar o Google Cloud console, a Google Cloud CLI e as APIs
Para usar o Google Cloud console, a CLI gcloud e as APIs, faça o seguinte:
- No Google Cloud console do, na página do seletor de projetos, selecione ou crie um Google Cloud projeto do.
- Verifique se o faturamento foi ativado para o projeto. Saiba como verificar se o faturamento está ativado em um projeto.
Instale e inicialize a Google Cloud CLI (CLI gcloud).
Se você instalou a CLI gcloud, verifique se tem a versão mais recente executando
gcloud components update. Para acessar os comandos da CLI gcloud do Memorystore for Valkey, você precisa da versão489.0.0ou mais recente da CLI gcloud.-
Ative a API Memorystore for Valkey.
API Memorystore for Valkey - Se você estiver usando um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
- Verifique se você conhece o ID da sua organização.
Atribuir papéis
Para usar políticas personalizadas da organização nas instâncias, você precisa ter um destes papéis do IAM no Google Cloud projeto:
roles/memorystore.admin(o papel de administrador do Memorystore)roles/owner(o papel de proprietário)roles/editor(o papel de editor)
Além disso, você precisa conceder o papel roles/orgpolicy.policyAdmin (administrador de políticas da organização) e
a permissão memorystore.instances.create à sua conta de usuário ou de serviço. Para mais informações sobre
como conceder papéis e permissões, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Criar e configurar uma restrição personalizada
Você cria uma restrição personalizada para definir os recursos, métodos, condições e ações sujeitos à restrição. Eles são específicos do serviço em que você está aplicando a política da organização.
Você define condições para a restrição personalizada usando a Common Expression Language (CEL). Para mais informações sobre como criar condições em restrições personalizadas usando a CEL, consulte a seção CEL de Criar e gerenciar restrições personalizadas.
Depois de criar a restrição personalizada, faça a configuração necessária para disponibilizá-la para as políticas da organização. Você pode fazer isso usando o Google Cloud console ou a Google Cloud CLI.
Console
- No console do Google Cloud , acesse a página Políticas da organização.
- Clique no menu na barra de menus do Google Cloud console e selecione o projeto, a pasta ou a organização para a qual você está criando e configurando uma restrição personalizada.
- Na página Políticas da organização, clique em Restrição personalizada.
No campo Nome de exibição da página Criar restrição personalizada, insira um nome legível para a restrição. Esse nome é usado em mensagens de erro e também pode ser usado para identificação e depuração. Esse campo pode conter até 200 caracteres.
No campo ID da restrição, insira o ID da restrição personalizada. Essa restrição precisa começar com
custom.e só pode incluir letras maiúsculas, minúsculas ou números (por exemplo,custom.restrictFiveShardInstances). O comprimento máximo desse valor é de 70 caracteres, sem contar o prefixo. Exemplo:organizations/123456789/customConstraints/custom.allowConstraint.No campo Descrição, insira uma descrição legível da restrição. Essa descrição é usada como uma mensagem de erro quando a política da organização é violada. Inclua detalhes sobre o motivo da violação da política e como resolvê-la. Esse campo pode conter até 2.000 caracteres.
- No menu Tipo de recurso, selecione o nome (não o URI) do recurso do Memorystore for Valkey que contém o objeto e o campo que você quer restringir. Exemplo:
memorystore.googleapis.com/Instance. - No menu Método de aplicação, faça uma das seguintes
seleções:
- Aplicar na criação: a restrição é aplicada apenas quando você cria instâncias do Memorystore for Valkey.
- Aplicar na criação e atualização: a restrição é aplicada quando você cria e atualiza instâncias.
Para definir uma condição CEL gravada em uma representação de um recurso de serviço compatível, faça o seguinte:
- No campo Condição, clique em Editar.
Na caixa de diálogo Adicionar condição, insira a condição CEL. Exemplo:
resource.shardCount == 5.Essa condição pode ter um comprimento máximo de 1.000 caracteres. Para mais informações sobre os recursos disponíveis para gravação de condições, consulte Restrições e operações personalizadas compatíveis.
- Clique em Salvar.
- Na seção Ação, faça uma das seguintes seleções
que representa a ação a ser realizada se a condição for atendida:
- Permitir: se a condição for avaliada como verdadeira, a operação para criar ou atualizar a instância será permitida. Todos os outros casos, exceto os listados explicitamente na condição, estão bloqueados.
- Negar: se a condição for avaliada como verdadeira, a operação para criar ou atualizar a instância será bloqueada.
- Na seção Configuração do YAML, verifique se a configuração do YAML para a restrição personalizada está correta.
- Clique em Criar restrição.
gcloud
Para criar uma restrição personalizada, crie um arquivo YAML usando o seguinte formato:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: - memorystore.googleapis.com/RESOURCE_NAME methodTypes: - CREATE - UPDATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
Faça as seguintes substituições:
ORGANIZATION_ID: o ID da sua organização, como123456789.CONSTRAINT_NAME: o nome da restrição personalizada. Essa restrição precisa começar comcustom.e só pode incluir letras maiúsculas, minúsculas ou números (por exemplo,custom.restrictFiveShardInstances). O comprimento máximo desse valor é de 70 caracteres, sem contar o prefixo. Por exemplo:organizations/123456789/customConstraints/custom.allowConstraint.RESOURCE_NAME: o nome (não o URI) do recurso do Memorystore for Valkey que contém o objeto e o campo que você quer restringir. Exemplo:memorystore.googleapis.com/Instance.CONDITION: uma condição CEL gravada em uma representação de um recurso de serviço compatível. Por exemplo:"resource.shardCount == 5".Esse campo pode ter no máximo 1.000 caracteres. Para mais informações sobre os recursos disponíveis para gravação de condições, consulte Restrições e operações personalizadas compatíveis.
ACTION: a ação a ser realizada se a condição for atendida. Essa ação pode ser um dos seguintes valores:ALLOW: se a condição for avaliada como verdadeira, a operação para criar ou atualizar a instância será permitida. Todos os outros casos exceto os listados explicitamente na condição, estão bloqueados.DENY: se a condição for avaliada como verdadeira, a operação para criar ou atualizar a instância será bloqueada.
DISPLAY_NAME: um nome legível para a restrição. Esse nome é usado em mensagens de erro e também pode ser usado para identificação e depuração. Esse campo pode conter até 200 caracteres.DESCRIPTION: uma descrição legível da restrição. Essa descrição é usada como uma mensagem de erro quando a política da organização é violada. Inclua detalhes sobre o motivo da violação da política e como resolvê-la. Esse campo pode conter até 2.000 caracteres.
Para configurar uma restrição personalizada, use o
gcloud org-policies set-custom-constraintcomando:gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Substitua CONSTRAINT_PATH pelo caminho completo para o arquivo de restrição personalizada (por exemplo,
/home/user/customconstraint.yaml).Depois de configurar a restrição personalizada, ela estará disponível como uma política da organização na lista de Google Cloud políticas da organização.
Para verificar se a restrição personalizada existe, use o
gcloud org-policies list-custom-constraintscomando:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Aplicar uma política personalizada da organização
Para aplicar uma restrição, crie uma política da organização que faça referência a ela e aplique essa política a um recurso do Google Cloud .Console
- No console do Google Cloud , acesse a página Políticas da organização.
- No seletor de projetos, selecione o projeto em que você quer definir a política da organização.
- Na lista da página Políticas da organização, selecione uma restrição para acessar a página Detalhes da política associada.
- Para configurar 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 recurso pai.
- Clique em Adicionar regra.
- Na seção Aplicação, selecione se essa política da organização será aplicada ou não.
- Opcional: para tornar a política da organização condicional em uma tag, clique Adicionar condição. Se você adicionar uma regra condicional a uma política da organização inclua pelo menos uma regra não condicional para que a política seja salva. Para mais informações, consulte Definir o escopo das políticas da organização com tags.
- Clique em Testar mudanças 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 aplicar a política da organização no modo de simulação, clique em Definir política de simulação. Para mais informações, consulte Testar políticas da organização.
- Depois de verificar se a política da organização no modo de teste funciona conforme o esperado, defina a política ativa clicando em Definir política.
gcloud
- Para criar uma política da organização com regras booleanas, crie um arquivo YAML para a política que faça referência à restrição:
-
PROJECT_ID: o projeto em que você quer aplicar a restrição em. -
CONSTRAINT_NAME: o nome definido para a restrição personalizada. Por exemplo,custom.restrictFiveShardInstances. -
Para aplicar a política da organização no
modo de teste, execute
o seguinte comando com a
dryRunSpecflag: -
Depois de verificar se a política da organização no modo de teste funciona conforme o esperado, defina a
política ativa com o
org-policies set-policycomando e aspecflag:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
Substitua:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
Substitua POLICY_PATH pelo caminho completo para o arquivo YAML da política da organização. A política leva até 15 minutos para entrar em vigor.
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
Substitua POLICY_PATH pelo caminho completo para o arquivo YAML da política da organização. A política leva até 15 minutos para entrar em vigor.
Testar uma restrição personalizada
Para testar uma restrição personalizada de políticas da organização para o Memorystore for Valkey, tente criar ou atualizar uma instância que não esteja em conformidade com a política aplicada.
Por exemplo, suponha que uma restrição impeça a criação de uma instância se ela tiver cinco shards. Você pode testar essa restrição tentando criar a instância e definindo a contagem de shards como cinco. Como a instância não está em conformidade com a restrição, o Memorystore for Valkey não cria a instância.
Restrições e operações personalizadas compatíveis
Os seguintes campos de restrição personalizada do Memorystore for Valkey estão disponíveis para uso ao criar ou atualizar uma instância:
- Instância do Memorystore for Valkey
resource.nameresource.replicaCountresource.shardCountresource.nodeTyperesource.engineVersionresource.moderesource.kmsKeyresource.simulateMaintenanceEventresource.engineConfigsresource.persistenceConfig.moderesource.persistenceConfig.rdbConfig.rdbSnapshotPeriodresource.persistenceConfig.rdbConfig.rdbSnapshotStartTimeresource.persistenceConfig.aofConfig.appendFsyncresource.deletionProtectionEnabledresource.maintenancePolicy.weeklyMaintenanceWindow.dayresource.maintenancePolicy.weeklyMaintenanceWindow.startTimeresource.automatedBackupConfig.automatedBackupModeresource.automatedBackupConfig.fixedFrequencyScheduleresource.automatedBackupConfig.retentionresource.crossInstanceReplicationConfig.instanceRoleresource.crossInstanceReplicationConfig.primaryInstanceresource.crossInstanceReplicationConfig.secondaryInstancesresource.crossInstanceReplicationConfig.primaryInstance.instanceresource.crossInstanceReplicationConfig.secondaryInstances.instanceresource.zoneDistributionConfig.zoneresource.zoneDistributionConfig.moderesource.transitEncryptionModeresource.authorizationModeresource.serverCaModeresource.managedBackupSource.backupresource.serverCaPool
Exemplo de restrição personalizada
A tabela a seguir mostra um exemplo de restrição personalizada que impede que os usuários criem ou atualizem instâncias do Memorystore for Valkey se elas tiverem cinco shards:
| Descrição | Sintaxe da restrição |
|---|---|
| Restringir a criação ou atualização de instâncias que têm cinco shards |
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictFiveShardInstances resourceTypes: - memorystore.googleapis.com/Instance methodTypes: - CREATE - UPDATE condition: "resource.shardCount == 5" actionType: DENY displayName: Restrict five-shard Memorystore for Valkey instances description: Prevent users from creating or updating instances that have five shards. |
A seguir
- Saiba mais sobre políticas da organização.
- Saiba como criar e gerenciar restrições personalizadas.
- Saiba como criar e gerenciar políticas da organização.