Proteger o acesso aos clusters usando políticas de ACL

Ao usar políticas de lista de controle de acesso (ACL) no Memorystore para Redis Cluster, é possível proteger o acesso aos clusters. É possível ativar a segurança detalhada restringindo o acesso de usuários e serviços a chaves, comandos e canais do Pub/Sub específicos.

Veja a seguir exemplos de casos de uso de políticas de ACL para proteger o acesso a clusters:

  • Fornecer controle de acesso baseado em papéis (RBAC): crie perfis de usuário distintos para diferentes componentes dos seus aplicativos. Por exemplo, um front-end da Web pode ter acesso somente leitura, enquanto um serviço de trabalho em segundo plano tem acesso de leitura e gravação. Isso evita vazamentos ou adulterações acidentais de dados.
  • Evite comandos destrutivos: restrinja comandos perigosos, como FLUSHALL, FLUSHDB, ou CONFIG apenas a administradores de alto nível. Isso protege a integridade dos dados contra bugs de software ou erros manuais.
  • Fornecer segurança para aplicativos multilocatários: use usuários de lista de controle de acesso (ACL, na sigla em inglês) separados para diferentes microsserviços ou parceiros externos. Isso garante que os usuários de um serviço não possam ler ou modificar chaves de outro serviço.

    O Memorystore for Redis Cluster não oferece multilocação no nível do recurso. Mesmo que os keyspaces sejam divididos, um serviço pode consumir uma quantidade desproporcional de memória ou CPU.

  • Realize análises e monitoramento somente leitura: atribua um usuário dedicado que possa usar apenas GET ou outros comandos somente leitura (por exemplo, SCAN ou TYPE) para mecanismos de análise ou aplicativos de painel. Isso evita gravações ou exclusões de dados acidentais.

  • Proteger chaves de banco de dados: restrinja os aplicativos para interagir apenas com chaves que correspondam a padrões específicos (por exemplo, app1:*). Isso fornece a separação lógica de dados em um cluster.

  • Desativar scripts Lua: use políticas de ACL para gerenciar recursos de script Lua nos clusters. Desativar ou restringir scripts Lua pode ser útil para ajustar o desempenho, simplificar a funcionalidade dos clusters ou aderir às diretrizes de segurança da sua organização.

Antes de começar

Antes de começar a usar as políticas de ACL, siga as instruções nesta seção.

Usar o console Google Cloud , a Google Cloud CLI e as APIs

Para usar o console Google Cloud , a Google Cloud CLI e as APIs, faça o seguinte:

  1. No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .

    Observação:se você não pretende manter os recursos criados neste procedimento, crie um projeto novo em vez de selecionar um que já existe. Depois de concluir essas etapas, é possível excluir o projeto. Para fazer isso, basta remover todos os recursos associados a ele.


    Acessar o seletor de projetos
  2. Verifique se o faturamento foi ativado para o projeto. Saiba como verificar se o faturamento está ativado em um projeto.
  3. Instale e inicialize a Google Cloud CLI.

    Observação:se você já instalou a CLI gcloud anteriormente, execute gcloud components update para verificar se você tem a versão mais recente. É necessário ter pelo menos a versão 440.0.0 da CLI gcloud para acessar os comandos da CLI gcloud do Memorystore para Redis Cluster.

  4. Ative a API Memorystore para Redis.
    Memorystore para Redis
  5. Ative a API Network Connectivity.
    API Network Connectivity
  6. Ative a API Service Consumer Management.
    API Service Consumer Management

Atribuir papéis do Memorystore for Redis Cluster

Certifique-se de que você ou a conta de usuário que está usando tenham as permissões necessárias para a ação que você precisa executar.

Para realizar todas as operações de política de ACL, use os papéis de Administrador do Redis (roles/redis.admin) e Editor do Redis (roles/redis.editor). Para ver apenas as políticas de ACL, use o papel Leitor do Redis (roles/redis.viewer).

Atribuir permissões do Memorystore for Redis Cluster

Além das funções de administrador, editor e leitor do Redis, para usar políticas de ACL no Memorystore for Redis Cluster, você precisa das seguintes permissões:

