Autenticação de API externa e segredos¶
Este tópico fornece conceitos sobre autenticação de API externa e segredos.
Neste tópico:
Visão geral¶
A autenticação de API externa fornece um caminho para autenticar um serviço que está hospedado fora do Snowflake. A solicitação da API de acesso ao serviço requer que a solicitação da API seja autenticada. Snowflake oferece suporte aos seguintes métodos de autenticação ao usar a autenticação de API externa:
Autenticação básica.
OAuth com fluxo de concessão de código.
OAuth com fluxo de credenciais de clientes.
Snowflake oferece suporte à autenticação básica (ou seja, nome de usuário e senha) no cabeçalho da solicitação da API, conforme especificado em RFC 7617, onde as credenciais de autenticação são codificadas usando Base64. Da mesma forma, Snowflake oferece suporte a OAuth 2.0, como especificado em RFC 6749. No Snowflake, as credenciais de autenticação são armazenadas e acessadas com segurança a partir de um objeto chamado segredo. O segredo é usado com um conector para acessar o serviço fora do Snowflake, como o conector do Snowflake para ServiceNow. Uma integração de segurança para autenticação da API externa permite que o Snowflake se conecte ao serviço hospedado fora do Snowflake ao usar os fluxos de OAuth.
Um segredo é um objeto em nível de esquema que armazena informações sensíveis, limita o acesso às informações sensíveis usando RBAC e é criptografado usando a hierarquia de criptografia de chaves do Snowflake. As informações presentes no objeto secreto são criptografadas usando uma chave na hierarquia de chaves. Depois que você criar um segredo, somente os componentes dedicados do Snowflake, como integrações e funções externas, poderão ler as informações confidenciais.
Por exemplo, uma função externa precisa acessar e ler o segredo para passar as credenciais de autenticação em um cabeçalho de autorização da API para fazer uma solicitação de API ao serviço fora do Snowflake. A ligação do segredo à função externa ocorre durante o processo de instalação do conector. No entanto, se um usuário executar uma operação DESCRIBE SECRET no segredo, o valor da senha armazenada no segredo nunca será exposto.
Snowflake fornece gerenciamento centralizado e controle de acesso das credenciais utilizadas para autenticação da API no segredo. Você pode implementar a separação de funções (isto é, SoD) para a gestão do segredo e das funções associadas à gestão do conector. O conector só precisa usar o nome do segredo, e os usuários aos quais foram concedidas as funções de conector não precisam visualizar as informações sensíveis armazenadas no segredo.
Gerenciamento de segredos¶
Snowflake fornece os seguintes comandos para gerenciar o objeto do segredo:
O Snowflake oferece suporte aos seguintes privilégios para determinar se os usuários podem criar, definir e possuir segredos.
Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.
Privilégio |
Uso |
---|---|
CREATE |
Permite criar um novo segredo em um esquema. |
USAGE |
Permite o uso de um segredo. |
OWNERSHIP |
Transfere a propriedade da segredo, o que garante o controle total sobre o segredo. Necessário para alterar a maioria das propriedades de um segredo. |
A seguinte tabela resume a relação entre as operações do comando do segredo e seus privilégios necessários.
Operação |
Privilégio |
---|---|
CREATE SECRET |
Uma função com o privilégio USAGE no banco de dados principal e esquema com o privilégio CREATE SECRET no mesmo esquema. |
ALTER SECRET |
Uma função com o privilégio OWNERSHIP no segredo. |
DROP SECRET |
Uma função com o privilégio OWNERSHIP no segredo. |
DESCRIBE SECRET |
Uma função com o privilégio USAGE no segredo. |
SHOW SECRETS |
Uma função com o privilégio USAGE no segredo. |
USE SECRET |
Uma função com o privilégio USAGE no segredo. Este privilégio é necessário para a função que cria a função externa e chama a função externa em tempo de execução da consulta, se o segredo for usado com uma função externa. |
Como usar autenticação e segredos da API externa¶
Para exemplos representativos, consulte:
Além disso, você pode replicar segredos usando a replicação de conta. Para obter mais detalhes, consulte Replicação e segredos.