Como faço para acessar um cluster privado do Amazon Redshift a partir da minha máquina local?
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:
-
Crie um Amazon VPC com sub-redes públicas e privadas.
-
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. -
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. -
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. -
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. -
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.
-
Execute o comando a seguir para instalar o telnet:
sudo yum install telnet
-
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:
- Instale o SQL Workbench/J em sua máquina local.
- Baixe o mais recente driver do JDBC Amazon Redshift.
- No SQL Workbench/J, use o driver JDBC para criar um perfil de conexão.
- 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. - Escolha OK.
- Certifique-se de inserir corretamente o URL do JDBC, o nome do superusuário e a senha.
- 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:
- 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:
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.{ "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" ] } ] }
- 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.
- 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. - 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?
Vídeos relacionados
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos