Conectar-se ao Amazon Redshift Serverless - Amazon Redshift

Conectar-se ao Amazon Redshift Serverless

Depois de configurar a instância do Amazon Redshift Serverless, você pode se conectar a ela por vários métodos, descritos a seguir. Caso tenha várias equipes ou projetos e queira gerenciar custos separadamente, você pode usar Contas da AWS separadas.

Para obter uma lista de Regiões da AWS nas quais o Amazon Redshift sem servidor está disponível, consulte os endpoints listados para a API do Redshift sem servidor na Referência geral da Amazon Web Services.

O Amazon Redshift Serverless se conecta ao ambiente sem servidor em sua Conta da AWS na Região da AWS atual. O Amazon Redshift sem servidor é executado em uma VPC dentro dos intervalos de porta de 5431 a 5455 e de 8191 a 8215. O padrão é 5439. No momento, só é possível alterar as portas com a operação de API UpdateWorkgroup e a operação update-workgroup da AWS CLI.

Conectar-se ao Amazon Redshift Serverless

Você pode se conectar a um banco de dados (chamado dev) no Amazon Redshift sem servidor com a sintaxe a seguir.

workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:port/dev

Por exemplo, a string de conexão a seguir especifica a região us-east-1.

default.123456789012.us-east-1.redshift-serverless.amazonaws.com:5439/dev

Conectar-se ao Amazon Redshift Serveless por meio de drivers JDBC

Você pode usar um dos métodos a seguir para se conectar ao Amazon Redshift Serverless com o cliente SQL de sua preferência usando o driver JDBC versão 2 fornecido pelo Amazon Redshift.

Para se conectar com credenciais de login para autenticação do banco de dados usando o driver JDBC versão 2.1.x ou posterior, use a sintaxe a seguir. O número da porta é opcional; se não estiver incluído, o Amazon Redshift Serverless usará como padrão a porta número 5439. Você pode mudar para outra porta do intervalo de portas 5431–5455 ou 8191–8215. Para alterar a porta padrão de um endpoint de tecnologia sem servidor, use a AWS CLI e a API do Amazon Redshift.

jdbc:redshift://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev

Por exemplo, a string de conexão a seguir especifica o padrão do grupo de trabalho, o ID da conta 123456789012 e a região us-east-2.

jdbc:redshift://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev

Para se conectar ao IAM usando o driver JDBC versão 2.1.x ou posterior, use a sintaxe a seguir. O número da porta é opcional; se não estiver incluído, o Amazon Redshift Serverless usará como padrão a porta número 5439. Você pode mudar para outra porta do intervalo de portas 5431–5455 ou 8191–8215. Para alterar a porta padrão de um endpoint de tecnologia sem servidor, use a AWS CLI e a API do Amazon Redshift.

jdbc:redshift:iam://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev

Por exemplo, a string de conexão a seguir especifica o padrão do grupo de trabalho, o ID da conta 123456789012 e a região us-east-2.

jdbc:redshift:iam://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev

Para ODBC, use a sintaxe a seguir.

Driver={Amazon Redshift (x64)}; Server=workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com; Database=dev

Se você estiver usando uma versão do driver JDBC anterior à 2.1.0.9 e se conectar ao IAM, será necessário usar a sintaxe a seguir.

jdbc:redshift:iam://redshift-serverless-<name>:aws-region/database-name

Por exemplo, a string de conexão a seguir especifica o padrão do grupo de trabalho e a Região da AWS us-east-1.

jdbc:redshift:iam://redshift-serverless-default:us-east-1/dev

Para obter mais informações sobre drivers, consulte Configurar conexões no Amazon Redshift.

Como encontrar uma string de conexão JDBC e ODBC

Para conectar-se ao grupo de trabalho com a ferramenta do cliente SQL, você precisa ter a string de conexão JDBC ou ODBC. Você pode encontrar a string de conexão no console do Amazon Redshift sem servidor, na página de detalhes de um grupo de trabalho.

