Solução de problemas de carregamentos a partir do Google Cloud Storage

Este tópico fornece instruções para resolver problemas específicos de carregamento de dados de estágios do Google Cloud Storage.

Para etapas de solução de problemas gerais de carregamento de dados, consulte Solução de problemas de carregamentos de dados em massa.

Neste tópico:

Erro: Falha ao usar a área de estágio

Ao tentar carregar dados de um bucket Google Cloud Storage (GCS), você pode encontrar o seguinte erro:

Failure using stage area. Cause: [Request violates VPC Service Controls. (Status Code: 403)]
Copy

Este erro indica uma violação das restrições estabelecidas para um perímetro de serviço GCP, que é configurado usando controles de serviço VPC para proteger dados confidenciais. Embora a conta de serviço GCS criada para sua conta Snowflake possa ter recebido permissão para ler e gravar no bucket, as regras de acesso para o perímetro de serviço são aplicadas no nível da organização GCP, afetando potencialmente múltiplos projetos. Para rever detalhes adicionais associados à mensagem de erro, acesse os registros de erros do controle de serviço VPC. Consulte a documentação do GCP para obter descrições dos valores violationReason nos registros.

A opção mais simples para resolver o erro é carregar os dados de um bucket que está excluído do perímetro de serviço. Se essa opção não for permitida por suas regras de segurança estabelecidas, você pode excluir a conta de serviço GCS de sua conta Snowflake dos filtros do perímetro de serviço, adicionando a conta de serviço em uma política de nível de acesso. Observe que a conta de serviço ainda requer acesso aos recursos aprovados usando a política padrão IAM descrita nas instruções para configurar a integração com o GCS.

A política de acesso de uma organização GCP contém níveis de acesso. Os níveis de acesso são criados e gerenciados usando o Access Context Manager e o Google Cloud Console, a ferramenta de linha de comando gcloud ou a API do Cloud. As seguintes instruções dependem da ferramenta de linha de comando gcloud.

Para adicionar a conta de serviço GCS para sua conta Snowflake a uma política de nível de acesso:

  1. Usando um cliente Snowflake, recupere a ID da conta de serviço de armazenamento em nuvem que foi criada automaticamente para sua conta Snowflake (usando DESCRIBE INTEGRATION):

    DESC STORAGE INTEGRATION <integration_name>;
    
    Copy

    Em que integration_name é o nome de uma integração de armazenamento em sua conta. Para obter mais informações, consulte Configuração de uma integração para o Google Cloud Storage.

  2. Crie um arquivo com o nome snowflake_policy.yaml em sua máquina local. Especifique a ID da conta de serviço no atributo members:

    - members:
       - serviceAccount:<service_account>
    
    Copy

    Por exemplo:

    - members:
       - serviceAccount:service-account-id@project1-123456.iam.gserviceaccount.com
    
    Copy
  3. Usando a ferramenta de linha de comando gcloud, execute o seguinte comando para criar um nível de acesso.

    Nota

    Esse comando requer uma função GCP com as permissões necessárias para mudar o controle de serviço VCP.

    gcloud access-context-manager levels create <access_level_name> \
       --title snowflake \
       --basic-level-spec snowflake_policy.yaml \
       --combine-function=OR \
       --policy=<policy_name>
    
    Copy

Onde:

  • policy_name é o nome da política de acesso para sua organização GCP.

  • access_level_name é o nome de sua escolha para o nome do nível de acesso.