Ação Permissão
Criar uma política de ACL redis.aclPolicies.create
Atribuir uma política de ACL a um cluster redis.clusters.update
Conferir informações sobre políticas de ACL redis.aclPolicies.list
Ver informações sobre uma política de ACL redis.aclPolicies.get
Conferir informações sobre revisões da política de ACL redis.aclPolicyRevisions.list
Ver informações sobre uma revisão da política de ACL redis.aclPolicyRevisions.get
Modificar uma política de ACL redis.aclPolicies.update
Remover uma política de ACL de um cluster redis.clusters.update
Excluir uma política de ACL redis.aclPolicies.delete

Criar uma política de ACL

Ao criar políticas de ACL no Memorystore for Redis Cluster, você aumenta a segurança dos clusters restringindo o acesso do usuário a chaves, comandos e canais do Pub/Sub específicos.

É possível criar uma política de lista de controle de acesso (ACL, na sigla em inglês) usando o Google Cloud console ou a CLI gcloud.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

  3. Na página Políticas de ACL, clique em Criar política.

  4. Na janela Criar política, faça o seguinte:

    1. No campo Nome da política, insira um nome para a política de ACL. O nome da política precisa conter apenas letras minúsculas, números e hifens. Ele também precisa começar com uma letra e ser exclusivo na região.

    2. No menu Região, selecione a região em que você quer que o Memorystore para Redis Cluster crie a política de ACL.

    3. Clique em Adicionar regra.

    4. No campo ID do usuário, insira o nome do usuário a quem a política de ACL será aplicada.

    5. No campo String de acesso, insira a string de acesso da política. A string de acesso é uma regra legível por humanos que define as permissões específicas do usuário.

      Por exemplo, se você quiser dar ao superusuário default permissões de leitura e gravação para todas as chaves de ACL do cluster, preencha os campos ID do usuário e String de acesso da seguinte maneira:

      ID do usuário String de acesso
      default on ~* &* +@all

      Essa regra concede as seguintes permissões ao usuário default:

      • on: o usuário está ativo e habilitado para autenticação
      • ~*: o usuário tem acesso de leitura e gravação a todas as chaves possíveis
      • &*: o usuário tem acesso a todos os canais do Pub/Sub.
      • +@all: o usuário pode executar todos os comandos disponíveis.

      Para mais informações sobre outras regras e políticas de ACL que podem ser criadas, consulte ACL na documentação do Redis.

    6. Repita as etapas de c a e para outras regras de ACL que você quer criar para a política.

    7. Clique em Criar.

gcloud

Para criar uma política de ACL, use o comando gcloud redis acl-policies create.

gcloud redis acl-policies create ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all",username="lucian" \
--rules=rule="on +get",username="taylor"

Faça as seguintes substituições:

  • ACL_POLICY_NAME: o nome da política de ACL que você está criando. O nome da política precisa conter apenas letras minúsculas, números e hifens. Ele também precisa começar com uma letra e ser único na região.
  • REGION: a região em que você quer que a política de ACL esteja localizada.

Essa política usa autenticação básica baseada em token e tem regras que executam as seguintes ações:

  • A primeira regra concede a lucian a permissão ~* +@all. Essa permissão permite que o usuário acesse todas as chaves e execute todos os comandos.
  • A segunda regra concede a permissão get a taylor. Essa permissão permite que o usuário recupere os valores associados às chaves. Ele restringe o acesso do usuário a operações de dados somente leitura e impede que ele modifique chaves.

Para criar regras para uma política de ACL que usa a autenticação do Identity and Access Management (IAM), recomendamos que você use principais do IAM para os nomes de usuário (por exemplo, os endereços de e-mail dos usuários).

gcloud redis acl-policies create ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all",username="lucian@example.com" \
--rules=rule="on +get",username="taylor@example.com"

Para criar uma regra para uma política de ACL que não use autenticação, o usuário precisa ser o usuário default.

gcloud redis acl-policies create ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all",username="default"

Para mais informações sobre a autenticação básica baseada em token e a autenticação do IAM, consulte Proteger o acesso aos clusters usando a autenticação básica baseada em token e Sobre a autenticação do IAM.

Para mais informações sobre outras regras e políticas de ACL que você pode criar, consulte ACL na documentação do Redis.

Atribuir uma política de ACL a um cluster

Ao atribuir uma política de ACL a um cluster ou substituir uma política atribuída, você permite que o Memorystore para Redis Cluster aplique as regras da política ao cluster. Como resultado, você restringe o acesso do usuário a chaves, comandos e canais do Pub/Sub específicos.

É possível atribuir uma política de ACL a um cluster usando o consoleGoogle Cloud ou a CLI gcloud.

Atribuir uma política a um novo cluster

Para criar um cluster e atribuir uma política de ACL a ele, consulte Criar instâncias.

Atribuir uma política a um cluster atual

Para aumentar a segurança de um cluster atual, atribua uma política de ACL a ele.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. Clique no ID do cluster ao qual você quer atribuir uma política de ACL.

  3. Na página Visão geral do cluster, role até o card Segurança.

  4. Ao lado do campo Política de ACL, clique em Editar ().

  5. Na janela Editar política de ACL, faça o seguinte:

    1. No menu Política, selecione a política que você quer atribuir ao cluster.

    2. Clique em Atualizar cluster.

gcloud

Para atribuir uma política de ACL a um cluster atual, use o comando gcloud redis clusters update.

gcloud redis clusters update CLUSTER_ID \
--update_mask=acl_policy \
--acl-policy=ACL_POLICY_NAME \
--region=REGION

Faça as seguintes substituições:

  • CLUSTER_ID: o ID do cluster ao qual você está atribuindo a política de ACL.
  • ACL_POLICY_NAME: o nome da política de ACL
  • REGION: a região em que o cluster está localizado.

Ver informações sobre políticas de ACL

Ver informações sobre políticas de ACL no Memorystore for Redis Cluster ajuda a manter a segurança, garante a estabilidade operacional do seu ambiente e permite auditar dados na memória. Essas políticas definem quais usuários podem ler ou modificar determinados padrões de chave, executar comandos específicos ou acessar canais específicos do Pub/Sub.

É possível conferir informações sobre políticas de ACL usando o console doGoogle Cloud ou a CLI gcloud.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

    Na página Políticas de ACL, você pode conferir as seguintes informações sobre cada política:

    • ID da política: o ID exclusivo da política.
    • Local: a região em que a política está localizada.
    • Criada em: a data e a hora em que a política foi criada.
    • Atualizado em: a data e a hora em que a política foi atualizada pela última vez.
    • Número de regras: o número total de regras da política
    • Usada por clusters: os clusters atribuídos à política.

gcloud

Para ver informações sobre as políticas de ACL, use o comando gcloud redis acl-policies list.

gcloud redis acl-policies list
--region=REGION

Substitua REGION pela região em que a política de ACL está localizada.

Conferir informações sobre uma política de ACL

Ao visualizar informações sobre uma política de ACL no Memorystore for Redis Cluster, é possível realizar auditorias de segurança, resolver erros de acesso e aplicar o princípio do privilégio mínimo verificando comandos do usuário, permissões de chave e acesso a canais do Pub/Sub. Além disso, os administradores podem conferir uma política de ACL para garantir que os aplicativos tenham o acesso adequado e detectar regras permissivas demais.

É possível ver informações sobre uma lista de controle de acesso (ACL, na sigla em inglês) usando a CLI gcloud. Para ver essas informações, use o comando gcloud redis acl-policies describe.

gcloud redis acl-policies describe ACL_POLICY_NAME \
--region=REGION

Faça as seguintes substituições:

  • ACL_POLICY_NAME: o nome da política de ACL sobre a qual você quer ver informações
  • REGION: a região em que a política de ACL está localizada.

Ver informações sobre as revisões da política de ACL

Quando você cria uma política de ACL, o Memorystore for Redis Cluster cria uma versão (revisão) para ela. Sempre que você modifica a política, o Memorystore for Redis Cluster cria uma revisão subsequente.

Como o Memorystore for Redis Cluster gera essas revisões automaticamente, é possível usá-las para fins de rastreamento e auditoria internos. Além disso, ao visualizar as revisões, é possível ver o conteúdo exato da política de ACL em cada versão histórica.

