Como faço para acessar um cluster privado do Amazon Redshift a partir da minha máquina local?

6 minuto de leitura
0

Quero usar meu computador local para acessar um cluster do Amazon Redshift que está em uma sub-rede privada da Amazon Virtual Private Cloud (Amazon VPC).

Breve descrição

Use uma instância do Amazon Elastic Compute Cloud (Amazon EC2) e o SQL Workbench/J para criar um túnel SSH. O túnel encaminha todo o tráfego de entrada da máquina local para o cluster privado do Amazon Redshift.

Resolução

Criar o Amazon VPC, a instância EC2 e o cluster do Amazon Redshift

Para criar o Amazon VPC, a instância EC2 e o cluster Amazon Redshift, realize as etapas a seguir:

  1. Crie um Amazon VPC com sub-redes públicas e privadas.

  2. Inicie uma instância do EC2 de uma Amazon Machine Image (AMI) do Amazon Linux 2 na sub-rede pública da Amazon VPC. Ao criar a instância, escolha as opções a seguir:
    Para Atribuir IP público automaticamente, escolha Habilitar. Ou atribua um endereço IP elástico à instância.
    Crie um novo grupo de segurança com uma regra SSH.
    Em Fonte, escolha Personalizado, em seguida, insira o bloco CIDR. Ou escolha Meu IP.

  3. No console do Amazon Redshift, crie uma sub-rede de cluster. Insira as informações a seguir:
    Para ID da VPC, escolha a ID da sua Amazon VPC.
    Em ID de sub-rede, escolha a ID da sub-rede privada.

  4. Crie um novo grupo de segurança.

  5. Adicione uma regra ao grupo de segurança que permita o tráfego de entrada do grupo de segurança da instância. Insira as informações a seguir:
    Em Tipo, escolha TCP personalizada.
    Em Intervalo de porta, insira a porta padrão para o Amazon Redshift, 5439.
    Em Fonte, escolha Personalizado e insira o nome do seu grupo de segurança.

  6. Inicie um novo cluster do Amazon Redshift ou restaure um cluster a partir de um snapshot. Na página Configuração adicional, escolha as opções a seguir:
    Em Escolha uma VPC, escolha sua Amazon VPC.
    Em grupo de sub-redes do cluster, escolha seu grupo de sub-redes.
    Para Publicamente acessível, escolha Não.
    Para grupos de segurança da VPC, escolha seu grupo de segurança. Espere até que o cluster esteja no estado disponível.

  7. Execute o comando a seguir para se conectar à instância EC2 a partir de sua máquina local:

    ssh -i "your_key.pem" ec2-user@your_EC2_endpoint

    Observação: Substitua your_key.pem e your_EC2_endpoint por seus valores. Para obter mais informações, consulte Conectar-se à sua instância do Linux a partir do Linux ou macOS usando SSH.

  8. Execute o comando a seguir para instalar o telnet:

    sudo yum install telnet
  9. Para usar o telnet para testar a conexão com seu cluster do Amazon Redshift, execute o comando a seguir:

    telnet cluster-endpoint cluster-port

    Observação: substitua o cluster-endpoint e o cluster-port por seus valores.
    Ou execute o comando a seguir para usar dig para confirmar que sua máquina local pode acessar o endereço IP privado do cluster do Amazon Redshift:

    dig cluster-endpoint

    Observação: substitua o cluster-endpoint pelo endpoint de seu cluster.

Criar o túnel

Para criar um túnel, conclua as etapas a seguir:

  1. Instale o SQL Workbench/J em sua máquina local.
  2. Baixe o mais recente driver do JDBC Amazon Redshift.
  3. No SQL Workbench/J, use o driver JDBC para criar um perfil de conexão.
  4. Para configurar a conexão SSH no SQL Workbench/J, escolha SSH e insira as seguintes informações:
    Em Nome do host SSH, insira o endereço IP público ou o DNS da instância EC2.
    Em Porta SSH, insira 22.
    Em Nome de usuário, insira ec2-user.
    Em Arquivo de chave privada, insira o arquivo .pem que você baixou ao criar a instância EC2.
    Em Senha, mantenha o campo em branco.
    Em Porta local, insira qualquer porta local livre. Seu cluster do Amazon Redshift usa a porta 5439 por padrão.
    Em Nome do host do DB, insira o endpoint do cluster. O endpoint não pode incluir o número da porta ou o nome do banco de dados.
    Para a Porta do DB, digite ** 5439**.
    Selecione a opção Reescrever URL do JDBC.
  5. Escolha OK.
  6. Certifique-se de inserir corretamente o URL do JDBC, o nome do superusuário e a senha.
  7. Para confirmar se a conexão está funcionando, escolha Testar. Para obter mais informações, consulte Conectando-se por meio de um túnel SSH no site do SQL Workbench/J.

(Opcional) Modificar a conexão de um usuário do AWS Identity and Access Management (IAM)

Para se conectar ao cluster do Amazon Redshift como um usuário do IAM, conclua as etapas a seguir para modificar o perfil de conexão:

  1. Analise a política de usuário IAM. A política de usuário IAM deve permitir as ações GetClusterCredentials, JoinGroup e CreateClusterUser do Amazon Redshift para os recursos dbgroup, dbuser e dbname. Veja a seguir um exemplo de política de usuário IAM:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "redshift:GetClusterCredentials",
                    "redshift:CreateClusterUser",
                    "redshift:JoinGroup"
                ],
                "Resource": [
                    "arn:aws:redshift:eu-west-2:012345678912:dbgroup:clustername/group_name",
                    "arn:aws:redshift:eu-west-2:012345678912:dbuser:clustername/user_name or * ",
                    "arn:aws:redshift:eu-west-2:012345678912:dbname:clustername/database_name"
                ]
            }
        ]
    }
    Observação: substitua us-west-2 pela região da AWS em que seu cluster está, 012345678912 pelo ID da sua conta da AWS e user_name pelo nome do usuário do Amazon Redshift. Ou você pode usar "*" em vez de um nome de usuário específico.
  2. No SQL Workbench/J, altere a primeira parte da URL JDBC do perfil de conexão para jdbc:redshift:iam. Por exemplo, altere a URL do JDBC para jdbc:redshift:iam://127.0.0.1:5439/example.
  3. Escolha Propriedades estendidas e, em seguida, insira as seguintes informações:
    Em AccessKeyID, insira o ID da chave de acesso do usuário IAM.
    Em SecretAccessKey, insira a chave de acesso secreta do usuário IAM.
    (Opcional) Em DbGroups, escolha essa opção para forçar o usuário IAM a ingressar em um grupo existente.
    Em DbUser, insira o nome do usuário IAM.
    Em AutoCreate, defina a opção como true.
    Em ClusterID, insira o nome do cluster do Amazon Redshift.
    Em Região, insira a região em que o cluster está, como, por exemplo, us-east-1.
  4. Na página de perfil de conexão do cluster, selecione Testar.

Informações relacionadas

Por que não consigo me conectar ao meu cluster do Amazon Redshift?

AWS OFICIAL
AWS OFICIALAtualizada há 7 meses