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, ouCONFIGapenas 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
GETou outros comandos somente leitura (por exemplo,SCANouTYPE) 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:
- 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 - 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.
Observação:se você já instalou a CLI gcloud anteriormente, execute
gcloud components updatepara verificar se você tem a versão mais recente. É necessário ter pelo menos a versão440.0.0da CLI gcloud para acessar os comandos da CLI gcloud do Memorystore para Redis Cluster.-
Ative a API Memorystore para Redis.
Memorystore para Redis -
Ative a API Network Connectivity.
API Network Connectivity -
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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
No painel de navegação lateral, clique em Políticas de ACL.
Na página Políticas de ACL, clique em Criar política.
Na janela Criar política, faça o seguinte:
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.
No menu Região, selecione a região em que você quer que o Memorystore para Redis Cluster crie a política de ACL.
Clique em Adicionar regra.
No campo ID do usuário, insira o nome do usuário a quem a política de ACL será aplicada.
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
defaultpermissõ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 defaulton ~* &* +@allEssa 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.
Repita as etapas de c a e para outras regras de ACL que você quer criar para a política.
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
luciana 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
getataylor. 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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
Clique no ID do cluster ao qual você quer atribuir uma política de ACL.
Na página Visão geral do cluster, role até o card Segurança.
Ao lado do campo Política de ACL, clique em Editar (edit).
Na janela Editar política de ACL, faça o seguinte:
No menu Política, selecione a política que você quer atribuir ao cluster.
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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
No painel de navegação lateral, clique em Políticas de ACL.
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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
No painel de navegação lateral, clique em Políticas de ACL.
Na página Políticas de ACL, clique no ID da política de ACL que tem uma revisão que você quer visualizar.
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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
No painel de navegação lateral, clique em Políticas de ACL.
Ao lado da política de ACL em que você quer adicionar uma regra, clique em Mais ações (more_vert) e selecione Editar.
Na janela Editar política, clique em Adicionar regra.
No campo ID do usuário, insira o nome do usuário a quem a política de ACL será aplicada.
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.
Repita as etapas de 4 a 6 para adicionar outras regras de ACL à política.
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
No console Google Cloud , acesse a página Memorystore para Redis Cluster.
No painel de navegação lateral, clique em Políticas de ACL.
Ao lado da política de ACL em que você quer modificar uma regra, clique em Mais ações (more_vert) e selecione Editar.
Na janela Editar política, clique em Adicionar regra.
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.
Repita as etapas 4 e 5 para outras regras de ACL que você quer modificar para a política.
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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
No painel de navegação lateral, clique em Políticas de ACL.
Ao lado da política de ACL de que você quer remover uma regra, clique em Mais ações (more_vert) e selecione Editar.
Na janela Editar política, ao lado de uma regra que você quer remover da política, clique em Excluir regra (delete).
Repita a etapa 4 para outras regras de ACL que você quer remover da política.
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
No console do Google Cloud , acesse a página Memorystore para cluster do Redis.
Clique no ID do cluster de que você quer remover uma política de ACL.
Na página Visão geral do cluster, role até o card Segurança.
Ao lado do campo Política de ACL, clique em Editar (edit).
Na janela Editar política de ACL, faça o seguinte:
No menu Política, selecione Nenhuma política.
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
No console Google Cloud , acesse a página Memorystore para Redis Cluster.
No painel de navegação lateral, clique em Políticas de ACL.
Ao lado da política de ACL que você quer excluir, clique em Mais ações (more_vert) 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.
Na janela Excluir política, faça o seguinte:
No campo de texto, insira o nome da política.
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:
EVAL: executa um script Lua fornecido como uma string.EVALSHA: execute um script Lua que é armazenado em cache usando o comandoSCRIPT LOADSCRIPT: gerencie o cache de script (por exemplo,LOAD,FLUSH,EXISTSeKILL)O comando
SCRIPTinclui os seguintes subcomandos:
É 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. |