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 Verwendung der automatisierten Zuweisung von Berechtigungen konfiguriert ist, kann die App die Verwendung der folgenden Berechtigungen anfordern:

  • EXECUTE TASK

  • EXECUTE MANAGED TASK

  • CREATE WAREHOUSE

  • CREATE COMPUTE POOL

  • BIND SERVICE ENDPOINT

  • CREATE DATABASE

  • CREATE EXTERNAL ACCESS INTEGRATION

Wenn die App so konfiguriert ist, dass sie diese Berechtigungen verwendet, kann ein Verbrauchender diese Berechtigungen nach der Installation der App nicht direkt widerrufen. Administratoren von Verbrauchenden können jedoch Feature-Richtlinien verwenden, um die Objekte einzuschränken, die eine App im Konto des Verbrauchenden erstellen kann.

Wenn ein Verbraucher beispielsweise nicht möchte, dass eine App Warehouses oder Computepools erstellt, kann der Administrator eines Verbraucherkontos eine Feature-Richtlinie erstellen, die einer bestimmten App oder allen Apps das Erstellen von Warehouses oder Computepools untersagt.

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

Integrationen für den externen Zugriff können nicht mithilfe von Feature-Richtlinien blockiert werden. Stattdessen können Verbrauchende die Endpunkte einer App mithilfe von App-Spezifikationen genehmigen oder ablehnen.

Workflow

Der allgemeine Workflow für die Verwendung von Feature-Richtlinien zur Einschränkung der Objekte, die eine App erstellen kann, lautet wie folgt:

  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.

Hinweise zur Replikation bei der Verwendung von Feature-Richtlinien

Referenzen von Feature-Richtlinien auf Kontoebene werden repliziert, wenn die Datenbank, die die Richtlinie enthält, angegeben wird, z. B. durch die Einstellung ALLOWED_DATABASES = policy_db in einer Replikationsgruppe oder Failover-Gruppe.

Wenn das Konto bereits in ein Zielkonto repliziert wurde, muss der Verwaltende eines Kontos für Verbrauchende Folgendes tun:

  1. Aktualisieren Sie die Replikations- oder Failover-Gruppe im Quellkonto, um die Datenbanken und Objekttypen aufzunehmen, die für eine erfolgreiche Replikation der Feature-Richtlinie erforderlich sind.

  2. Führen Sie dann eine Aktualisierungsoperation aus, um das Zielkonto zu aktualisieren.

Bemerkung

Die Feature-Richtlinie muss sich in demselben Konto befinden wie die Richtlinienzuweisung auf Kontoebene.

Wenn Sie für das Konto eine Feature-Richtlinie festgelegt haben und Sie die Replikations- oder Failover-Gruppe nicht aktualisieren, sodass die policy_db mit der Richtlinie hinzugefügt wird, wird im Zielkonto eine verwaiste Referenz erstellt. Das bedeutet, dass Snowflake die Richtlinie im Zielkonto nicht finden kann, weil der vollqualifizierte Name der Richtlinie auf die Datenbank im Quellkonto verweist. Das Ergebnis ist, dass das Zielkonto oder die Benutzenden des Zielkontos die Feature-Richtlinie nicht einhalten müssen.

Um eine Feature-Richtlinie erfolgreich zu replizieren, prüfen Sie also vorher, ob die Replikations- oder Failover-Gruppe auch tatsächlich die Objekttypen und Datenbanken enthält, die erforderlich sind, um eine verwaiste Referenz zu verhindern.

Weitere Informationen dazu finden Sie unter Hinweise zur Replikation.

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 innerhalb eines Schemas 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