Como encontrar a string de conexão de um grupo de trabalho
  1. Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.

  2. No menu de navegação, escolha Redshift sem servidor.

  3. No menu de navegação, escolha Configuração do grupo de trabalho e selecione o nome do grupo de trabalho na lista para abrir seus detalhes.

  4. O URL do JDBC e URL do ODBC estão disponíveis, juntamente com detalhes adicionais, na seção Informações gerais. Cada string é baseada na região da AWS em que o grupo de trabalho é executado. Escolha o ícone ao lado da string de conexão apropriada para copiá-la.

Conectar-se ao Amazon Redshift Serverless com a API de dados

Também é possível usar a API de dados do Amazon Redshift para se conectar ao Amazon Redshift Serverless. Use o parâmetro workgroup-name em vez do cluster-identifier nas chamadas da AWS CLI.

Para obter mais informações sobre a API de dados, consulte Usar a API de dados Amazon Redshift. Por exemplo, para chamar o código da API de dados em Python e outros exemplos, consulte Conceitos básicos da API de dados do Redshift e veja as pastas quick-start e use-cases no GitHub.

Conectar-se com SSL ao Amazon Redshift Serverless

Configurar uma conexão segura com o Amazon Redshift Serverless

Para oferecer compatibilidade com conexões SSL, o Redshift sem servidor cria e instala um certificado SSL emitido pelo AWS Certificate Manager (ACM) para cada grupo de trabalho. Os certificados ACM são publicamente confiáveis pela maioria dos sistemas operacionais, navegadores da Web e clientes. Poderá ser necessário baixar um pacote de certificados, caso seus clientes ou aplicações SQL se conectem ao Redshift sem servidor usando SSL com a opção de conexão sslmode definida como require, verify-ca ou verify-full. Se o cliente precisar de um certificado, o Redshift sem servidor fornecerá um certificado em pacote da seguinte forma:

  • Baixe o pacote em https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt.

    • O número de soma de verificação MD5 esperado é 418dea9b6d5d5de7a8f1ac42e164cdcf.

    • O número da soma de verificação sha256 é 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

    Não use o pacote de certificados anterior localizado em https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt.

  • Na Região da AWS da China, baixe o pacote de https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt.

    • O número de soma de verificação MD5 esperado é 418dea9b6d5d5de7a8f1ac42e164cdcf.

    • O número da soma de verificação sha256 é 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

    Não use os pacotes de certificados anteriores localizados em https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ca-bundle.crt e https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem

Importante

O Redshift sem servidor mudou a maneira como os certificados SSL são gerenciados. Talvez seja necessário atualizar os certificados CA raiz confiáveis atuais para continuar se conectando aos grupos de trabalho usando SSL. Para ter mais informações sobre certificados do ACM para conexões SSL, consulte Transição para certificados ACM das conexões SSL.

Por padrão, os bancos de dados do grupo de trabalho aceitam as conexões que usam ou não SSL.

Para criar um grupo de trabalho que só aceite conexões SSL, use o comando create-workgroup e defina o parâmetro require_ssl como true. Para usar o exemplo a seguir, substitua yourNamespaceName pelo nome do namespace e substitua yourWorkgroupName pelo nome do grupo de trabalho.

aws redshift-serverless create-workgroup \ --namespace-name yourNamespaceName \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=require_ssl,parameterValue=true

Para atualizar um grupo de trabalho existente que só aceite conexões SSL, use o comando update-workgroup e defina o parâmetro require_ssl como true. Observe que o Redshift sem servidor reiniciará o grupo de trabalho ao atualizar o parâmetro require_ssl. Para usar o exemplo a seguir, substitua yourWorkgroupName pelo nome do grupo de trabalho.

aws redshift-serverless update-workgroup \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=require_ssl,parameterValue=true

