Criação e acesso a objetos em uma conta de consumidor

Este tópico descreve como os provedores podem desenvolver um Snowflake Native App para criar objetos na conta do consumidor ou acessar objetos existentes.

Visão geral da criação e do acesso a objetos em uma conta de consumidor

Snowflake Native Apps geralmente precisam criar ou acessar objetos em uma conta de consumidor. Por exemplo, mesmo um aplicativo básico que permite ao consumidor consultar dados compartilhados exigiria que o aplicativo criasse e usasse um warehouse na conta do consumidor. Um aplicativo também pode precisar se conectar a serviços fora do Snowflake.

O Snowflake Native App Framework oferece duas maneiras de solicitar privilégios para criar objetos na conta do consumidor.

Concessão automática de privilégios a um aplicativo

O Snowflake Native App Framework permite que os provedores solicitem determinados privilégios seguros e depois os concedam automaticamente. Os provedores adicionam esses privilégios ao arquivo de manifesto do aplicativo. Durante a instalação ou atualização do aplicativo, o Snowflake concede automaticamente esses privilégios ao aplicativo.

Para obter mais informações sobre como configurar um aplicativo para ter privilégios concedidos automaticamente, consulte Configuração dos privilégios exigidos por um aplicativo.

Da perspectiva do provedor, a concessão automatizada de privilégios simplifica o desenvolvimento do aplicativo porque o aplicativo não precisa determinar se um consumidor concedeu os privilégios solicitados ou criou os objetos necessários em sua conta.

Da perspectiva do consumidor, a concessão automatizada de privilégios simplifica a instalação e a configuração do aplicativo. No entanto, também oferece ao consumidor menos controle, por padrão, sobre o que um aplicativo pode fazer em sua conta. Para permitir que os consumidores tenham mais controle sobre o que um aplicativo pode fazer, o Snowflake Native App Framework fornece os seguintes recursos:

Especificações do aplicativo:

Permitir que os consumidores controlem os pontos de extremidade externos aos quais um aplicativo pode se conectar. Para acessar serviços fora do Snowflake, um aplicativo pode precisar criar uma integração de acesso externo ou integração de serviço, dependendo do tipo de serviço. Usando a concessão automatizada de privilégios, o aplicativo pode criar esses objetos na conta do consumidor. No entanto, um administrador de conta da conta do consumidor deve aprovar a especificação do aplicativo que permite que o aplicativo execute a conexão externa.

Para obter informações sobre como desenvolver um aplicativo para usar especificações de aplicativos, consulte Usar especificações de aplicativo para solicitar pontos de extremidade externos dos consumidores. Para obter informações sobre como o consumidor aprova uma especificação de aplicativo, consulte Aprovar conexões com recursos externos usando especificações de aplicativo.

Políticas de recursos:

As políticas de recursos permitem que os consumidores substituam a concessão automática de privilégios. Antes de instalar ou atualizar um aplicativo, os consumidores podem criar uma política de recursos para proibir o aplicativo de criar tipos específicos de objetos. Por exemplo, um consumidor pode precisar configurar uma política de recursos para proibir um aplicativo de criar um warehouse. Se um aplicativo tentar criar um warehouse durante a instalação ou atualização, a instalação falhará.

Para obter informações sobre como um consumidor cria políticas de recursos, consulte Usar políticas de recursos para limitar os objetos que um aplicativo pode criar.

Concessão manual de privilégios a um aplicativo

Para aplicativos criados antes do lançamento de concessão automatizada de privilégios, por exemplo, um aplicativo que foi instalado e não tem os privilégios necessários para criar objetos na conta do consumidor, os consumidores devem conceder privilégios manualmente ao aplicativo usando SQL ou Snowsight, dependendo de como o aplicativo está configurado. Para obter mais informações, consulte Solicitação de privilégios globais dos consumidores.

Acesso a objetos existentes na conta do consumidor

Em alguns contextos, um aplicativo instalado precisa acessar objetos na conta do consumidor que existem fora dele. Por exemplo, um aplicativo pode precisar acessar tabelas existentes em um banco de dados do consumidor. Para permitir que o aplicativo crie objetos, o Snowflake Native App Framework usa referências que permitem ao cliente especificar o nome e o esquema de um objeto e permitir o acesso ao objeto.

Para obter mais informações, consulte Solicitação de referências e privilégios de nível de objeto de consumidores.

Comparação de privilégios automáticos e manuais

Requisito do aplicativo

Concessão automática de privilégios

Concessão manual de privilégios

Privilégios para criar objetos

Os aplicativos têm privilégios para criar objetos, com algumas exceções.

Os consumidores devem conceder privilégios explicitamente ao aplicativo usando Snowsight ou SQL.

Acesso a serviços externos

Os aplicativos podem criar regras de rede e integrações de acesso externo.

Os consumidores devem aprovar o acesso externo usando as especificações do aplicativo.

Os consumidores devem criar manualmente as regras de rede necessárias e as integrações de acesso externo e vincular a integração usando referências.

Acesso a provedores de identidade externos

Os aplicativos podem criar integrações de segurança para autenticação de API externa.

Os consumidores devem aprovar a conexão externa usando a especificação do aplicativo.

Os consumidores devem criar manualmente as integrações de segurança necessárias e vincular a integração com referências

Acesso a objetos existentes

Os provedores devem usar referências para acessar objetos existentes.

Os consumidores aprovam o acesso às referências.

Os provedores devem usar referências para acessar objetos existentes.

Os consumidores aprovam o acesso às referências.

Desenvolvimento de aplicativos

Os provedores não precisam escrever código para determinar se o consumidor concedeu um determinado privilégio.

Os provedores devem escrever um código que verifique se o consumidor concedeu um determinado privilégio.

Instalação de aplicativo

Os consumidores não precisam criar objetos manualmente ou conceder privilégios.

Os consumidores devem criar objetos manualmente em sua conta ou conceder privilégios explicitamente ao aplicativo usando Snowsight ou SQL.

Considerações de segurança ao usar privilégios automáticos com especificações do aplicativo

As especificações do aplicativo controlam apenas as comunicações com pontos de extremidade fora do Snowflake. Os consumidores podem aprovar ou recusar especificações do aplicativo para permitir ou impedir que o aplicativo faça conexão com esses pontos de extremidade.

As especificações do aplicativo não impedem que o aplicativo crie objetos do Snowflake que controlam conexões externas: regras de rede, integrações de acesso externo e integrações de segurança. Os privilégios para criar esses objetos são concedidos por meio da concessão automatizada de privilégios.

As especificações do aplicativo não fornecem validação de dados. Além disso, elas não impõem nenhuma restrição a segredos ou tokens referenciados por uma integração de acesso externo ou integração de segurança.

Por exemplo, se um provedor configurar uma integração de acesso externo de um aplicativo para usar ALLOWED_AUTHENTICATION_SECRETS e o consumidor aprovar a especificação do aplicativo para essa integração, o aplicativo poderá modificar posteriormente os segredos e tokens que usa.

No entanto, se um provedor modificar o aplicativo para usar um ponto de extremidade diferente, o número de sequência da especificação do aplicativo mudará e o consumidor precisará reaprovar ou recusar a nova versão.