Google Cloud Private Service Connect e Snowflake

Este tópico descreve os conceitos e como configurar o Google Cloud Private Service Connect para conectar sua sub-rede Google Cloud Virtual Private Cloud (VPC) à sua conta Snowflake hospedada no Google Cloud sem percorrer a Internet pública.

Observe que o Google Cloud Private Service Connect não é um serviço fornecido pela Snowflake. É um serviço do Google que o Snowflake permite usar com sua conta Snowflake.

Visão geral

O Google Cloud Private Service Connect fornece conectividade privada ao Snowflake, garantindo que o acesso ao Snowflake seja feito por meio de um endereço IP privado. O Snowflake aparece como um recurso em sua rede (ou seja, na rede do cliente), mas o tráfego flui unidirecionalmente de sua VPC para a Snowflake VPC pelo backbone de rede do Google. Essa configuração simplifica significativamente a configuração de rede ao mesmo tempo em que proporciona uma comunicação segura e privada.

O diagrama a seguir resume a arquitetura do Google Cloud Private Service Connect com relação ao cliente Google Cloud VPC e ao serviço Snowflake.

Visão geral da arquitetura

O Google Compute Engine (ou seja, uma máquina virtual) se conecta a um endereço IP virtual privado que encaminha para uma regra de encaminhamento (1). A regra de encaminhamento se conecta ao anexo de serviço através de uma conexão privada (2). A conexão é roteada através de um equilibrador de carga (3) que redireciona para o Snowflake (4).

Limitações

Autorize o Private Service Connect para sua conta

Esta seção descreve como autorizar o Snowflake a aceitar o tráfego de rede pelo Private Service Connect.

  1. Faça login na conta Google Cloud que tem acesso ao projeto que você planeja autorizar. Você pode usar seu ambiente Google Cloud CLI para executar o seguinte:

    gcloud auth login
    
    Copy

    Se quiser verificar a conta atual, execute o seguinte:

    gcloud auth list
    
    Copy
  2. Use a Google Cloud CLI para criar um token de acesso executando o seguinte comando:

    gcloud auth print-access-token
    
    Copy

    Esse comando gera um token de acesso para sua conta Google Cloud. Por padrão, o token expira após 1 hora. Se precisar autorizar, verificar ou revogar a autorização para o Private Service Connect depois que o token expirar, será necessário repetir esta etapa para gerar um novo token.

    Se tiver uma conta de serviço no projeto Google Cloud, poderá gerar um token de acesso de curta duração em vez disso, mas certifique-se de que a vida útil do token seja longa o suficiente para concluir essas etapas de configuração.

  3. Como administrador de conta Snowflake (ou seja, um usuário com a função de sistema ACCOUNTADMIN), chame a função SYSTEM$AUTHORIZE_PRIVATELINK para autorizar (ou seja, habilitar) o Private Service Connect para sua conta Snowflake. A sintaxe dessa função para o Private Service Connect é a seguinte:

    SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '<gcp_project_id>' , '<access_token>' )
    
    Copy

    Onde:

    • gcp_project_id é o ID do projeto Google Cloud a partir do qual você planeja criar pontos de extremidade e se conectar ao Snowflake com segurança.

    • access_token é o token de acesso que você gerou em uma etapa anterior deste procedimento de configuração.

    Por exemplo:

    USE ROLE ACCOUNTADMIN;
    
    SELECT SYSTEM$AUTHORIZE_PRIVATELINK (
     'my-gcp-project-id',
     'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
    );
    
    Copy
  4. Você pode chamar a função SYSTEM$GET_PRIVATELINK para verificar se o Private Service Connect foi autorizado com sucesso para sua conta Snowflake. Passe os mesmos argumentos que você usou para autorizar. Por exemplo:

    SELECT SYSTEM$GET_PRIVATELINK(
     'my-gcp-project-id',
     'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
    );
    
    Copy

    O Snowflake retorna Account is authorized for PrivateLink se a conta estiver autorizada para o Private Service Connect.

Configure seu ambiente Google Cloud VPC

Esta seção aborda os detalhes específicos do Snowflake para configurar seu ambiente Google Cloud VPC.

Importante

A Snowflake não é responsável pela configuração de seu ambiente Google Cloud. Este procedimento mostra as noções básicas de uso da Google Cloud CLI, mas não é um guia definitivo. Por exemplo:

  • Você poderia usar o Google Cloud console para configurar seu ambiente Google Cloud em vez da Google Cloud CLI, o que alteraria as etapas. Por exemplo, ao usar o Google Cloud console, você está criando um ponto de extremidade, não uma regra de encaminhamento.

  • Ele não mostra como configurar as atualizações necessárias do firewall e os registros DNS.

  • Ele não mostra a você como tornar um ponto de extremidade disponível em outras regiões (os pontos de extremidade do Private Service Connect são recursos regionais). Para obter mais informações sobre como tornar um ponto de extremidade disponível em outras regiões, consulte a documentação do Google.

Para obter ajuda adicional, entre em contato com o administrador interno do Google Cloud.

  1. Como administrador de conta Snowflake (ou seja, um usuário com a função de sistema ACCOUNTADMIN), abra uma planilha e chame a função SYSTEM$GET_PRIVATELINK_CONFIG. Você precisa salvar a saída para as etapas seguintes.

    Por exemplo:

    USE ROLE ACCOUNTADMIN;
    
    SELECT key, value FROM TABLE(flatten(input=>parse_json(system$get_privatelink_config())));
    
    Copy
  2. Use a Google Cloud CLI para atualizar a biblioteca gcloud para a versão mais recente:

    gcloud components update
    
    Copy
  3. Autentique para Google Cloud usando o seguinte comando:

    gcloud auth login
    
    Copy
  4. Em sua Google Cloud VPC, defina o ID de projeto no qual a regra de encaminhamento deve residir.

    gcloud config set project <project_id>
    
    Copy

    Para obter uma lista de IDs de projeto, execute o seguinte comando:

    gcloud projects list --sort-by=projectId
    
    Copy
  5. Em sua Google Cloud VPC, crie um endereço IP virtual:

    gcloud compute addresses create <customer_vip_name> \
    --subnet=<subnet_name> \
    --addresses=<customer_vip_address>
    --region=<region>
    
    Copy

    Onde:

    • customer_vip_name especifica o nome da regra de IP virtual (por exemplo, psc-vip-1).

    • subnet_name especifica o nome da sub-rede.

    • customer_vip_address especifica um endereço IP para o qual todos os URLs de conectividade privada são resolvidos. Especifique um endereço IP de sua rede ou use a notação CIDR para especificar um intervalo de endereços IP.

    • region especifica a região de nuvem onde sua conta Snowflake está localizada.

    Por exemplo:

    gcloud compute addresses create psc-vip-1 \
    --subnet=psc-subnet \
    --addresses=192.168.3.3 \
    --region=us-central1
    
    Copy

    Saída:

    Created [https://www.googleapis.com/compute/v1/projects/docstest-123456/regions/us-central1/addresses/psc-vip-1].
    
  6. Crie uma regra de encaminhamento para ter sua sub-rede roteada para o ponto de extremidade do Private Service Connect e depois para o ponto de extremidade do serviço Snowflake.

    gcloud compute forwarding-rules create <name> \
    --region=<region> \
    --network=<network_name> \
    --address=<customer_vip_name> \
    --target-service-attachment=<privatelink-gcp-service-attachment>
    
    Copy

    Onde:

    • name especifica o nome da regra de encaminhamento.

    • region especifica a região de nuvem onde sua conta Snowflake está localizada.

    • network_name especifica o nome da rede para essa regra de encaminhamento.

    • customer_vip_name especifica o valor de <nome> (ou seja, psc-vip-1) do endereço IP virtual criado na etapa anterior.

    • privatelink-gcp-service-attachment especifica o ponto de extremidade do serviço Snowflake, que você obteve quando executou a função SYSTEM$GET_PRIVATELINK_CONFIG em uma etapa anterior.

    Por exemplo:

    gcloud compute forwarding-rules create test-psc-rule \
    --region=us-central1 \
    --network=psc-vpc \
    --address=psc-vip-1 \
    --target-service-attachment=projects/us-central1-deployment1-c8cc/regions/us-central1/serviceAttachments/snowflake-us-central1-psc
    
    Copy

    Saída:

    Created [https://www.googleapis.com/compute/projects/mdlearning-293607/regions/us-central1/forwardingRules/test-psc-rule].
    
  7. Use o seguinte comando para verificar se a regra de encaminhamento foi criada com sucesso:

    gcloud compute forwarding-rules list --regions=<region>
    
    Copy

    Onde:

    • region é a região de nuvem onde sua conta Snowflake está localizada. Por exemplo, se sua conta Snowflake estiver localizada na região europe-west2, substitua <região> por europe-west2.

    Para obter uma lista completa das regiões do Google Cloud e sua formatação, consulte Exibição de uma lista de regiões disponíveis.

  8. Atualize suas configurações DNS.

    Todas as solicitações ao Snowflake precisam ser encaminhadas por meio do ponto de extremidade do Private Service Connect para que os URLs retornados pela função SYSTEM$GET_PRIVATELINK_CONFIG sejam resolvidos para o endereço VIP que você criou (<customer_vip_address>).

    Os valores a serem obtidos na saída de SYSTEM$GET_PRIVATELINK_CONFIG dependem de quais recursos do Snowflake você está acessando por meio de conectividade privada. Para obter uma descrição dos valores possíveis, consulte Valores de retorno.

    Observe que os valores para regionless-snowsight-privatelink-url e snowsight-privatelink-url permitem o acesso a Snowsight e a Snowflake Marketplace usando conectividade privada. No entanto, há uma configuração adicional se você quiser habilitar redirecionamentos de URL. Para obter informações, consulte Snowsight e a conectividade privada.

    Nota

    Uma explicação completa da configuração DNS está além do escopo deste procedimento. Por exemplo, você pode optar por integrar uma zona privada DNS em seu ambiente usando Cloud DNS. Consulte os administradores internos da infraestrutura do Google Cloud e de nuvem para configurar e resolver corretamente os URLs no DNS.

Conexão com o Snowflake

Antes de se conectar ao Snowflake, você pode opcionalmente aproveitar o SnowCD (ferramenta de diagnóstico de conectividade do Snowflake) para avaliar a conexão de rede com o Snowflake e o Private Service Connect. Para obter mais informações, consulte SnowCD e SYSTEM$ALLOWLIST_PRIVATELINK.

Para se conectar ao Snowflake com sua conta de conectividade privada, consulte Conexão com uma URL.

Revogação da autorização

Se for necessário desativar o Private Service Connect em sua conta Snowflake, chame a função SYSTEM$REVOKE_PRIVATELINK, usando os mesmos valores de argumento que você usou para autorizar a conta. Por exemplo:

SELECT SYSTEM$REVOKE_PRIVATELINK(
 'my-gcp-project-id',
 'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
);
Copy

Uso de SSO com o Google Private Service Connect

O Snowflake oferece suporte ao uso de SSO com o Google Cloud Private Service Connect. Para obter mais informações, consulte:

Uso do redirecionamento de cliente com o Google Cloud Private Service Connect

O Snowflake oferece suporte ao uso do redirecionamento de cliente com o Google Cloud Private Service Connect.

Para obter mais informações, consulte Redirecionamento de conexões do cliente.

Como usar a replicação e Tri-Secret Secure com conectividade privada

O Snowflake oferece suporte à replicação de seus dados da conta de origem para a conta de destino, independentemente de você habilitar o Tri-Secret Secure ou este recurso na conta de destino.