Acessar buckets do S3 com o Redshift Spectrum - Amazon Redshift

Acessar buckets do S3 com o Redshift Spectrum

O Amazon Redshift Spectrum não oferece suporte ao roteamento aprimorado de VPC com clusters provisionados. O roteamento aprimorado da VPC do Amazon Redshift roteia o tráfego específico por meio de sua VPC. Todo o tráfego entre seu cluster e seus buckets do Amazon S3 é forçado a passar por seu Amazon VPC. O Redshift Spectrum executa recursos gerenciados pela AWS que são de propriedade do Amazon Redshift. Como esses recursos estão fora da VPC, o Redshift Spectrum não usa o roteamento aprimorado de VPC.

O tráfego entre o Redshift Spectrum e o Amazon S3 é roteado com segurança pela rede privada da AWS, fora da VPC. O tráfego em trânsito é assinado usando o protocolo Amazon Signature versão 4 (SIGv4) e criptografado usando HTTPS. Este tráfego é autorizado com base na função do IAM anexada ao seu cluster do Amazon Redshift. Para gerenciar ainda mais o tráfego do Redshift Spectrum, você pode modificar a função do IAM do seu cluster e sua política anexada ao bucket do Amazon S3. Também pode ser necessário configurar seu VPC para permitir que seu cluster acesse o Athena ou o AWS Glue, conforme detalhado a seguir.

Observe que, como o roteamento VPC aprimorado afeta a maneira como o Amazon Redshift acessa outros recursos, as consultas podem falhar, a menos que você configure a VPC corretamente. Para obter mais informações, consulte Controlar o tráfego de rede com o roteamento de VPC avançado do Redshift, que discute com mais detalhes a criação de um endpoint da VPC, um gateway de conversão de endereços de rede (gateway NAT) e outros recursos de rede para direcionar o tráfego aos buckets do Amazon S3.

nota

O Amazon Redshift Serverless oferece suporte ao roteamento aprimorado de VPC para consultas a tabelas externas no Amazon S3. Consulte mais informações sobre configuração em Carregar dados do Amazon S3 no Guia de conceitos básicos do Amazon Redshift sem servidor.

Configuração da política de permissões ao usar o Amazon Redshift Spectrum

Considere o seguinte ao usar o Redshift Spectrum:

Políticas de acesso ao bucket do Amazon S3 e perfis do IAM

Você pode controlar o acesso aos dados nos buckets do Amazon S3 usando uma política de bucket anexada ao bucket e usando um perfil do IAM anexado a um cluster provisionado.

O Redshift Spectrum em clusters provisionados não pode acessar dados armazenados em buckets do Amazon S3 que usam uma política de bucket que restringe o acesso apenas a endpoints da VPC especificados. Em vez disso, use uma política de bucket que restrinja o acesso apenas a entidades principais específicas, como uma conta específica da AWS ou usuários específicos.

Para a função do IAM que tem acesso ao bucket, use uma relação de confiança que permita que a função seja assumida apenas pela entidade principal de serviço do Amazon Redshift. Quando anexada ao seu cluster, a função pode ser usada apenas no contexto do Amazon Redshift e não pode ser compartilhada fora do cluster. Para ter mais informações, consulte Restringir acesso a funções do IAM. Uma política de controle de serviços (SCP) também pode ser usada para restringir ainda mais o perfil. Consulte Impedir que usuários e perfis do IAM façam alterações especificadas, com uma exceção para um perfil de administrador especificado no Guia do usuário do AWS Organizations.

nota

Para usar o Redshift Spectrum, não pode haver nenhuma política do IAM bloqueando o uso de URLs pré-assinados do Amazon S3. Os URLs pré-assinados gerados pelo Amazon Redshift Spectrum são válidos por uma hora para que o Amazon Redshift tenha tempo suficiente para carregar todos os arquivos do bucket do Amazon S3. Um URL pré-assinado exclusivo é gerado para cada arquivo verificado pelo Redshift Spectrum. Para políticas de bucket que incluem uma ação s3:signatureAge, o valor deve ser definido como pelo menos 3.600.000 milissegundos.

O seguinte exemplo de política de bucket permite acesso ao bucket especificado somente a partir do tráfego originado pelo Redshift Spectrum pertencente à conta da AWS 123456789012.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "BucketPolicyForSpectrum", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::123456789012:role/redshift"] }, "Action": ["s3:GetObject", "s3:List*"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"], "Condition": { "StringEquals": { "aws:UserAgent": "AWS Redshift/Spectrum" } } }] }