Ao usar revisões de políticas de ACL, é possível acompanhar quais clusters estão usando qual revisão de uma política. Isso ajuda a manter a visibilidade e garantir que os clusters estejam na versão correta durante períodos de consistência posterior após uma atualização de política.

É possível ver informações sobre as revisões da política de ACL usando o Google Cloud console ou a CLI gcloud.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

  3. Na página Políticas de ACL, clique no ID da política de ACL que tem revisões que você quer visualizar. Na página Revisões da política de ACL, as seguintes informações são exibidas:

    • ID da revisão: o ID de cada revisão da política de ACL.
    • Número da revisão: o número de cada revisão da política de ACL.
    • Local: a região em que cada revisão da política de ACL está localizada
    • Criado em: a data e a hora em que cada revisão da política de ACL é criada.
    • Clusters anexados: os clusters atribuídos a cada revisão da política de ACL
    • Snapshot: informações detalhadas sobre cada revisão da política de ACL

gcloud

Para ver informações sobre as revisões da política de ACL, use o comando gcloud redis acl-policies revisions list.

gcloud redis acl-policies revisions list \
--acl-policy=ACL_POLICY_NAME \
--region=REGION

Faça as seguintes substituições:

  • ACL_POLICY_NAME: o nome da política de ACL que contém as revisões sobre as quais você quer ver informações.
  • REGION: a região em que a política de ACL está localizada.

Na saída, anote os IDs de revisão. Você vai precisar desses IDs para ver informações sobre revisões específicas da política de ACL.

Conferir informações sobre uma revisão da política de ACL

Ao visualizar uma revisão de política de ACL, é possível ver as regras, os metadados e uma lista de todos os clusters anexados. É possível ver informações sobre uma revisão de política de lista de controle de acesso (ACL, na sigla em inglês) usando o console do Google Cloud ou a CLI gcloud.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

  3. Na página Políticas de ACL, clique no ID da política de ACL que tem uma revisão que você quer visualizar.

  4. Na página Revisões da política de ACL, clique no link Snapshot ao lado da revisão da política de ACL que tem as informações que você quer ver.

gcloud

Para ver informações sobre uma revisão da política de ACL, use o comando gcloud redis acl-policies revisions describe.

gcloud redis acl-policies revisions describe ACL_POLICY_REVISION_ID \
--acl-policy=ACL_POLICY_NAME \
--region=REGION

Faça as seguintes substituições:

  • ACL_POLICY_REVISION_ID: o ID da revisão da política de ACL sobre a qual você quer ver informações. Você anotou esse ID quando visualizou informações sobre as revisões da política de ACL.
  • ACL_POLICY_NAME: o nome da política de ACL que contém a revisão.
  • REGION: a região em que a política de ACL está localizada.

Modificar uma política de ACL

Ao modificar uma política de ACL no Memorystore for Redis Cluster, é possível melhorar a segurança, aplicar o acesso com privilégio mínimo e gerenciar a segurança operacional. É possível modificar uma política usando o console do Google Cloud ou a CLI gcloud.

Adicionar uma regra a uma política de ACL

Para aumentar a segurança de uma política de ACL, adicione uma regra a ela.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

  3. Ao lado da política de ACL em que você quer adicionar uma regra, clique em Mais ações () e selecione Editar.

  4. Na janela Editar política, clique em Adicionar regra.

  5. No campo ID do usuário, insira o nome do usuário a quem a política de ACL será aplicada.

  6. No campo String de acesso, insira a string de acesso da política. Para mais informações sobre strings de acesso para políticas de ACL, consulte Criar uma política de ACL.

  7. Repita as etapas de 4 a 6 para adicionar outras regras de ACL à política.

  8. Clique em Salvar.

gcloud

Para adicionar uma regra a uma política de ACL, use o comando gcloud redis acl-policies update.

gcloud redis acl-policies update ACL_POLICY_NAME \
--region=REGION \
--add-rules=rule="on ~list:*",username="lucian"

Faça as seguintes substituições:

  • ACL_POLICY_NAME: o nome da política de ACL em que você quer adicionar uma regra de ACL.
  • REGION: a região em que a política de ACL está localizada.

Essa regra concede ao lucian acesso a todas as chaves que começam com list:.

