Usar políticas de recursos para limitar os objetos que um aplicativo pode criar¶
Este tópico descreve como usar políticas de recursos para limitar os objetos que um Snowflake Native App pode criar.
Sobre as políticas de recursos¶
Se um aplicativo estiver configurado para usar a concessão automatizada de privilégios, o aplicativo poderá solicitar o uso dos seguintes privilégios:
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
CREATE COMPUTE POOL
BIND SERVICE ENDPOINT
CREATE DATABASE
CREATE EXTERNAL ACCESS INTEGRATION
O consumidor não pode revogar esses privilégios depois que o aplicativo for instalado. No entanto, as políticas de recursos permitem que os consumidores limitem os objetos que um aplicativo pode criar.
Por exemplo, se você não quiser que um aplicativo crie warehouses ou pools de computação, um administrador de conta de consumidor pode criar uma política de recursos que proíba um determinado aplicativo ou todos os aplicativos de criar warehouses ou pools de computação.
As políticas de recursos permitem que os consumidores impeçam um aplicativo de criar ou usar os seguintes objetos:
COMPUTE POOLS
DATABASES
TASKS
WAREHOUSES
Nota
As integrações de acesso externo não podem ser bloqueadas usando políticas de recursos. Em vez disso, os consumidores podem optar por aprovar os pontos de extremidade de um aplicativo usando as especificações do aplicativo.
Limitações¶
Políticas de recursos não são aceitas em bancos de dados, esquemas ou quaisquer objetos dentro deles que usem replicação. As políticas de recursos são ignoradas para qualquer objeto que faça parte de um grupo de replicação.
Fluxo de trabalho¶
O fluxo de trabalho geral do uso de políticas de recursos para limitar os objetos que um aplicativo pode criar é o seguinte:
Ver a listagem do aplicativo para determinar os privilégios que o aplicativo está solicitando.
Se houver algum objeto que você queira restringir, crie uma política de recursos para bloquear esses objetos.
Para obter mais informações, consulte Criar uma nova política de recursos.
Aplicar a política de recursos à conta ou a um objeto específico.
Para obter mais informações, consulte Atribuir uma política de recursos no nível da conta e Aplicar uma política de recursos a um aplicativo.
Precedência da política de recursos¶
Os consumidores podem aplicar uma política de recursos a todos os aplicativos de uma conta ou a um aplicativo específico. Se houver políticas de recursos aplicadas a mais de um deles, a política de recursos mais específica substituirá as políticas de recursos mais gerais. O seguinte resume a ordem de precedência:
- Conta:
As políticas de recursos aplicadas a uma conta são as políticas de recursos mais gerais. Elas são substituídas por políticas de recursos aplicadas a um objeto específico, por exemplo, um aplicativo
- Objeto:
As políticas de recursos aplicadas a um objeto específico substituem as políticas de recursos aplicadas à conta.
Os consumidores podem usar essa precedência para ajustar os objetos que um aplicativo pode criar em sua conta. Por exemplo, um consumidor pode aplicar uma política de recursos no nível da conta que proíba todos os aplicativos da conta de criar um banco de dados. Se um aplicativo tentar criar um banco de dados durante a instalação, a instalação falhará.
No entanto, os consumidores também podem criar uma política de recursos sem restrições e aplicar essa política de recursos a um aplicativo específico. Esse aplicativo teria permissão para criar um banco de dados.
Para obter mais informações, consulte Criar uma nova política de recursos.
Privilégios necessários para usar as políticas de recursos¶
A tabela a seguir descreve os privilégios necessários para criar e usar políticas de recursos:
Privilégio |
Objeto |
Notas |
---|---|---|
CREATE FEATURE POLICY |
SCHEMA |
Necessário para criar uma política de recursos. Esse privilégio deve ser concedido ao esquema que contém a política de recursos. |
APPLY FEATURE POLICY |
ACCOUNT |
|
APPLY ou OWNERSHIP |
FEATURE POLICY |
Como trabalhar com políticas de recursos¶
Os consumidores podem usar Snowsight ou SQL para gerenciar o ciclo de vida de uma política de recursos.
Criar uma nova política de recursos¶
Os consumidores podem criar políticas de recursos para proibir um aplicativo de criar determinados tipos de objetos. O exemplo a seguir mostra como criar uma política de recursos para proibir um aplicativo de criar um banco de dados:
CREATE DATABASE feature_policy_db;
CREATE SCHEMA sch;
CREATE FEATURE POLICY block_create_db_policy
BLOCKED_OBJECT_TYPES_FOR_CREATION = (DATABASE);
Nota
As políticas de recursos devem ser criadas em um esquema.
Os consumidores também podem criar uma política de recursos que não restrinja a criação de objetos, conforme mostrado no exemplo a seguir:
CREATE FEATURE POLICY block_nothing_policy
BLOCKED_OBJECT_TYPES_FOR_CREATION = ();
Atribuir uma política de recursos no nível da conta¶
Os consumidores podem aplicar uma política de recursos no nível da conta usando o comando ALTER ACCOUNT, conforme mostrado no exemplo a seguir:
ALTER ACCOUNT
SET FEATURE POLICY feature_policy_db.sch.block_create_db_policy
FOR ALL APPLICATIONS;
Esse comando aplica a política block_create_db_policy
a qualquer aplicativo que esteja instalado na conta. Depois de aplicar essa política, os aplicativos não poderão mais criar bancos de dados.
Aplicar uma política de recursos a um aplicativo¶
Para aplicar uma política de recursos ao criar um aplicativo manualmente, use a cláusula WITH FEATURE POLICY do comando CREATE APPLICATION, conforme mostrado no exemplo a seguir:
CREATE APPLICATION hello_snowflake_app
WITH FEATURE POLICY = feature_policy_db.block_create_db_policy;
Para aplicar uma política de recursos a um aplicativo, use o comando ALTER APPLICATION, conforme mostrado no exemplo a seguir:
ALTER APPLICATION hello_snowflake_app
SET FEATURE POLICY feature_policy_db.block_create_db_policy;
Cancelar a aplicação de uma política de recursos¶
Para cancelar a aplicação de uma política de recursos no nível da conta, use o comando ALTER ACCOUNT, conforme mostrado no exemplo a seguir:
ALTER ACCOUNT UNSET FEATURE POLICY FOR ALL APPLICATIONS;
Para cancelar a aplicação de uma política de recursos para um aplicativo específico, use o comando ALTER APPLICATION, conforme mostrado no exemplo a seguir:
ALTER APPLICATION FEATURE_POLICY_TEST_APP UNSET FEATURE POLICY;
Excluir uma política de recursos¶
Para excluir uma política de recursos, use o comando DROP FEATURE POLICY, conforme mostrado no exemplo a seguir:
DROP FEATURE POLICY block_create_db_policy;
Visualizar informações sobre políticas de recursos¶
Para visualizar as políticas de recursos em uma conta na qual você tem privilégios de acesso, use o comando SHOW FEATURE POLICIES:
SHOW FEATURE POLICIES ON ACCOUNT;
Para visualizar as políticas de recursos aplicadas a um aplicativo, use o seguinte comando:
SHOW FEATURE POLICIES ON APPLICATION hello_snowflake_app;
Para ver informações sobre uma política de recursos específica, use DESCRIBE FEATURE POLICY, conforme mostrado no exemplo a seguir:
DESCRIBE FEATURE POLICY feature_policy_db.block_create_db_policy;