Autenticando usuários com listas de controle de acesso () ACLs - Amazon MemoryDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autenticando usuários com listas de controle de acesso () ACLs

Você pode autenticar usuários com listas de controle de acesso (ACLs).

ACLspermitem que você controle o acesso ao cluster agrupando usuários. Essas listas de controle de acesso são projetadas como uma maneira de organizar o acesso aos clusters.

ComACLs, você cria usuários e atribui a eles permissões específicas usando uma string de acesso, conforme descrito na próxima seção. Você atribui os usuários a listas de controle de acesso alinhadas a uma função específica (administradores, recursos humanos) que, em seguida, são implantadas em um ou mais clusters do MemoryDB. Ao fazer isso, você pode estabelecer limites de segurança entre clientes usando o mesmo cluster ou clusters do MemoryDB e impedir que os clientes acessem os dados uns dos outros.

ACLssão projetados para suportar a introdução do ACLno Redis OSS 6. Quando você usa ACLs com seu cluster MemoryDB, há algumas limitações:

  • Não é possível especificar senhas em uma string de acesso. Você define senhas com CreateUsernossas UpdateUserchamadas.

  • Para direitos de usuário, você passa on e off como parte da string de acesso. Se nenhum deles for especificado na string de acesso, o usuário é atribuído com off e não tem direitos de acesso ao cluster.

  • Você não pode usar comandos proibidos. Se você especificar um comando proibido, será emitida uma exceção. Para obter uma lista desses comandos, consulte Comandos restritos.

  • Não é possível usar o comando reset como parte de uma string de acesso. Você especifica senhas com API parâmetros e o MemoryDB gerencia as senhas. Assim, você não pode usar reset porque ele removeria todas as senhas de um usuário.

  • O Redis OSS 6 apresenta o ACLLISTcomando. Esse comando retorna uma lista de usuários junto com as ACL regras aplicadas a cada usuário. O MemoryDB suporta o ACL LIST comando, mas não inclui suporte para hashes de senha, como faz o Redis. OSS Com o MemoryDB, você pode usar a DescribeUsersoperação para obter informações semelhantes, incluindo as regras contidas na string de acesso. No entanto, DescribeUsersnão recupera a senha do usuário.

    Outros comandos somente para leitura suportados pelo MemoryDB incluem ACLWHOAMI, e. ACLUSERSACLCAT O MemoryDB não oferece suporte a nenhum outro comando baseado em gravaçãoACL.

O uso ACLs com o MemoryDB é descrito em mais detalhes a seguir.

Especificação de permissões usando uma string de acesso

Para especificar permissões para um cluster MemoryDB, você cria uma string de acesso e a atribui a um usuário usando o AWS CLI ou. AWS Management Console

As strings de acesso são definidas como uma lista de regras delimitadas por espaço que são aplicadas ao usuário. Eles definem quais comandos um usuário pode executar e em quais chaves um usuário pode operar. Para executar um comando, um usuário deve ter acesso ao comando que está sendo executado e todas as chaves que estão sendo acessadas pelo comando. As regras são aplicadas da esquerda para a direita cumulativamente, e uma string mais simples pode ser usada em vez da fornecida se houver redundâncias na string fornecida.

Para obter informações sobre a sintaxe das ACL regras, consulte ACL.

No exemplo a seguir, a string de acesso representa um usuário ativo com acesso a todas as chaves e comandos disponíveis.

on ~* &* +@all

A sintaxe da cadeia de acesso é dividida da seguinte forma:

  • on: o usuário é um usuário ativo.

  • ~*: o acesso é dado a todas as chaves disponíveis.

  • &*— O acesso é concedido a todos os canais do pubsub.

  • +@all: o acesso é dado a todos os comandos disponíveis.

As configurações anteriores são as menos restritivas. Você pode modificar essas configurações para torná-las mais seguras.

No exemplo a seguir, a string de acesso representa um usuário com acesso restrito ao acesso de leitura em chaves que começam com o keyspace "app::"

on ~app::* -@all +@read

Você pode refinar mais essas permissões listando comandos aos quais o usuário tem acesso:

+command1— O acesso do usuário aos comandos é limitado a comando1.

+@category: o acesso do usuário é limitado a uma categoria de comandos.

Para obter informações sobre como atribuir uma string de acesso a um usuário, consulte Criação de usuários e listas de controle de acesso com o console e CLI.

Se você estiver migrando uma workload existente para o MemoryDB, poderá recuperar a string de acesso chamando ACL LIST, excluindo o usuário e quaisquer hashes de senha.

Recursos de pesquisa vetorial

nota

Esse recurso está na versão prévia do MemoryDB e está sujeito a alterações.

Para a Pesquisa vetorial, todos os comandos de pesquisa pertencem à categoria @search, e as categorias @read, @write, @fast e @slow existentes são atualizadas para incluir comandos de pesquisa. Se um usuário não tiver acesso a uma categoria, ele não terá acesso aos comandos dentro dela. Por exemplo, se ele não tiver acesso a @search, não poderá executar comandos relacionados a pesquisas.

A tabela a seguir indica o mapeamento de comandos de pesquisa as categorias apropriadas.

VSSComandos @read @write @fast @slow
FT.CREATE S S
FT.DROPINDEX S S
FT.LIST S S
FT.INFO S S
FT.SEARCH S S
FT.AGGREGATE S S
FT.PROFILE S S
FT.ALIASADD S S
FT.ALIASDEL S S
FT.ALIASUPDATE S S
FT._ALIASLIST S S
FT.EXPLAIN S S
FT.EXPLAINCLI S S
FT.CONFIG S S

Aplicação ACLs a um cluster para MemoryDB

Para usar o MemoryDBACLs, siga as seguintes etapas:

  1. Crie um ou mais usuários.

  2. Crie um ACL e adicione usuários à lista.

  3. Atribua o ACL a um cluster.

Essas etapas estão descritas em detalhes a seguir.

Criação de usuários e listas de controle de acesso com o console e CLI

As informações do usuário para ACLs usuários são um nome de usuário e, opcionalmente, uma senha e uma string de acesso. A string de acesso fornece o nível de permissão em chaves e comandos. O nome é exclusivo para o usuário e é passado para o mecanismo.

Certifique-se de que as permissões de usuário fornecidas façam sentido com a finalidade pretendida doACL. Por exemplo, se você criar uma ACL chamadaAdministrators, qualquer usuário adicionado a esse grupo deverá ter sua string de acesso definida como acesso total às teclas e comandos. Para usuários em um e-commerceACL, você pode definir suas cadeias de acesso como acesso somente para leitura.

O MemoryDB configura automaticamente um usuário padrão por conta com um nome de usuário "default". Ele não será associado a nenhum cluster, a menos que seja explicitamente adicionado a umACL. Você não pode excluir ou modificar esse usuário. Esse usuário se destina à compatibilidade com o comportamento padrão das OSS versões anteriores do Redis e tem uma string de acesso que permite chamar todos os comandos e acessar todas as chaves.

Um “acesso aberto” imutável ACL será criado para cada conta que contém o usuário padrão. Esse é o único ACL do qual o usuário padrão pode ser membro. Ao criar um cluster, você deve selecionar um ACL para associar ao cluster. Embora você tenha a opção de aplicar o “acesso aberto” ACL com o usuário padrão, é altamente recomendável criar um ACL com usuários que tenham permissões restritas às suas necessidades comerciais.

Os clusters que não estão TLS habilitados devem usar o “acesso aberto” ACL para fornecer autenticação aberta.

ACLspode ser criado sem usuários. Um vazio não ACL teria acesso a um cluster e só pode ser associado a clusters TLS habilitados.

Ao criar um usuário, você pode configurar até duas senhas. Quando você modifica uma senha, todas as conexões existentes para os clusters são mantidas.

Em particular, esteja ciente dessas restrições de senha de usuário ao usar ACLs o MemoryDB:

  • As senhas devem ter de 16 a 128 caracteres imprimíveis.

  • Os seguintes caracteres não alfanuméricos não são permitidos: , "" / @.

Gerenciando usuários com o console e CLI

Para criar usuários no console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação à esquerda, escolha Usuários.

  3. Escolha Criar usuário

  4. Na página Criar usuário, insira um Nome.

    As restrições de nomenclatura de cluster são as seguintes:

    • Devem conter 1 a 40 caracteres alfanuméricos ou hifens.

    • Deve começar com uma letra.

    • Não podem conter dois hifens consecutivos.

    • Não podem terminar com um hífen.

  5. Em Senhas, você pode inserir até duas senhas.

  6. Em String de acesso, insira uma cadeia de caracteres de acesso. A string de acesso define o nível de permissão para quais chaves e comandos o usuário é permitido.

  7. Para tags, você pode, opcionalmente, aplicar tags para pesquisar e filtrar seus usuários ou monitorar seus AWS custos.

  8. Escolha Criar.

Para criar um usuário usando o CLI
  • Use o comando create-user para criar um usuário.

    Para Linux, macOS ou Unix:

    aws memorydb create-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*" \ --authentication-mode \ Passwords="abc",Type=password

    Para Windows:

    aws memorydb create-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*" ^ --authentication-mode \ Passwords="abc",Type=password
