Pontos de extremidade da interface AWS VPC para estágios internos¶
Este tópico fornece conceitos e instruções detalhadas para conexão com estágios internos do Snowflake através de pontos de extremidade da interface AWS VPC.
Neste tópico:
Visão geral¶
Os pontos de extremidade da interface AWS VPC e AWS PrivateLink para Amazon S3 podem ser combinados para fornecer conectividade segura aos estágios internos do Snowflake. Esta configuração garante que as operações de carregamento e descarregamento de dados para os estágios internos do Snowflake utilizem a rede interna AWS e não ocorram através da Internet pública.
Antes de a AWS oferecer suporte a pontos de extremidade da interface VPC para acesso a estágios internos, foi necessário criar um farm proxy dentro do AWS VPC para facilitar o acesso seguro aos estágios internos do Snowflake. Com o suporte adicional de pontos de extremidade da interface VPC para os estágios internos do Snowflake, usuários e aplicativos clientes agora podem acessar os estágios internos do Snowflake através da rede privada AWS. O diagrama a seguir resume este novo suporte:
Observe o seguinte em relação aos números no diagrama BEFORE:
Os usuários têm duas opções para se conectar a um estágio interno do Snowflake:
A opção A permite uma conexão no local diretamente ao estágio interno, como mostra o número 1.
A opção B permite uma conexão com o estágio interno através de um farm proxy, como mostrado pelos números 2 e 3.
Se o farm proxy for usado, os usuários também podem se conectar diretamente ao Snowflake, como indicado pelo número 4.
Observe o seguinte em relação aos números no diagrama AFTER:
As atualizações neste recurso eliminam a necessidade de conectar ao Snowflake ou a um estágio interno do Snowflake através de um farm proxy.
Um usuário no local pode se conectar diretamente ao Snowflake, como mostrado no número 5.
Para conexão a um estágio interno do Snowflake, os usuários no local se conectam a um ponto de extremidade de interface, número 6, e depois usam AWS PrivateLink para Amazon S3 para conexão ao estágio interno do Snowflake, como mostrado no número 7.
Há um único bucket Amazon S3 por implantação de estágio interno. Um prefixo no bucket Amazon S3 do estágio interno é usado para organizar os dados em cada conta Snowflake. As URLs do ponto de extremidade do bucket Amazon S3 são diferentes dependendo se a conexão ao bucket usa conectividade privada (ou seja, AWS PrivateLink para S3).
- URL do ponto de extremidade global público Amazon S3
<nome_do_bucket>.s3.region.amazonaws.com/prefix
- URL do ponto de extremidade privado Amazon S3
<vpceID>.s3.<região>.vpce.amazonaws.com/prefix
Benefícios¶
A implementação de pontos de extremidade da interface VPC para acessar os estágios internos do Snowflake oferece as seguintes vantagens:
Os dados do estágio interno não atravessam a Internet pública.
Aplicativos clientes e SaaS, tais como Microsoft PowerBI, que funcionam fora do AWS VPC, podem se conectar ao Snowflake com segurança.
Os administradores não são obrigados a modificar as configurações do firewall para acessar os dados do estágio interno.
Os administradores podem implementar segurança e monitoramento consistentes sobre como os usuários se conectam às contas de armazenamento.
Limitações¶
AWS Gov Cloud (US) não tem suporte com AWS PrivateLink para S3.
Para limitações adicionais, consulte a documentação AWS.
Configuração de um ponto de extremidade de interface VPC para acesso aos estágios internos do Snowflake¶
Para configurar pontos de extremidade da interface VPC para acesso aos estágios internos do Snowflake, é necessário ter o suporte das três funções seguintes em sua organização:
O administrador da conta Snowflake (ou seja, um usuário com a função do sistema Snowflake ACCOUNTADMIN).
O administrador AWS.
O administrador da rede.
Dependendo da organização, pode ser necessário coordenar os esforços de configuração com mais de uma pessoa ou equipe para implementar as seguintes etapas de configuração.
Pré-requisitos¶
-
Importante
O AWS PrivateLink para S3 é um serviço AWS que precisa ser habilitado em seu ambiente de nuvem.
Para obter ajuda na configuração e implementação deste serviço, entre em contato com seu administrador AWS interno.
Atualize a lista de permissões do firewall da seguinte forma:
Se utilizar um firewall de saída, certifique-se de que ele permite todas as URLs exigidas pelo Snowflake. Para obter mais detalhes, consulte SnowCD (Connectivity Diagnostic Tool).
Para clientes
us-east-1
somente: Se utilizar um dos seguintes clientes Snowflake para conectar-se ao Snowflake, atualize para a versão de cliente da seguinte forma:Driver JDBC: 3.13.3 (ou superior)
Driver ODBC: 2.23.2 (ou superior)
Conector Python para Snowflake: 2.5.1 (ou superior)
SnowSQL: 1.2.17 (ou superior)
Atualize o SnowSQL antes de utilizar este recurso. Para obter mais informações, consulte Instalação do SnowSQL.
Observe que se for utilizada a opção SnowSQL
--noup
,, a atualização automática do SnowSQL fica desativada e uma nova versão do SnowSQL não pode ser baixada. Para atualizar, desative a opção--noup
e reative-a após a atualização estar concluída.
Procedimento¶
Complete as seguintes etapas para configurar e implementar o acesso seguro aos estágios internos do Snowflake através do ponto de extremidade VPC:
Como administrador de conta Snowflake, execute as seguintes instruções em sua conta Snowflake e registre o valor definido pela chave
privatelink_internal_stage
. Observe que o nome do bucket Amazon S3 é definido no primeiro segmento da URL quando lido da esquerda para a direita. Para obter mais informações, consulte ENABLE_INTERNAL_STAGES_PRIVATELINK e SYSTEM$GET_PRIVATELINK_CONFIG.use role accountadmin; alter account set ENABLE_INTERNAL_STAGES_PRIVATELINK = true; select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
Como administrador AWS, crie um ponto de extremidade VPC para AWS PrivateLink para S3 usando o Console AWS. Registre o nome VPCE DNS para uso na próxima etapa; não registre qualquer nome de zona VPCE DNS.
O nome VPCE DNS pode ser encontrado descrevendo um ponto de extremidade de interface uma vez que o ponto de extremidade esteja criado.
Neste exemplo, um curinga (ou seja,
*
) é listado como o caractere principal no nome VPCE DNS. Substitua o curinga principal pelo nome do bucket S3 da etapa anterior. Por exemplo:- Substitua
*.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com
- Por
<nome_do_bucket>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com
Como administrador da rede, atualizar as configurações DNS para resolver a seguinte URL:
<nome_do_bucket>.s3.<região>.amazonaws.com
para o nome VPCE DNS depois que o curinga principal tiver sido substituído pelo nome do bucket Amazon S3.Neste exemplo, resolva
<nome_do_bucket>.s3.<região>.amazonaws.com
para<nome_do_bucket>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com
.Dica
Não utilize caracteres curinga (ou seja,
*
) com mapeamento DNS devido ao possível impacto de acessar outros buckets Amazon S3 fora do Snowflake.Use uma conta Snowflake separada para testes e configure uma zona DNS hospedada privada em um VPC de teste para testar o recurso de forma que o teste seja isolado e não tenha impacto em suas outras cargas de trabalho.
Se não for possível usar uma conta Snowflake separada, use um usuário de teste para acessar o Snowflake a partir de um VPC de teste onde as alterações DNS são feitas.
Para testar a partir de aplicativos no local, use o encaminhamento de DNS para encaminhar solicitações para a zona hospedada privada AWS no VPC onde as configurações DNS são feitas. Se houver aplicativos clientes tanto no VPC quanto no local, use o AWS Transit Gateway.
Execute o seguinte comando da máquina cliente para verificar se o endereço IP retornado é o endereço IP privado para a conta de armazenamento:
dig <bucket_name>.s3.<region>.amazonaws.com
Para contas Snowflake em
us-east-1
, verifique se seus clientes Snowflake estão em suas versões mais recentes.