Modificar uma regra para uma política de ACL

Modificar uma regra de ACL para uma política de ACL oferece mais segurança, maior segurança operacional e controle de acesso de usuário mais granular. Por exemplo, é possível revogar permissões durante uma resposta a incidentes ou ativar o acesso temporário para fins de depuração.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

  3. Ao lado da política de ACL em que você quer modificar uma regra, clique em Mais ações () e selecione Editar.

  4. Na janela Editar política, clique em Adicionar regra.

  5. Nos campos ID do usuário e String de acesso, modifique o ID do usuário ou a string de acesso da política. Para mais informações sobre strings de acesso para políticas de ACL, consulte Criar uma política de ACL.

  6. Repita as etapas 4 e 5 para outras regras de ACL que você quer modificar para a política.

  7. Clique em Salvar.

Substituir as regras de uma política de ACL

Assim como modificar uma regra para uma política, substituir as regras de uma política oferece segurança mais rígida, maior segurança operacional e controle de acesso de usuário mais granular.

gcloud

Para substituir as regras de uma política de ACL, use o comando gcloud redis acl-policies update.

gcloud redis acl-policies update ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~c*che",username="lucian"

Faça as seguintes substituições:

  • ACL_POLICY_NAME: o nome da política de ACL em que você quer substituir as regras de ACL
  • REGION: a região em que a política de ACL está localizada.

A regra que você está substituindo para a política concede acesso de lucian a todas as chaves que correspondem ao padrão c*che. Por exemplo: cache, caache e ceche.

Remover uma regra de uma política de ACL

Se uma regra de ACL não se aplicar mais a uma política de ACL, será possível removê-la.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

  3. Ao lado da política de ACL de que você quer remover uma regra, clique em Mais ações () e selecione Editar.

  4. Na janela Editar política, ao lado de uma regra que você quer remover da política, clique em Excluir regra ().

  5. Repita a etapa 4 para outras regras de ACL que você quer remover da política.

  6. Clique em Salvar.

gcloud

Para remover uma regra de uma política de ACL, use o comando gcloud redis acl-policies update.

gcloud redis acl-policies update ACL_POLICY_NAME \
--region=REGION \
--remove-rules=rule="on ~set",username="lucian"

Faça as seguintes substituições:

  • ACL_POLICY_NAME: o nome da política de ACL de que você quer remover uma regra de ACL.
  • REGION: a região em que a política de ACL está localizada.

A remoção dessa regra revoga as permissões associadas para lucian. Para acessar o cluster, lucian agora precisa se conectar como o usuário default e está sujeito às permissões desse usuário.

Remover uma política de ACL de um cluster

Se uma política de ACL não se aplicar mais a um cluster no Memorystore for Redis Cluster, remova-a. É possível remover uma política usando o console doGoogle Cloud ou a CLI gcloud.

Console

  1. No console do Google Cloud , acesse a página Memorystore para cluster do Redis.

    Memorystore for Redis Cluster

  2. Clique no ID do cluster de que você quer remover uma política de ACL.

  3. Na página Visão geral do cluster, role até o card Segurança.

  4. Ao lado do campo Política de ACL, clique em Editar ().

  5. Na janela Editar política de ACL, faça o seguinte:

    1. No menu Política, selecione Nenhuma política.

    2. Clique em Atualizar cluster.

gcloud

Para remover uma política de ACL de um cluster, use o comando gcloud redis clusters update.

gcloud redis clusters update CLUSTER_ID \
--acl-policy="" \
--region=REGION

Faça as seguintes substituições:

  • CLUSTER_ID: o ID do cluster de que você está removendo a política de ACL.
  • REGION: a região em que o cluster está localizado.

O valor "" do parâmetro acl-policy é uma string vazia. Isso indica que você quer remover a política de ACL do cluster.

Excluir uma política de ACL

Se você não precisar mais de uma política de ACL, poderá excluí-la. É possível excluir uma política usando o console do Google Cloud ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. No painel de navegação lateral, clique em Políticas de ACL.

  3. Ao lado da política de ACL que você quer excluir, clique em Mais ações () e selecione Excluir.

    Se o item de menu Excluir estiver desativado, a política será atribuída aos clusters. Antes de excluir a política, remova-a de cada cluster.

  4. Na janela Excluir política, faça o seguinte:

    1. No campo de texto, insira o nome da política.

    2. Clique em Excluir.