Para modificar usuários no console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação à esquerda, escolha Usuários.

  3. Escolha o botão de opção ao lado do usuário que você deseja modificar e escolha Ações->Modificar

  4. Se você quiser modificar uma senha, escolha o botão de opção Modificar senhas. Observe que, se você tiver duas senhas, deverá inserir as duas ao modificar uma delas.

  5. Se você estiver atualizando a string de acesso, insira a nova.

  6. Escolha Modificar.

Para modificar um usuário usando o CLI
  1. Use o comando update-user para modificar um usuário.

  2. Quando um usuário é modificado, as listas de controle de acesso associadas ao usuário são atualizadas, junto com quaisquer clusters associados aoACL. Todas as conexões existentes são mantidas. Veja os exemplos a seguir.

    Para Linux, macOS ou Unix:

    aws memorydb update-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*"

    Para Windows:

    aws memorydb update-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*"
Para visualizar os detalhes do usuário no console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação à esquerda, escolha Usuários.

  3. Escolha o usuário em Nome de usuário ou use a caixa de pesquisa para localizar o usuário.

  4. Em Configurações do usuário, você pode revisar a string de acesso, a contagem de senhas, o status e o Amazon Resource Name (ARN) do usuário.

  5. Em Listas de controle de acesso (ACL), você pode revisar ACL a que o usuário pertence.

  6. Em Tags, você pode revisar todas as tags associadas ao usuário.

Use o comando describe-users para ver os detalhes de um usuário.

aws memorydb describe-users \ --user-name my-user-name
Para excluir usuários no console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação à esquerda, escolha Usuários.

  3. Escolha o botão de opção ao lado do usuário que você deseja modificar e escolha Ações->Excluir

  4. Para confirmar, digite delete na caixa de texto de confirmação e, em seguida, selecione Excluir.

  5. Para cancelar, escolha Cancelar.

Para excluir um usuário usando o CLI
  • Use o comando delete-user para excluir um usuário.

    A conta é excluída e removida de todas as listas de controle de acesso às quais pertence. Veja um exemplo a seguir.

    Para Linux, macOS ou Unix:

    aws memorydb delete-user \ --user-name user-name-2

    Para Windows:

    aws memorydb delete-user ^ --user-name user-name-2

Gerenciando listas de controle de acesso com o console e CLI

Você pode criar listas de controle de acesso para organizar e controlar o acesso de usuários a um ou mais clusters, conforme mostrado a seguir.

Use o procedimento a seguir para gerenciar as listas de controle de acesso usando o console.

Como criar uma Lista de controle de acesso usando o console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação esquerdo, escolha Listas de controle de acesso (ACL).

  3. Escolha Criar ACL.

  4. Na página Criar lista de controle de acesso (ACL), insira um ACL nome.

    As restrições de nomenclatura de cluster são as seguintes:

    • Devem conter 1 a 40 caracteres alfanuméricos ou hifens.

    • Deve começar com uma letra.

    • Não podem conter dois hifens consecutivos.

    • Não podem terminar com um hífen.

  5. Em Usuários selecionados, siga um destes procedimentos:

    1. Crie um novo usuário selecionando Criar usuário

    2. Adicione usuários escolhendo Gerenciar e, em seguida, selecionando usuários na caixa de diálogo Gerenciar usuários, depois selecione Escolher.

  6. Para tags, você pode, opcionalmente, aplicar tags para pesquisar e filtrar ACLs ou rastrear seus AWS custos.

  7. Escolha Criar.

Use os procedimentos a seguir para criar uma lista de controle de acesso usando CLI o.

Para criar um novo ACL e adicionar um usuário usando o CLI
  • Use o comando create-acl para criar um. ACL

    Para Linux, macOS ou Unix:

    aws memorydb create-acl \ --acl-name "new-acl-1" \ --user-names "user-name-1" "user-name-2"

    Para Windows:

    aws memorydb create-acl ^ --acl-name "new-acl-1" ^ --user-names "user-name-1" "user-name-2"
Para modificar uma lista de controle de acesso usando o console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação esquerdo, escolha Listas de controle de acesso (ACL).

  3. Escolha o ACL que você deseja modificar e, em seguida, escolha Modificar

  4. Na página Modificar, em Usuários selecionados, faça o seguinte:

    1. Crie um novo usuário escolhendo Criar usuário para adicionar aoACL.

    2. Adicione ou remova usuários escolhendo Gerenciar e, em seguida, selecionando ou desmarcando usuários na caixa de diálogo Gerenciar usuários e depois, selecionando Escolher.

  5. Na página Criar lista de controle de acesso (ACL), insira um ACL nome.

    As restrições de nomenclatura de cluster são as seguintes:

    • Devem conter 1 a 40 caracteres alfanuméricos ou hifens.

    • Deve começar com uma letra.

    • Não podem conter dois hifens consecutivos.

    • Não podem terminar com um hífen.

  6. Em Usuários selecionados, siga um destes procedimentos:

    1. Crie um novo usuário selecionando Criar usuário

    2. Adicione usuários escolhendo Gerenciar e, em seguida, selecionando usuários na caixa de diálogo Gerenciar usuários, depois selecione Escolher.

  7. Escolha Modificar para salvar suas alterações ou Cancelar para descartá-las.

