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. Seauthorization_type
não estiver configurado, o método padrãoJWT
será usado. Configure o seguinteprivate_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âmetrosnowflake.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 arquivoprofile.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 propriedadeshost
,scheme
eport
no arquivoprofile.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¶
Para um exemplo simples que mostra como o cliente SDK poderia ser usado para criar um aplicativo Snowpipe Streaming, consulte este arquivo Java (GitHub).
Exemplos de início rápido: