Acessar o cluster - 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á.

Acessar o cluster

Suas instâncias do MemoryDB foram projetadas para serem acessadas por meio de uma instância do Amazon EC2.

Você pode acessar seu nó do MemoryDB de uma instância do Amazon EC2 na mesma Amazon VPC. Ou, usando o emparelhamento da VPC, você pode acessar seu nó do MemoryDB de um Amazon EC2 em uma Amazon VPC diferente.

Conceder acesso a seus clusters

Você pode se conectar ao seu cluster do MemoryDB somente a partir de uma instância do Amazon EC2 que esteja sendo executada na mesma Amazon VPC. Nesse caso, você precisará conceder entrada de rede ao cluster.

Para conceder entrada na rede de um grupo de segurança da Amazon VPC para um cluster
  1. Faça login no AWS Management Console e abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação esquerdo, em Network & Security, escolha Security Groups.

  3. Na lista de grupos de segurança, escolha o de segurança para a sua Amazon VPC. A menos que você tenha criado um grupo de segurança para uso com o MemoryDB, esse grupo de segurança será chamado default.

  4. Escolha a guia Inbound e faça o seguinte:

    1. Selecione a opção Editar.

    2. Escolha Adicionar regra.

    3. Na coluna Tipo, escolha Regra TCP personalizada.

    4. Na caixa Port range, digite o número da porta para o nó do cluster. Esse número deve ser o mesmo que você especificou quando você executou o cluster. A porta padrão para Redis OSS é. 6379

    5. Na caixa Fonte, escolha Qualquer lugar, que tem o intervalo de porta (0.0.0.0/0) para que qualquer instância do Amazon EC2 que você inicie na sua Amazon VPC possa se conectar aos seus nós do MemoryDB.

      Importante

      Abrir o cluster do MemoryDB para 0.0.0.0/0 não expõe o cluster à Internet, pois ele não possui um endereço IP público e, portanto, não pode ser acessado de fora da VPC. No entanto, o grupo de segurança padrão pode ser aplicado a outras instâncias do Amazon EC2 na conta do cliente, e essas instâncias podem ter um endereço IP público. Se eles estiverem executando algo na porta padrão, esse serviço poderá ser exposto involuntariamente. Portanto, recomendamos criar um grupo de segurança de VPC que será usado exclusivamente pelo MemoryDB. Para obter mais informações, consulte Grupos de segurança personalizados.

    6. Escolha Salvar.

Quando você ativa uma instância do Amazon EC2 na sua Amazon VPC, essa instância poderá se conectar ao seu cluster do MemoryDB.

Acessando recursos do MemoryDB de fora AWS

MemoryDB é um serviço projetado para ser usado internamente em sua VPC. O acesso externo não é recomendado devido à latência do tráfego da Internet e preocupações de segurança. No entanto, se o acesso externo ao MemoryDB for necessário para fins de teste ou desenvolvimento, poderá ser feito por meio de uma VPN.

Usando o AWS Client VPN, você permite acesso externo aos seus nós do MemoryDB com os seguintes benefícios:

  • Acesso restrito a usuários aprovados ou chaves de autenticação;

  • Tráfego criptografado entre o VPN Client e o endpoint AWS VPN;

  • Acesso limitado a sub-redes ou nós específicos;

  • Fácil revogação do acesso de usuários ou chaves de autenticação;

  • Conexões de auditoria;

Os procedimentos a seguir demonstram como:

Criar uma autoridade de certificação

É possível criar uma Autoridade de certificação (CA) usando diferentes técnicas ou ferramentas. Sugerimos o utilitário easy-rsa, fornecido pelo projeto OpenVPN. Independentemente da opção escolhida, mantenha as chaves seguras. O procedimento a seguir faz download dos scripts easy-rsa, cria a Autoridade de certificação e as chaves para autenticar o primeiro cliente de VPN:

  • Para criar os certificados iniciais, abra um terminal e faça o seguinte:

    • git clone https://github.com/OpenVPN/easy-rsa

    • cd easy-rsa

    • ./easyrsa3/easyrsa init-pki

    • ./easyrsa3/easyrsa build-ca nopass

    • ./easyrsa3/easyrsa build-server-full server nopass

    • ./easyrsa3/easyrsa build-client-full client1.domain.tld nopass

    Um subdiretório pki com os certificados será criado sob easy-rsa.

  • Envie o certificado do servidor para o Gerenciador de AWS certificados (ACM):

    • No console do ACM, selecione Gerenciador de certificados.

    • Selecione Importar certificado.

    • Informe o certificado de chave pública disponível no arquivo easy-rsa/pki/issued/server.crt no campo Corpo do certificado.

    • Cole a chave privada disponível no easy-rsa/pki/private/server.key no campo Chave privada do certificado. Selecione todas as linhas entre BEGIN AND END PRIVATE KEY (incluindo as linhas BEGIN e END).

    • Cole a chave pública da CA disponível no arquivo easy-rsa/pki/ca.crt no campo Cadeia de certificados.

    • Selecione Revisar e importar.

    • Selecione Importar.

    Para enviar os certificados do servidor ao ACM usando a AWS CLI, execute o seguinte comando: aws acm import-certificate --certificate fileb://easy-rsa/pki/issued/server.crt --private-key file://easy-rsa/pki/private/server.key --certificate-chain file://easy-rsa/pki/ca.crt --region region

    Anote o ARN do certificado para uso futuro.

Configurando componentes VPN AWS do cliente

Usando o AWS console

No AWS console, selecione Serviços e, em seguida, VPC.

Em Rede privada virtual (VPN), selecione Endpoints do Client VPN e faça o seguinte:

Configurando componentes AWS do Client VPN

  • Selecione Criar endpoint do Client VPN.

  • Especifique as seguintes opções:

    • CIDR de IPv4 de cliente: use uma rede privada com uma máscara de rede de pelo menos intervalo /22. Verifique se a sub-rede selecionada não entra em conflito com os endereços das redes da VPC. Exemplo: 10.0.0.0/22.

    • Em ARN do certificado de servidor, selecione o ARN do certificado importado anteriormente.

    • Selecione Usar autenticação mútua.

    • Em ARN do certificado de cliente, selecione o ARN do certificado importado anteriormente.

    • Selecione Criar endpoint do Client VPN.

Usando o AWS CLI

Execute o seguinte comando:

aws ec2 create-client-vpn-endpoint --client-cidr-block "10.0.0.0/22" --server-certificate-arn arn:aws:acm:us-east-1:012345678912:certificate/0123abcd-ab12-01a0-123a-123456abcdef --authentication-options Type=certificate-authentication,,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:012345678912:certificate/123abcd-ab12-01a0-123a-123456abcdef} --connection-log-options Enabled=false

Resultado do exemplo:

"ClientVpnEndpointId": "cvpn-endpoint-0123456789abcdefg", "Status": { "Code": "pending-associate" }, "DnsName": "cvpn-endpoint-0123456789abcdefg.prod.clientvpn.us-east-1.amazonaws.com" }

Associar as redes de destino ao endpoint de VPN

  • Selecione o novo endpoint de VPN e, depois, selecione a guia Associações.

  • Selecione Associar e especifique as opções a seguir.

    • VPC: selecione a VPC do cluster do MemoryDB.

    • Selecione uma das redes do cluster do MemoryDB. Em caso de dúvida, revise as redes nos Grupos de sub-redes no painel do MemoryDB.

    • Selecione Associar. Se necessário, repita as etapas para as redes restantes.

Usando o AWS CLI

Execute o seguinte comando:

aws ec2 associate-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --subnet-id subnet-0123456789abdcdef

Resultado do exemplo:

"Status": { "Code": "associating" }, "AssociationId": "cvpn-assoc-0123456789abdcdef" }

Analisar o grupo de segurança de VPN

O endpoint de VPN adotará automaticamente o grupo de segurança padrão da VPC. Verifique as regras de entrada e saída e confirme se o grupo de segurança permite o tráfego da rede VPN (definido nas configurações de endpoint de VPN) para as redes do MemoryDB nas portas de serviço (por padrão, 6379 para Redis).

Se você precisar alterar o grupo de segurança atribuído ao endpoint de VPN, faça o seguinte:

  • Selecione o grupo de segurança atual.

  • Selecione Apply Security Group (Aplicar grupo de segurança).

  • Selecione o novo grupo de segurança.

Usando o AWS CLI

Execute o seguinte comando:

aws ec2 apply-security-groups-to-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefga  --vpc-id vpc-0123456789abdcdef --security-group-ids sg-0123456789abdcdef

Resultado do exemplo:

"SecurityGroupIds": [ "sg-0123456789abdcdef" ] }

nota

O grupo de segurança do MemoryDB também precisa permitir o tráfego proveniente dos clientes de VPN. Os endereços dos clientes serão mascarados com o endereço do endpoint de VPN, de acordo com a rede VPC. Portanto, considere a rede VPC (não a rede dos clientes de VPN) ao criar a regra de entrada no grupo de segurança do MemoryDB.

Autorizar o acesso de VPN às redes de destino

Na guia Autorização, selecione Autorizar entrada e especifique o seguinte:

  • Rede de destino para habilitar o acesso: use 0.0.0.0/0 para permitir o acesso a qualquer rede (incluindo a Internet) ou restringir as redes/hosts do MemoryDB.

  • Em Conceder acesso a:, selecione Permitir acesso a todos os usuários.

  • Selecione Adicionar regras de autorização.

Usando o AWS CLI

Execute o seguinte comando:

aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --target-network-cidr 0.0.0.0/0 --authorize-all-groups

Resultado do exemplo:

{ "Status": { "Code": "authorizing" } }

Permitir o acesso à Internet dos clientes de VPN

Se você precisar navegar na Internet por meio da VPN, será necessário criar uma rota adicional. Selecione a guia Tabela de rotas e, depois, selecione Criar rota:

  • Destino da rota: 0.0.0.0/0

  • ID de sub-rede da VPC de destino: selecione uma das sub-redes associadas com acesso à Internet.

  • Selecione Criar rota.

Usando o AWS CLI

Execute o seguinte comando:

aws ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abdcdef

Resultado do exemplo:

{ "Status": { "Code": "creating" } }

Configurar o cliente de VPN

No painel do AWS Client VPN, selecione o endpoint de VPN criado recentemente e selecione Baixar configuração do cliente. Copie o arquivo de configuração e os arquivos easy-rsa/pki/issued/client1.domain.tld.crt e easy-rsa/pki/private/client1.domain.tld.key. Edite o arquivo de configuração e altere ou adicione os seguintes parâmetros:

  • cert: adicione uma nova linha com o parâmetro cert apontando para o arquivo client1.domain.tld.crt. Use o caminho completo para o arquivo. Exemplo: cert /home/user/.cert/client1.domain.tld.crt

  • cert: key: adicione uma nova linha com a chave de parâmetro apontando para o arquivo client1.domain.tld.key. Use o caminho completo para o arquivo. Exemplo: key /home/user/.cert/client1.domain.tld.key

Estabeleça a conexão VPN com o comando: sudo openvpn --config downloaded-client-config.ovpn

Revogar acesso

Se você precisar invalidar o acesso de uma chave de cliente específica, a chave precisará ser revogada na CA. Em seguida, envie a lista de revogação para o AWS Client VPN.

Revogar a chave com easy-rsa:

  • cd easy-rsa

  • ./easyrsa3/easyrsa revoke client1.domain.tld

  • Digite "sim" para continuar ou qualquer outra entrada para cancelar.

    Continue with revocation: `yes` ... * `./easyrsa3/easyrsa gen-crl

  • Uma CRL atualizada foi criada. Arquivo de CRL: /home/user/easy-rsa/pki/crl.pem

Importando a lista de revogação para o Client VPN AWS :

  • No AWS Management Console, selecione Serviços e, em seguida, VPC.

  • Selecione Endpoints do Client VPN.

  • Selecione o endpoint do Client VPN e, depois, selecione Ações -> Importar CRL de certificado de cliente.

  • Cole o conteúdo do arquivo crl.pem.

Usando o AWS CLI

Execute o seguinte comando:

aws ec2 import-client-vpn-client-certificate-revocation-list --certificate-revocation-list file://./easy-rsa/pki/crl.pem --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg

Resultado do exemplo:

Example output: { "Return": true }