Configuração do Snowpipe Streaming

Propriedades do Snowpipe Streaming

Ajuste as configurações de conexão API em um arquivo profile.json. As propriedades são descritas neste tópico.

Como mostrado no exemplo Java (GitHub), é possível carregar as configurações de profile.json especificando o caminho do arquivo como a entrada para a variável PROFILE_PATH.

Propriedades obrigatórias

authorization_type

Configure o método de autenticação e autorização para o usuário. Use um dos seguintes métodos:

  • JWT: autenticação do par de chaves com JSON Web Token (JWT). Este é o método padrão. Se authorization_type não estiver configurado, o método padrão JWT será usado. Configure o seguinte private_key para autenticação de par de chaves:

    • Chave privada private_key para autenticar o usuário. Inclua apenas a chave, não o cabeçalho ou rodapé. Se a chave estiver dividida em várias linhas, remova as quebras de linha.

      Você pode fornecer uma chave não criptografada, ou pode fornecer uma chave criptografada e fornecer o parâmetro snowflake.private.key.passphrase para permitir que o Snowflake descriptografe a chave. Use este parâmetro se e somente se o valor do parâmetro snowflake.private.key estiver criptografado.

  • OAuth: Snowflake OAuth. Esta opção só está disponível com Snowflake Ingest SDK versões 2.0.3 e posteriores. Configure os seguintes parâmetros para Snowflake OAuth no arquivo profile.json:

    • oauth_client_id: o ID do cliente da integração OAuth.

    • oauth_client_secret: o segredo do cliente da integração OAuth.

    • oauth_refresh_token: um token de atualização válido da integração OAuth.

    Para dar suporte à atualização de token no Snowflake/OKTA OAuth, você deve configurar três parâmetros: oauth_client_id, oauth_client_secret e oauth_refresh_token. No entanto, se você usar um ponto de extremidade de API personalizado para OAuth que não exija esses valores na solicitação de atualização do token, você poderá preencher os campos desses parâmetros com espaços reservados.

url

URL para acessar sua conta Snowflake. Este URL deve incluir seu identificador da conta. Observe que o protocolo (https://) e o número da porta são opcionais.

Observe que url não é necessário se você já estiver usando o Snowflake Ingest SDK e tiver definido as propriedades host, scheme e port no arquivo profile.json.

user

Nome de login do usuário para a conta Snowflake.

Propriedades opcionais

snowflake.private.key.passphrase

Frase secreta para descriptografar a chave privada quando a chave é criptografada. Para obter mais informações, consulte Uso da autenticação de par de chaves e rodízio de chaves (neste tópico).

role

Função de controle de acesso a ser usada para a sessão após a conexão ao Snowflake.

Observe que a propriedade role é opcional para versões 2.0.3 do Snowflake Ingest SDK e posteriores. É necessário para versões anteriores do Ingest SDK.

Autenticação e autorização

Como usar o Snowflake OAuth

Com o Snowflake Ingest SDK nas versões 2.0.3 e posteriores ou Conector Snowflake para Kafka versões 2.1.2 e posteriores, você pode usar o Snowflake OAuth como método de autorização.

Siga o fluxo de trabalho para criar uma integração Snowflake OAuth e para chamar pontos de extremidade OAuth para solicitar códigos de autorização e atualizar tokens de acesso. A resposta das solicitações de token contém oauth_refresh_token. Após a criação de uma integração Snowflake OAuth, execute a função SYSTEM$SHOW_OAUTH_CLIENT_SECRETS para obter oauth_client_id e oauth_client_secret.

Para habilitar o Snowflake OAuth, no arquivo profile.json, defina authorization_type como OAuth e complete os campos oauth_refresh_token, oauth_client_id e oauth_client_secret com os parâmetros obtidos acima.

Uso da autenticação de par de chaves e rotação de chaves

As chamadas de API dependem da autenticação do par de chaves com JSON Web Token (JWT). JWTs são assinados usando um par de chaves públicas/privadas com criptografia RSA. Este método de autenticação requer um par de chaves RSA de 2048 bits (mínimo). Gere o par de chaves pública-privada usando OpenSSL. A chave pública é atribuída ao usuário do Snowflake definido no arquivo de propriedades.

Complete as instruções de autenticação do par de chaves descritas em rotação do par de chaves. Copie e cole a chave privada inteira no campo snowflake.private.key no arquivo de propriedades. Salve o arquivo.

Consulte um exemplo Java para um exemplo de como criar uma impressão digital e gerar um token JWT.

A seguir, avalie a recomendação para Externalização de segredos (neste tópico).

Externalização de segredos

O Snowflake recomenda a externalização de segredos como a chave privada e seu armazenamento em forma criptografada ou em um serviço de gerenciamento de chaves como o AWS Key Management Service (KMS), Microsoft Azure Key Vault ou HashiCorp Vault.

Para obter mais informações, consulte a descrição do Confluent deste serviço.

Exemplos