Proteção de uma função externa¶
Este tópico descreve detalhes independentes de plataforma relacionados à proteção de funções externas.
Neste tópico:
Controle de acesso¶
Funções externas¶
Funções externas, como qualquer função definida pelo usuário (UDFs), seguem as regras de controle de acesso:
As funções externas têm um proprietário.
O proprietário deve conceder aos chamadores (exceto o proprietário) os privilégios apropriados para a função.
Entretanto, as funções externas têm alguns requisitos adicionais de privilégio:
Como uma função externa requer uma integração de API, o autor da função externa deve receber privilégio USAGE para a integração de API.
Para obter mais informações sobre UDFs e controle de acesso, consulte Privilégios de controle de acesso.
Integrações de API¶
Privilégios e integrações de API¶
Uma integração de API é um objeto de banco de dados. Para criar uma integração de API, são necessários privilégios ACCOUNTADMIN ou uma função Snowflake com o privilégio CREATE INTEGRATION. Os administradores de conta podem conceder e revogar a propriedade e os privilégios de uso em cada integração de API.
Uso da opção API_KEY em CREATE API INTEGRATION¶
Alguns serviços de proxy (gateways de API) exigem que os usuários forneçam informações de assinatura (ou outras informações relacionadas a produtos) ao chamar o serviço de proxy. As informações de assinatura podem ser usadas para autenticar que o usuário é um cliente pagante, impor quotas de uso etc.
O Snowflake agora oferece suporte a chaves de API, também chamadas de chaves de assinatura (termo do Microsoft Azure), que são valores de cadeia de caracteres alfanuméricos que um desenvolvedor pode distribuir aos usuários que precisam fornecer informações de assinatura.
Os usuários podem fornecer essas chaves ao Snowflake usando a cláusula API_KEY da instrução CREATE API INTEGRATION ou da instrução ALTER API INTEGRATION. A cláusula API_KEY é opcional; você pode omiti-la se o serviço não precisar de uma chave.
Uma API_KEY é uma adição ao IAM (Gerenciamento de identidade e acesso), não uma substituição.
Chaves de API são sigilosas. Elas não são exibidas em:
Comandos de histórico de consultas.
Comandos DESCRIBEINTEGRATION.
Comandos DESCRIBEAPIINTEGRATION.
O desenvolvedor do serviço escolhe como formatar a chave. A chave é opaca para o Snowflake, e o Snowflake não a valida.
Você pode ler mais sobre as chaves de API para plataformas específicas, seguindo os links abaixo:
Proteger o serviço de proxy¶
A menos que sua função externa seja destinada a ser acessível ao público, o Snowflake recomenda enfaticamente a proteção de seus pontos de extremidade do serviço de proxy.
O Snowflake usa objetos de integração de API sem credenciais para autenticar no ponto de extremidade do serviço de proxy. As integrações de API sem credenciais separam as responsabilidades entre administradores e usuários. Uma integração de API permite a um administrador criar uma política de confiança entre o Snowflake e o provedor de nuvem usando o mecanismo de autenticação e autorização nativo do provedor de nuvem. Quando o Snowflake se conecta ao provedor de nuvem, o provedor de nuvem autentica e autoriza o acesso por meio dessa política de confiança. Usando uma integração de API específica, o administrador também pode especificar uma lista de pontos de extremidade permitidos que o objeto de integração de API pode acessar; isso restringe quais recursos e serviços de proxy o Snowflake pode usar, permitindo que o administrador aplique políticas organizacionais para entrada e saída de dados.
Instruções mais detalhadas para proteger pontos de extremidade do serviço de proxy específicos, como um Amazon API Gateway, podem ser encontradas nas instruções específicas das plataformas correspondentes.
Proteger o serviço remoto¶
Se você criou seu próprio serviço remoto, não se esqueça de protegê-lo.
Os detalhes dependem da implementação do serviço remoto e estão fora do escopo deste documento.
Na maioria dos casos, o serviço remoto deve usar HTTPS, e não HTTP.
Informações adicionais de segurança¶
As comunicações entre o Snowflake e o servidor proxy são criptografadas usando HTTPS.
Informações de segurança específicas de plataformas¶
AWS¶
Para a AWS, todas as solicitações HTTP do Snowflake (indo para o gateway de API) são assinadas usando a autenticação AWS sigv4. Para obter mais informações, consulte autenticação AWS sig4 .
Restrinja o acesso aos pontos de extremidade do gateway de API adicionando uma política de recursos. Para obter mais informações, consulte Proteger seu ponto de extremidade do Amazon API Gateway.
Se você usar pontos de extremidade privados, pode ser útil ler sobre PrivateLink.