Para modificar um ACL adicionando novos usuários ou removendo membros atuais usando o CLI
  • Use o comando update-acl para modificar um. ACL

    Para Linux, macOS ou Unix:

    aws memorydb update-acl --acl-name new-acl-1 \ --user-names-to-add user-name-3 \ --user-names-to-remove user-name-2

    Para Windows:

    aws memorydb update-acl --acl-name new-acl-1 ^ --user-names-to-add user-name-3 ^ --user-names-to-remove user-name-2
nota

Todas as conexões abertas pertencentes a um usuário removido de um ACL são encerradas por esse comando.

Para ver ACL detalhes no console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação esquerdo, escolha Listas de controle de acesso (ACL).

  3. Escolha o ACL ACLsubnome ou use a caixa de pesquisa para encontrar ACL o.

  4. Em Usuários, você pode revisar a lista de usuários associados aoACL.

  5. Em Clusters associados, você pode revisar o cluster ACL ao qual pertence.

  6. Em Tags, você pode revisar todas as tags associadas aoACL.

Use o comando describe-acls para ver detalhes de um. ACL

aws memorydb describe-acls \ --acl-name test-group
Para excluir uma lista de controle de acesso usando o console
  1. Faça login no AWS Management Console e abra o console do MemoryDB em. https://console.aws.amazon.com/memorydb/

  2. No painel de navegação esquerdo, escolha Listas de controle de acesso (ACL).

  3. Escolha o ACL que você deseja modificar e, em seguida, escolha Excluir

  4. Na página Excluir, insira delete a caixa de confirmação e escolha Excluir ou Cancelar para evitar a exclusão doACL.

O ACL próprio, não os usuários pertencentes ao grupo, é excluído.

Para excluir um ACL usando o CLI
  • Use o comando delete-acl para excluir um. ACL

    Para Linux, macOS ou Unix:

    aws memorydb delete-acl / --acl-name

    Para Windows:

    aws memorydb delete-acl ^ --acl-name

    Os exemplos anteriores retornam a seguinte resposta.

    aws memorydb delete-acl --acl-name "new-acl-1" { "ACLName": "new-acl-1", "Status": "deleting", "EngineVersion": "6.2", "UserNames": [ "user-name-1", "user-name-3" ], "clusters": [], "ARN":"arn:aws:memorydb:us-east-1:493071037918:acl/new-acl-1" }

Atribuição de listas de controle de acesso a clusters

Depois de criar ACL e adicionar usuários, a etapa final da implementação ACLs é atribuí-los ACL a um cluster.

Atribuindo listas de controle de acesso a clusters usando o console

Para adicionar um ACL a um cluster usando Criação de um cluster do MemoryDB o. AWS Management Console

Atribuindo listas de controle de acesso a clusters usando o AWS CLI

A AWS CLI operação a seguir cria um cluster com a criptografia em trânsito (TLS) ativada e o acl-name parâmetro com o valormy-acl-name. Substitua o grupo de sub-redes subnet-group por um grupo de sub-redes que exista.

Principais parâmetros
  • --engine-version: deve ser 6.2.

  • --tls-enabled— Usado para autenticação e para associar umACL.

  • --acl-name: esse valor fornece listas de controle de acesso compostas por usuários com permissões de acesso especificadas para o cluster.

Para Linux, macOS ou Unix:

aws memorydb create-cluster \ --cluster-name "new-cluster" \ --description "new-cluster" \ --engine-version "6.2" \ --node-type db.r6g.large \ --tls-enabled \ --acl-name "new-acl-1" \ --subnet-group-name "subnet-group"

Para Windows:

aws memorydb create-cluster ^ --cluster-name "new-cluster" ^ --cluster-description "new-cluster" ^ --engine-version "6.2" ^ --node-type db.r6g.large ^ --tls-enabled ^ --acl-name "new-acl-1" ^ --subnet-group-name "subnet-group"

A AWS CLI operação a seguir modifica um cluster com a criptografia em trânsito (TLS) ativada e o acl-name parâmetro com o valornew-acl-2.

Para Linux, macOS ou Unix:

aws memorydb update-cluster \ --cluster-name cluster-1 \ --acl-name "new-acl-2"

Para Windows:

aws memorydb update-cluster ^ --cluster-name cluster-1 ^ --acl-name "new-acl-2"