Verwenden Sie Feature-Richtlinien, um die Objekte einzuschränken, die eine Anwendung erstellen kann

Unter diesem Thema wird beschrieben, wie Sie mithilfe von Feature-Richtlinien die Objekte einschränken, die eine Snowflake Native App erstellen kann.

Allgemeine Informationen zu Feature-Richtlinien

Wenn eine App für die automatische Vergabe von Berechtigungen konfiguriert ist, kann die App die folgenden Berechtigungen anfordern:

  • EXECUTE TASK

  • EXECUTE MANAGED TASK

  • CREATE WAREHOUSE

  • CREATE COMPUTE POOL

  • BIND SERVICE ENDPOINT

  • CREATE DATABASE

  • CREATE EXTERNAL ACCESS INTEGRATION

Der Verbraucher kann diese Berechtigungen nicht widerrufen, nachdem die App installiert wurde. Mit Feature-Richtlinien können Verbraucher jedoch die Objekte einschränken, die eine App erstellen kann.

Wenn Sie z. B. nicht möchten, dass eine App Warehouses oder Computepools erstellt, kann der Administrator eines Kundenkontos eine Feature-Richtlinie erstellen, die es einer bestimmten App oder allen Apps verbietet, Warehouses oder Computepools zu erstellen.

Mithilfe von Feature-Richtlinien können Verbraucher eine App daran hindern, die folgenden Objekte zu erstellen oder zu verwenden:

  • COMPUTE POOLS

  • DATABASES

  • TASKS

  • WAREHOUSES

Bemerkung

Externe Zugriffsintegrationen können nicht mithilfe von Feature-Richtlinien blockiert werden. Stattdessen können Verbraucher die Endpunkte für eine App mithilfe von App-Spezifikationen genehmigen.

Einschränkungen

  • Feature-Richtlinien werden nicht für Datenbanken, Schemas oder darin enthaltene Objekte unterstützt, die Replikation verwenden. Feature-Richtlinien werden für jedes Objekt übersprungen, das Teil einer Replikationsgruppe ist.

Workflow

Der allgemeine Workflow bei der Verwendung von Feature-Richtlinien zur Begrenzung der Objekte, die eine Anwendung erstellen kann, ist folgender:

  1. Sehen Sie sich das Freigabeangebot für die App an, um festzustellen, welche Berechtigungen die App anfordert.

  2. Wenn es Objekte gibt, die Sie einschränken möchten, erstellen Sie eine Feature-Richtlinie, um diese Objekte zu sperren.

    Weitere Informationen dazu finden Sie unter Erstellen einer neuen Feature-Richtlinie.

  3. Wenden Sie die Feature-Richtlinie auf das Konto oder auf ein bestimmtes Objekt an.

    Weitere Informationen dazu finden Sie unter Zuweisen einer Feature-Richtlinie auf Kontoebene und Anwenden einer Feature-Richtlinie auf eine App.

Vorrang der Feature-Richtlinie

Verbraucher können eine Feature-Richtlinie auf alle Anwendungen in einem Konto oder auf eine bestimmte Anwendung anwenden. Wenn es Feature-Richtlinien gibt, die auf mehr als eine von ihnen angewendet werden, hat die spezifischste Feature-Richtlinie Vorrang vor allgemeineren. Die Rangfolge kann wie folgt zusammengefasst werden:

Konto:

Feature-Richtlinien, die auf ein Konto angewendet werden, sind die allgemeinsten Feature-Richtlinien. Sie werden durch Feature-Richtlinien außer Kraft gesetzt, die auf ein bestimmtes Objekt angewendet werden, z. B. eine Anwendung.

Objekt:

Feature-Richtlinien, die auf ein bestimmtes Objekt angewendet werden, haben Vorrang vor solchen, die auf das Konto angewendet werden.

Verbraucher können diesen Vorrang nutzen, um die Objekte, die eine App in ihrem Konto erstellen kann, genau zu bestimmen. Ein Verbraucher kann zum Beispiel eine Feature-Richtlinie auf Kontoebene anwenden, die allen Apps in dem Konto verbietet, eine Datenbank zu erstellen. Wenn eine Anwendung während der Installation versucht, eine Datenbank zu erstellen, schlägt die Installation fehl.

Verbraucher können jedoch auch eine Feature-Richtlinie ohne Einschränkungen erstellen und sie auf eine bestimmte App anwenden. Diese Anwendung würde eine Datenbank erstellen dürfen.

Weitere Informationen dazu finden Sie unter Erstellen einer neuen Feature-Richtlinie.

Erforderliche Berechtigungen für die Verwendung von Feature-Richtlinien

In der folgenden Tabelle werden die Berechtigungen beschrieben, die zum Erstellen und Verwenden von Feature-Richtlinien erforderlich sind:

Berechtigung

Objekt

Anmerkungen

CREATE FEATURE POLICY

SCHEMA

Erforderlich für die Erstellung einer Feature-Richtlinie. Diese Berechtigung muss für das Schema gewährt werden, das die Feature-Richtlinie enthält.

APPLY FEATURE POLICY

ACCOUNT

APPLY oder OWNERSHIP

FEATURE POLICY

Arbeiten mit Feature-Richtlinien

Verbraucher können Snowsight oder SQL verwenden, um den Lebenszyklus einer Feature-Richtlinie zu verwalten.

Erstellen einer neuen Feature-Richtlinie

Verbraucher können Feature-Richtlinien erstellen, um einer App zu verbieten, bestimmte Arten von Objekten zu erstellen. Das folgende Beispiel zeigt, wie Sie eine Feature-Richtlinie erstellen, die es einer App verbietet, eine Datenbank zu erstellen:

CREATE DATABASE feature_policy_db;
CREATE SCHEMA sch;
CREATE FEATURE POLICY block_create_db_policy
  BLOCKED_OBJECT_TYPES_FOR_CREATION = (DATABASE);
Copy

Bemerkung

Feature-Richtlinien müssen in einem Schema erstellt werden.

Verbraucher können auch eine Feature-Richtlinie erstellen, die das Erstellen von Objekten nicht einschränkt, wie im folgenden Beispiel gezeigt:

CREATE FEATURE POLICY block_nothing_policy
  BLOCKED_OBJECT_TYPES_FOR_CREATION = ();
Copy

Zuweisen einer Feature-Richtlinie auf Kontoebene

Verbraucher können eine Feature-Richtlinie auf Kontoebene anwenden, indem sie den Befehl ALTER ACCOUNT verwenden wie im folgenden Beispiel gezeigt:

ALTER ACCOUNT
  SET FEATURE POLICY feature_policy_db.sch.block_create_db_policy
  FOR ALL APPLICATIONS;
Copy

Dieser Befehl wendet die Richtlinie block_create_db_policy für jede App an, die im Konto installiert ist. Nachdem diese Richtlinie angewendet wurde, können Anwendungen keine Datenbanken mehr erstellen.

Anwenden einer Feature-Richtlinie auf eine App

Um bei der manuellen Erstellung einer App eine Feature-Richtlinie anzuwenden, verwenden Sie die WITH FEATURE POLICY-Klausel des Befehls CREATE APPLICATION wie im folgenden Beispiel gezeigt:

CREATE APPLICATION hello_snowflake_app
  WITH FEATURE POLICY = feature_policy_db.block_create_db_policy;
Copy

Um eine Feature-Richtlinie auf eine App anzuwenden, verwenden Sie den Befehl ALTER APPLICATION wie im folgenden Beispiel gezeigt:

ALTER APPLICATION hello_snowflake_app
  SET FEATURE POLICY feature_policy_db.block_create_db_policy;
Copy

Eine Feature-Richtlinie aufheben

Um eine Feature-Richtlinie auf Kontoebene aufzuheben, verwenden Sie den Befehl ALTER ACCOUNT wie im folgenden Beispiel gezeigt:

ALTER ACCOUNT UNSET FEATURE POLICY FOR ALL APPLICATIONS;
Copy

Um die Anwendung einer Feature-Richtlinie für eine bestimmte Anwendung aufzuheben, verwenden Sie den Befehl ALTER APPLICATION wie im folgenden Beispiel gezeigt:

ALTER APPLICATION FEATURE_POLICY_TEST_APP UNSET FEATURE POLICY;
Copy

Eine Feature-Richtlinie löschen

Um eine Feature-Richtlinie zu löschen, verwenden Sie den Befehl DROP FEATURE POLICY wie im folgenden Beispiel gezeigt:

DROP FEATURE POLICY block_create_db_policy;
Copy

Informationen über Feature-Richtlinien anzeigen

Um die Feature-Richtlinien in einem Konto anzuzeigen, für das Sie Zugriffsrechte haben, verwenden Sie den Befehl SHOW FEATURE POLICIES:

SHOW FEATURE POLICIES ON ACCOUNT;
Copy

Um die auf eine App angewandten Feature-Richtlinien anzuzeigen, verwenden Sie den folgenden Befehl:

SHOW FEATURE POLICIES ON APPLICATION hello_snowflake_app;
Copy

Um Informationen über eine bestimmte Feature-Richtlinie zu erhalten, verwenden Sie den Befehl DESCRIBE FEATURE POLICY wie im folgenden Beispiel gezeigt:

DESCRIBE FEATURE POLICY feature_policy_db.block_create_db_policy;
Copy