Permissões para assumir o perfil do IAM

A função associada ao seu cluster deve ter uma relação de confiança que permita que seja assumida apenas pelo serviço do Amazon Redshift, como mostrado a seguir.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Você pode adicionar uma política à função do cluster que impede o acesso de COPY e UNLOAD a um bucket específico. A política a seguir permite o tráfego para o bucket especificado somente a partir do Redshift Spectrum.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:Get*", "s3:List*"], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": {"StringEquals": {"aws:UserAgent": "AWS Redshift/Spectrum"}} }] }

Para obter mais informações, consulte Políticas do IAM para o Redshift Spectrum no Guia do desenvolvedor de bancos de dados do Amazon Redshift.

Registrar em log e auditar o acesso ao Amazon S3

Um dos benefícios ao usar o roteamento aprimorado da VPC do Amazon Redshift é que todo o tráfego de COPY e UNLOAD é registrado nos logs de fluxo da VPC. O tráfego originado do Redshift Spectrum para o Amazon S3 não passa pelo seu VPC, portanto, não é registrado nos logs de fluxo do VPC. Quando o Redshift Spectrum acessa dados no Amazon S3, ele executa essas operações no contexto da conta da AWS e dos respectivos privilégios de função. Você pode registrar e auditar o acesso ao Amazon S3 usando o registro em log de acesso ao servidor no AWS CloudTrail e Amazon S3.

Certifique-se de que os intervalos de IP do S3 sejam adicionados à sua lista de permissões. Para saber mais sobre os intervalos de IP do S3 necessários, consulte Isolamento de rede.

Registros do AWS CloudTrail

Para rastrear todo o acesso a objetos no Amazon S3, incluindo o acesso ao Redshift Spectrum, habilite o registro em log do CloudTrail para objetos do Amazon S3.

Você pode usar o CloudTrail para visualizar, pesquisar, baixar, arquivar, analisar e responder à atividade da conta em sua infraestrutura da AWS. Para obter mais informações, consulte Conceitos básicos do CloudTrail.

Por padrão, o CloudTrail rastreia somente as ações do nível do bucket. Para rastrear as ações em nível de objeto (como GetObject), habilite eventos de dados e gerenciamento para cada bucket registrado em log.

Registro em log de acesso ao servidor do Amazon S3

O registro em log de acesso ao servidor fornece detalhes sobre as solicitações que são feitas a um bucket. As informações de log de acesso podem ser úteis em auditorias de segurança e acesso. Para obter mais informações, consulte Como habilitar o registro de acesso ao servidor no Guia do usuário do Amazon Simple Storage Service.

Para obter mais informações, consulte a postagem do blog sobre segurança da AWS Como usar políticas de bucket e aplicar defesa adequadamente para ajudar a proteger seus dados do Amazon S3.

Acesso ao AWS Glue ou Amazon Athena

O Redshift Spectrum acessa seu catálogo de dados no AWS Glue ou no Athena. Outra opção é usar um metastore do Hive dedicado para seu catálogo de dados.

Para habilitar o acesso ao AWS Glue ou ao Athena, configure seu VPC com um gateway da Internet ou gateway NAT. Configure seus grupos de segurança da VPC para permitir tráfego de saída para os endpoints públicos para o AWS Glue e o Athena. Como alternativa, você pode configurar um endpoint de interface da VPC para AWS Glue para acessar AWS Glue Data Catalog. Quando você usa um endpoint de interface da VPC, a comunicação entre sua VPC e o AWS Glue é realizada na rede da AWS. Para obter mais informações, consulte Criação de um endpoint de interface.

Você pode configurar os seguintes percursos na VPC:

  • Gateway da Internet – Para se conectar a serviços da AWS fora da VPC, você pode anexar um gateway da Internet à sua sub-rede da VPC, conforme descrito no Manual do usuário do Amazon VPC. Para usar um gateway da internet, um cluster provisionado deve ter um endereço IP público a fim de permitir que outros serviços se comuniquem com ele.

  • Gateway NAT – Para se conectar a um bucket do Amazon S3 em outra região da AWS ou a outro serviço dentro da rede da AWS, configure um gateway de conversão de endereços de rede (NAT) conforme descrito no Manual do usuário do Amazon VPC. Use essa configuração também para acessar uma instância de host fora da rede da AWS.

Para ter mais informações, consulte Controlar o tráfego de rede com o roteamento de VPC avançado do Redshift.