Noções básicas sobre os direitos do proprietário e aplicativos Streamlit in Snowflake

Neste tópico:

Introdução

O modelo para Streamlit no Snowflake mapeia de perto o modelo de direitos do proprietário em procedimentos armazenados. Isso elimina a necessidade de tokens de conta de serviço e se integra aos recursos de autenticação, controle de acesso e política de redes fornecidos pelo Snowflake.

Sobre os direitos do proprietário em Streamlit in Snowflake

Os aplicativos Streamlit obedecem às seguintes regras dentro de uma sessão:

  • São executados com os privilégios do proprietário, não com os privilégios do chamador.

  • São executados com o warehouse provisionado pelo proprietário do aplicativo.

  • Utilizam o banco de dados e o esquema nos quais o aplicativo Streamlit foi criado no Snowflake, não o banco de dados e o esquema que o chamador está usando atualmente.

Sobre a criação de aplicativos

O privilégio para criar um aplicativo Streamlit é concedido no nível do esquema. Somente usuários com privilégio OWNER no esquema podem criar um aplicativo Streamlit nesse esquema. Quando um aplicativo Streamlit é criado, ele é executado com a função do usuário que criou o aplicativo originalmente.

Visualização de um aplicativo

O proprietário do aplicativo pode escolher quais funções têm permissão para usar o aplicativo.

  • Os visualizadores podem interagir com o aplicativo e ver qualquer coisa exibida na tela.

  • Todos os privilégios da função de proprietário do aplicativo podem ser usados pelo aplicativo quando compartilhados com outras funções, independentemente de o privilégio ter WITH GRANT ativado.

Restrições aos direitos do proprietário

Como os aplicativos são executados com direitos de proprietário, eles têm diversas restrições adicionais. Essas restrições afetam o seguinte:

  • As funções internas que podem ser chamadas de dentro de um procedimento armazenado não estão disponíveis quando um procedimento armazenado é chamado em um aplicativo Streamlit.

  • A capacidade de executar instruções ALTER USER.

  • Os tipos de instruções SQL que podem ser chamadas de dentro de um procedimento armazenado.

  • Alguns comandos DESCRIBE.

Direitos do proprietário e segurança do aplicativo

Embora o Snowflake forneça recursos de segurança como autenticação, controle de acesso baseado em função e controles administrativos, a responsabilidade pela segurança dos aplicativos é compartilhada com os autores dos aplicativos. Portanto, você deve seguir práticas de segurança apropriadas ao desenvolver aplicativos Streamlit dentro do Snowflake.

A lógica incorreta do aplicativo pode permitir que um invasor obtenha acesso total a todos os privilégios concedidos à função do proprietário. Por exemplo, um aplicativo que permite que os visualizadores escrevam comandos SQL diretamente também permitiria que os visualizadores agissem como proprietários do aplicativo: eles poderiam reconfigurar o aplicativo e direcionar outros visualizadores do aplicativo.

Como uma prática recomendada de segurança, Snowflake recomenda que você use o controle de acesso baseado em funções e funções dedicadas para criar e visualizar aplicativos Streamlit.