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:

  1. Ver a listagem do aplicativo para determinar os privilégios que o aplicativo está solicitando.

  2. 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.

  3. 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);
Copy

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 = ();
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

Para visualizar as políticas de recursos aplicadas a um aplicativo, use o seguinte comando:

SHOW FEATURE POLICIES ON APPLICATION hello_snowflake_app;
Copy

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;
Copy