gcloud

Para excluir uma política de ACL, use o comando gcloud redis acl-policies delete.

gcloud redis acl-policies delete ACL_POLICY_NAME \
--region=REGION

Faça as seguintes substituições:

  • ACL_POLICY_NAME: o nome da política de ACL que você quer excluir
  • REGION: a região em que a política de ACL está localizada.

Desativar scripts Lua

É possível usar políticas de ACL para gerenciar os recursos de script Lua nos clusters. Desativar ou restringir scripts Lua pode ser útil para ajustar a performance, simplificar a funcionalidade dos clusters ou seguir as diretrizes de segurança da sua organização.

Desativar comandos de script para usuários

Para desativar os scripts Lua para que os usuários não possam executá-los, use políticas de ACL e remova as permissões para os comandos de script da string de regra de ACL do usuário.

O Redis categoriza os comandos em grupos. A programação em Lua se enquadra na categoria @scripting. Os comandos principais para os quais você precisa remover as permissões do usuário são:

É possível desativar todos os comandos de script ou um comando específico para os usuários. Para desativar os comandos de script, use a CLI gcloud e adicione um sinal de menos (-) como prefixo ao comando ou à categoria.

Desativar todos os comandos de script para um usuário

Para desativar todos os comandos de script para um usuário, crie uma política de ACL e atribua-a a um cluster ou modifique uma política de ACL atribuída a um cluster.

Criar uma política

Para criar uma política de ACL que desative todos os comandos de script para um usuário chamado lucian, use o comando gcloud redis acl-policies create.

gcloud redis acl-policies create POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=lucian

Faça as seguintes substituições:

  • POLICY_NAME: o nome da política de ACL
  • REGION: a região em que você quer que a política de ACL esteja localizada.

Depois de criar a política, atribua-a a um cluster novo ou existente.

Modificar uma política

Para modificar uma política de ACL e desativar todos os comandos de script para lucian, use o comando gcloud redis acl-policies update.

gcloud redis acl-policies update POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=lucian

Faça as seguintes substituições:

  • POLICY_NAME: o nome da política de ACL
  • REGION: a região em que a política de ACL está localizada.

Se você quiser conceder apenas as permissões específicas de que um usuário precisa, mude o valor +@all. Por exemplo, se você quiser que o usuário tenha acesso apenas a comandos somente leitura, mude +@all para +@read. Para mais informações sobre as permissões do usuário que podem ser definidas, consulte a documentação da ACL do Redis.

Desativar um comando de script para um usuário

É possível desativar comandos específicos para um usuário. Por exemplo, você pode permitir que o usuário execute todos os comandos de script, exceto o SCRIPT FLUSH. Para desativar um comando de script para um usuário, crie uma política de ACL e atribua-a a um cluster ou modifique uma política de ACL atribuída a um cluster.

É possível desativar qualquer comando de script. Nos exemplos desta seção, você desativa o comando SCRIPT FLUSH para o usuário. Para ver uma lista de comandos de script, consulte Desativar comandos de script para usuários.

Criar uma política

Para criar uma política de ACL que desative o comando de script SCRIPT FLUSH para lucian, use o comando gcloud redis acl-policies create.

gcloud redis acl-policies create POLICY_NAME \
--region=REGION \
--rules=rule="on ~* -script|flush",username=lucian

Faça as seguintes substituições:

  • POLICY_NAME: o nome da política de ACL
  • REGION: a região em que você quer que a política de ACL esteja localizada.

Depois de criar a política, atribua-a a um cluster novo ou existente.

Modificar uma política

Para modificar uma política de ACL e desativar todos os comandos de script para lucian, use o comando gcloud redis acl-policies update.

gcloud redis acl-policies update POLICY_NAME \
--region=REGION \
--rules=rule="on ~* -script|flush",username=lucian

Faça as seguintes substituições:

  • POLICY_NAME: o nome da política de ACL
  • REGION: a região em que a política de ACL está localizada.