O Amazon Redshift oferece suporte ao protocolo de acordo de chave Elliptic Curve Diffie—Hellman Ephemeral (ECDHE). Com o ECDHE, o cliente e o servidor têm, cada um, um par de chaves públicas/privadas de curva elíptica que é usado para estabelecer um segredo compartilhado através de um canal inseguro. Não é necessário configurar nada no Amazon Redshift para habilitar o ECDHE. Se você se conectar a partir de uma ferramenta de cliente SQL que usa ECDHE para criptografar a comunicação entre o cliente e o servidor, o Amazon Redshift usa a lista de cifras fornecida para fazer a conexão apropriada. Para obter mais informações, consulte Elliptic curve diffie—hellman na Wikipedia e Cifras no site do OpenSSL.

Configurar uma conexão SSL compatível com FIPS com o Amazon Redshift sem servidor

Para criar um grupo de trabalho que utilize conexões SSL compatíveis com FIPS, use o comando create-workgroup e defina o parâmetro use_fips_ssl como true. Para usar o exemplo a seguir, substitua yourNamespaceName pelo nome do namespace e substitua yourWorkgroupName pelo nome do grupo de trabalho.

aws redshift-serverless create-workgroup \ --namespace-name yourNamespaceName \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=use_fips_ssl,parameterValue=true

Para atualizar um grupo de trabalho existente que utilize conexões SSL compatíveis com FIPS, use o comando update-workgroup e defina o parâmetro use_fips_ssl como true. Observe que o Redshift sem servidor reiniciará o grupo de trabalho ao atualizar o parâmetro use_fips_ssl. Para usar o exemplo a seguir, substitua yourWorkgroupName pelo nome do grupo de trabalho.

aws redshift-serverless update-workgroup \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=use_fips_ssl,parameterValue=true

Para ter mais informações sobre como configurar o Redshift sem servidor para usar conexões compatíveis com FIPS, consulte use_fips_ssl no Guia do desenvolvedor de banco de dados do Amazon Redshift.

Conexão com o Amazon Redshift Serverless por um endpoint da VPC gerenciado pelo Amazon Redshift

Conectar-se ao Amazon Redshift Serverless de outros endpoints da VPC

Para obter informações sobre como instalar ou configurar um endpoint da VPC gerenciado para um grupo de trabalho do Amazon Redshift sem servidor, consulte Trabalhando com endpoints da VPC gerenciados por Redshift no Amazon Redshift.

Conexão ao Amazon Redshift sem servidor por um endpoint da VPC do Redshift em outra conta ou região

Conexão ao Amazon Redshift sem servidor por um endpoint da VPC cruzado

O Amazon Redshift Serverless é provisionado em uma VPC. Você pode conceder acesso a uma VPC em outra conta para acessar o Amazon Redshift sem servidor na conta. Isso é semelhante a uma conexão por um endpoint da VPC gerenciado, mas, nesse caso, a conexão se origina, por exemplo, em um cliente do banco de dados em outra conta. Existem algumas operações que é possível realizar:

  • O proprietário de um banco de dados pode conceder acesso a uma VPC contendo o Amazon Redshift sem servidor para outra conta na mesma região.

  • Um proprietário do banco de dados pode revogar o acesso ao Amazon Redshift sem servidor.

O principal benefício do acesso entre contas é permitir uma colaboração mais fácil no banco de dados. Os usuários não precisam ser provisionados na conta que contém o banco de dados para acessá-lo, o que reduz etapas de configuração e economiza tempo.

Permissões necessárias para conceder acesso a uma VPC em outra conta

Para conceder acesso ou alterar o acesso permitido, o concessor exige uma política de permissões atribuída com as seguintes permissões:

  • redshift-serverless:PutResourcePolicy

  • redshift-serverless:GetResourcePolicy

  • redshift-serverless:DeleteResourcePolicy

  • ec2:CreateVpcEndpoint

  • ec2:ModifyVpcEndpoint

Talvez você precise de outras permissões especificadas na política AWS gerenciada AmazonRedShiftFullAccess. Para obter mais informações, consulte Granting permissions to Amazon Redshift Serverless.

