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.

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