Se você quiser conceder apenas as permissões específicas de que um usuário precisa, mude o valor +@all. Por exemplo, se você quiser que o usuário tenha acesso apenas a comandos somente leitura, mude +@all para +@read. Para mais informações sobre as permissões do usuário que podem ser definidas, consulte a documentação da ACL do Redis.

Proteger o usuário padrão

Para desativar as permissões de script para o superusuário default, crie uma política de ACL e atribua-a a um cluster ou modifique uma política de ACL atribuída a um cluster.

Criar uma política

Para criar uma política de ACL que desative todos os comandos de script para o usuário default, use o comando gcloud redis acl-policies create.

gcloud redis acl-policies create POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=default

Faça as seguintes substituições:

  • POLICY_NAME: o nome da política de ACL
  • REGION: a região em que você quer que a política de ACL esteja localizada.

Depois de criar a política, atribua-a a um cluster novo ou existente.

Modificar uma política

Para modificar uma política de ACL e desativar todos os comandos de script para o usuário default, use o comando gcloud redis acl-policies update.

gcloud redis acl-policies update POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=default

Faça as seguintes substituições:

  • POLICY_NAME: o nome da política de ACL
  • REGION: a região em que a política de ACL está localizada.

Se você quiser conceder apenas as permissões específicas de que o usuário default precisa, mude o valor de +@all. Por exemplo, se você quiser que o usuário tenha acesso apenas a comandos somente leitura, mude +@all para +@read. Para mais informações sobre as permissões de usuário que podem ser definidas, consulte a documentação da ACL do Redis.

Resolver problemas

Nesta seção, listamos as mensagens de erro que você pode receber ao usar políticas de ACL, os motivos dessas mensagens e dicas para resolver os problemas.

Mensagem de erro Causa Resolver problemas
username cannot be empty Você define uma string vazia ou uma string que contém apenas espaços em branco para um nome de usuário em uma política de ACL. Use um nome de usuário com caracteres alfanuméricos ou especiais. Em seguida, crie a política de ACL novamente.
duplicate username found in ACL policy Você tem nomes de usuário duplicados em uma política de ACL. Use os registros de erros para encontrar o nome de usuário duplicado. Modifique a solicitação de criação da política de ACL para especificar exatamente uma regra para o nome de usuário. Em seguida, crie a política de ACL novamente.
ACL rule token cannot contain token. use either IAM or Basic Auth features to enable authentication Não é possível usar caracteres de senha (por exemplo, <, >, # e !) ou comandos relacionados (por exemplo, nopass, resetpass e reset) em uma política de ACL. Remova todos os caracteres de senha e comandos relacionados das regras da política de ACL. Em seguida, crie a política de ACL novamente. Para configurar a autenticação, ative a autenticação básica ou a autenticação baseada no IAM.
passwords not allowed in ACL rules (token starts with char). use either IAM or Basic Auth features to enable authentication Não é possível usar caracteres de senha (por exemplo, <, >, # e !) ou comandos relacionados (por exemplo, nopass, resetpass e reset) em uma política de ACL. Remova todos os caracteres de senha e comandos relacionados das regras da política de ACL. Em seguida, crie a política de ACL novamente. Para configurar a autenticação, ative a autenticação básica ou a autenticação baseada no IAM.
invalid ACL rule syntax Você não formatou corretamente uma string de acesso em uma ou mais regras da política de ACL. Formate a string de acesso corretamente.
ACL policy is in DELETING state and cannot be used Você está tentando atribuir uma política de ACL a um cluster, mas ela tem o status DELETING. Atribua uma política de ACL diferente ao cluster.
ACL_POLICY_IN_USE: ACL policy is in use by 1 or more clusters Você está tentando excluir uma política de ACL atribuída a pelo menos um cluster. Antes de excluir uma política de ACL, é necessário removê-la de todos os clusters a que ela está atribuída. Para determinar quais clusters estão atribuídos a uma política, consulte Ver informações sobre políticas de ACL.
fast-failing the workflow as the resource is in DELETING state Você está tentando modificar uma política de ACL que tem um status DELETING. Se uma política de ACL tiver o status DELETING, não será possível modificá-la.