O beneficiário exige uma política de permissões atribuída com as seguintes permissões:

  • redshift-serverless:ListWorkgroups

  • redshift-serverless:CreateEndpointAccess

  • redshift-serverless:UpdateEndpointAccess

  • redshift-serverless:GetEndpointAccess

  • redshift-serverless:ListEndpointAccess

  • redshift-serverless:DeleteEndpointAccess

Como prática recomendada, anexe políticas de permissões a um perfil do IAM e, depois, atribua-as a usuários e grupos, conforme necessário. Para obter mais informações, consulte Gerenciamento de identidade e acesso no Amazon Redshift.

Esta é uma política de recursos de exemplo usada para configurar o acesso entre VPCs:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountCrossVPCAccess", "Effect": "Allow", "Principal": { "AWS": [ "123456789012", "234567890123" ] }, "Action": [ "redshift-serverless:CreateEndpointAccess", "redshift-serverless:UpdateEndpointAccess", "redshift-serverless:DeleteEndpointAccess", "redshift-serverless:GetEndpointAccess" ], "Condition": { "ArnLike": { "redshift-serverless:AuthorizedVpc": [ "arn:aws:ec2:us-east-1:123456789012:vpc/*", "arn:aws:ec2:us-east-1:234567890123:vpc/vpc-456", "arn:aws:ec2:us-east-1:234567890123:vpc/vpc-987" ] } } } } ] }

Os procedimentos a seguir nesta seção pressupõem que o usuário que os executa tenha as permissões atribuídas indicadas, por exemplo, por meio de um perfil do IAM atribuído que tenha as permissões listadas. Os procedimentos também pressupõem que o grupo de trabalho tenha um perfil do IAM associado às permissões de recurso indicadas.

Concessão de acesso à VPC para outras contas, usando o console

Este procedimento mostra as etapas para configurar o acesso ao banco de dados quando você é o proprietário do banco de dados e deseja conceder acesso a ele.

Concessão de acesso pela conta do proprietário
  1. Nas propriedades do grupo de trabalho do Amazon Redshift sem servidor, na guia Acesso a dados, há uma lista chamada Contas concedidas. Ela mostra contas e VPCs com acesso concedido ao grupo de trabalho. Encontre a lista e escolha Conceder acesso para adicionar uma conta à lista.

  2. Uma janela é exibida na qual é possível adicionar as informações do beneficiário. Digite o ID da conta da AWS, que é o ID de 12 dígitos da conta para a qual você deseja conceder acesso.

  3. Conceda acesso a todas as VPCs para o beneficiário ou a VPCs específicas. Se só conceder acesso a VPCs específicas, você poderá adicionar os IDs delas inserindo cada uma e escolhendo Adicionar VPC.

  4. Salve as alterações quando você tiver terminado.

Quando você salva as alterações, a conta é exibida na lista Contas concedidas. A entrada mostra o ID da conta e a lista de VPCs com acesso concedido.

O proprietário do banco de dados também pode revogar o acesso a uma conta. O proprietário pode revogar o acesso a qualquer momento.

Revogação do acesso a uma conta
  1. É possível começar pela lista de contas concedidas. Primeiro, selecione uma ou mais contas.

  2. Escolha Revogar acesso.

Depois que o acesso for concedido, um administrador do banco de dados do beneficiário poderá verificar o console para determinar se ele tem acesso.

Uso do console para confirmar se o acesso foi concedido para você acessar outra conta
  1. Nas propriedades do grupo de trabalho do Amazon Redshift sem servidor, na guia Acesso a dados, há uma lista chamada Contas autorizadas. Ela mostra contas que podem ser acessadas nesse grupo de trabalho. O beneficiário não pode usar o URL do endpoint do grupo de trabalho para acessar diretamente o grupo de trabalho. Para acessar o grupo de trabalho, você, como beneficiário, vá até a seção Endpoint e escolhe Criar um endpoint.

  2. Em seguida, como beneficiário, você fornece um nome de endpoint e uma VPC para acessar o grupo de trabalho.

  3. Depois de ser criado com êxito, o endpoint será exibido na seção Endpoint e haverá um URL do endpoint para ele. É possível usar o URL desse endpoint para acessar o grupo de trabalho.

Concessão de acesso a outras contas, usando os comandos de CLI

A conta que concede acesso deve primeiro conceder acesso a outra conta para se conectar usando put-resource-policy. O proprietário do banco de dados pode chamar put-resource-policy a fim de autorizar outra conta para criar conexões com o grupo de trabalho. A conta do beneficiário pode acabar usando create-endpoint-authorization para criar conexões com o grupo de trabalho por meio das VPCs permitidas.

Ela mostra as propriedades de put-resource-policy, que você pode chamar para permitir acesso a uma conta e VPC específicas.

aws redshift-serverless put-resource-policy --resource-arn <value> --policy <value>

Depois de chamar o comando, você poderá chamar get-resource-policy, especificando resource-arn para saber quais contas e VPCs têm permissão para acessar o recurso.

A chamada a seguir pode ser feita pelo beneficiário. Ela mostra informações sobre o acesso concedido. Mais especificamente, ela retorna uma lista contendo as VPCs que receberam acesso.

aws redshift-serverless list-workgroups --owner-account <value>

A finalidade disso é para o beneficiário obter informações da conta concessora sobre autorizações de endpoint. owner-account é a conta de compartilhamento. Quando você executa isso, ele retorna CrossAccountVpcs para cada grupo de trabalho, que é uma lista de VPCs permitidas. Para referência, ele mostra todas as propriedades disponíveis para um grupo de trabalho:

Output: workgroup (Object) workgroupId String, workgroupArn String, workgroupName String, status: String, namespaceName: String, baseCapacity: Integer, (Not-applicable) enhancedVpcRouting: Boolean, configParameters: List, securityGroupIds: List, subnetIds: List, endpoint: String, publiclyAccessible: Boolean, creationDate: Timestamp, port: Integer, CrossAccountVpcs: List
nota

A título de lembrete, a realocação do cluster não é um pré-requisito para configurar recursos de rede adicionais do Redshift. Também não é necessário ativá-lo para habilitar o seguinte:

  • Conexão de uma VPC entre contas ou regiões ao Redshift: você pode se conectar a partir de uma nuvem privada virtual (VPC) da AWS a outra que contenha um banco de dados do Redshift, conforme descrito nesta seção.

  • Configuração de um nome de domínio personalizado: você pode criar um nome de domínio personalizado, também conhecido como URL personalizado, para o cluster do Amazon Redshift ou para o grupo de trabalho do Amazon Redshift Serverless, para deixar o nome do endpoint mais fácil de lembrar e simples. Para obter mais informações, consulte Usar nome de domínio personalizado para conexões de clientes.

Definir configurações de tráfego de rede apropriadas para o Amazon Redshift sem servidor

Conectar-se ao Amazon Redshift sem servidor quando ele está acessível ao público geral

As instruções para definir suas configurações de tráfego de rede estão disponíveis em Acessibilidade pública com configuração de grupo de segurança padrão ou personalizada. Isso inclui um caso de uso em que o cluster está acessível ao público geral.

Conectar-se ao Amazon Redshift sem servidor quando ele não está acessível ao público geral

As instruções para definir suas configurações de tráfego de rede estão disponíveis em Acessibilidade privada com configuração de grupo de segurança padrão ou personalizado. Isso inclui um caso de uso em que o cluster não está disponível na internet.

Definir perfis de banco de dados para conceder a usuários federados no Amazon Redshift sem servidor

Você pode definir perfis em sua organização que determinam quais perfis de banco de dados conceder no Amazon Redshift sem servidor. Para obter mais informações, consulte Definir perfis de banco de dados para conceder a usuários federados no Amazon Redshift sem servidor.

Recursos adicionais do

Para obter mais informações sobre conexões seguras com o Amazon Redshift sem servidor, incluindo concessão de permissões, autorização de acesso a serviços adicionais e criação de perfis do IAM, consulte Gerenciamento de Identidade e Acesso no Amazon Redshift Serverless.