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.