Verwenden von Trust Center-Erweiterungen¶
Um Lösungen mit dem Trust Center zu integrieren, können Sicherheitspartner das Snowflake Native App Framework verwenden, um Anwendungen zu erstellen, die ein oder mehrere zusätzliche Scanner-Pakete bereitstellen. Diese Anwendungen werden Trust Center-Erweiterungen genannt.
Sie können Trust Center-Erweiterungen erstellen, um Sicherheits-, Datenschutz-, Governance- und Compliance-Lösungen so anzupassen, dass sie besser auf Ihre Anforderungen zugeschnitten sind, und die Erweiterungen dann in Ihrer Organisation freigeben. Sie können auch Erweiterungen erstellen, die allgemeiner verwendet werden können, und sie für bestimmte Snowflake-Konten oder auf Snowflake Marketplace auflisten. Weitere Informationen dazu finden Sie unter Entwickeln einer Trust Center-Erweiterung.
Benutzende können Erweiterungen von Drittanbietern, die Scanner-Pakete enthalten, entdecken, installieren und verwalten. Weitere Informationen dazu finden Sie unter Installieren von Trust Center-Erweiterungen.
Anforderungen an die Zugriffssteuerung¶
Um Trust Center-Erweiterungen zu erstellen und zu verwalten, muss ein Benutzender mit der ACCOUNTADMIN-Rolle Ihrer Rolle die folgenden Berechtigungen erteilen:
Anwendungsrolle SNOWFLAKE.TRUST_CENTER_ADMIN <label-native_apps_app_roles_about>
CREATE APPLICATION PACKAGE
CREATE APPLICATION
Entwickeln einer Trust Center-Erweiterung¶
Sie können eine Trust Center-Erweiterung mit Scanner-Paketen entwickeln und bereitstellen. Sie können Ihre Trust Center-Erweiterung mit der Native App-Versionierung versionieren. Erweiterungen verwenden auch das Native App-Berechtigungsmodell für den Zugriff auf Daten oder Metadaten, wie z. B. Tabellen innerhalb eines Kundenkontos oder Account Usage-Ansichten.
Voraussetzungen¶
Bevor Sie eine Erweiterung mit Scanner-Paketen entwickeln, müssen die folgenden Voraussetzungen erfüllt sein:
Erläuterungen zum Entwickeln von Native App.
Erläuterungen zum Erstellen und Verwenden von gespeicherten Snowflake-Prozeduren.
Erstellen oder identifizieren Sie ein Snowflake-Konto, das als Konto für Erweiterungsanbieter fungieren kann. Jede Native App benötigt ein Anbieterkonto.
Erstellen eines Scanner-Paket-Manifests und Erstellen von Scannern¶
Schritt 1: Erstellen einer Manifest-Datei für die Erweiterung¶
Erstellen Sie eine Manifest-Datei, die Informationen und Metadaten zu den verschiedenen Scanner-Paketen und Scannern enthält:
Erstellen Sie eine Manifest-Datei.
Für die Manifest-Datei gelten folgende Anforderungen:
Der Name der Manifest-Datei muss
tc_extension_manifest.ymlsein.Die
tc_extension_manifest.yml-Datei muss im Stammverzeichnis der Verzeichnisstruktur des benannten Stagingbereichs vorhanden sein, wo sich die Native Appmanifest.yml-Datei befindet.
Die Manifest-Datei listet die Eigenschaften des Scanner-Pakets und alle Scanner auf, die im Scanner-Paket enthalten sind.
Verwenden Sie die folgende Definition für die Manifest-Datei:
manifest_version: '2.0' scanner_packages: - id: '' name: '' short_description: '' description: '' scanners: - id: '' name: '' short_description: '' description: '' type: 'VULNERABILITY' callback: schema: '' name: '' version: ''
Die Manifest-Datei hat die folgenden Eigenschaften:
Eigenschaft
Beschreibung
Maximale Anzahl von Zeichen
manifest_versionDerzeit ist nur
2.0gültig.Nicht anwendbar
scanner_packages.idEin eindeutiger Bezeichner für das Scanner-Paket, den der Anbieter während der Lebensdauer des Scanner-Pakets beibehalten muss. Nur alphanumerische ASCII-Zeichen und Unterstriche werden unterstützt. Alle Konfigurationen, die der Kunde auf ein Scanner-Paket anwendet, werden im Trust Center mit dieser ID gespeichert.
25
scanner_packages.nameDer Name des Scanner-Pakets.
30
scanner_packages.short_descriptionDie kurze Beschreibung des Scanner-Pakets.
150
scanner_packages.descriptionDie Beschreibung des Scanner-Pakets.
700
scanner_packages.scanners.idEin eindeutiger Bezeichner für den Scanner, den der Anbieter während der Lebensdauer des Scanners beibehalten muss. Nur alphanumerische ASCII-Zeichen und Unterstriche werden unterstützt. Alle Konfigurationen, die Kunden auf einen Scanner anwenden, werden im Trust Center mit dieser ID gespeichert.
25
scanner_packages.scanners.nameDer Name des Scanners.
30
scanner_packages.scanners.short_descriptionDie kurze Beschreibung des Scanners.
150
scanner_packages.scanners.descriptionDie lange Beschreibung des Scanners.
1.500
scanner_packages.scanners.typeDer Typ des Scanners. Derzeit wird nur
VULNERABILITYunterstützt.—
scanner_packages.scanners.callbackDer Callback-Abschnitt für den Scanner. Jeder Scanner muss über einen
callback-Abschnitt verfügen, derschema,nameundversionangibt.Nicht anwendbar
scanner_packages.scanners.callback.schemaDas Schema für die gespeicherte Prozedur. Das Schema muss in der
setup_script.sql-Datei vorhanden sein. Weitere Informationen zu dieser Datei finden Sie unter Schritt 3: Erstellen einer Erweiterung.Nicht anwendbar
scanner_packages.scanners.callback.nameName der gespeicherten Prozedur Für die gespeicherte Prozedur gelten die folgenden Anforderungen:
Derzeit muss sie den Namen
scantragen.Der Name der gespeicherten Prozedur, der hier definiert ist, muss in der
setup_script.sql-Datei unter dem Schema vorhanden sein, das incallback.schemaangegeben ist.
Nicht anwendbar
scanner_packages.scanners.callback.versionDie Version der gespeicherten Prozedur. Derzeit wird nur
1.0unterstützt.Nicht anwendbar
Das folgende Beispiel zeigt den Inhalt einer Manifest-Datei:
manifest_version: '2.0'
scanner_packages:
- id: 'se_extension'
name: 'Security Extension'
short_description: 'Enhances security features and capabilities.'
description: 'This extension provides additional security features and capabilities to the platform.'
scanners:
- id: 'es_check'
name: 'NA event sharing check'
short_description: 'Checks for NA event sharing configurations.'
description: 'This scanner checks for event sharing configurations in the North America region.'
type: 'VULNERABILITY'
callback:
schema: 'security_essentials_na_consumer_es_check'
name: 'scan'
version: '1.0'
- id: 'se_mfa'
name: 'MFA Required for Users'
short_description: 'Ensures that MFA is required for all users.'
description: 'This scanner checks that Multi-Factor Authentication (MFA) is enforced for all users in the system.'
type: 'VULNERABILITY'
callback:
schema: 'security_essentials_mfa_required_for_users_check'
name: 'scan'
version: '1.0'
- id: 'se_client'
name: 'Client Security'
short_description: 'Ensures that client security best practices are followed.'
description: 'This scanner checks that client security best practices are enforced for all clients in the system.'
type: 'VULNERABILITY'
callback:
schema: 'security_essentials_client_security'
name: 'scan'
version: '1.0'
- id: 'cis_1_4'
name: 'Extension CIS 1_4'
short_description: 'Checks for compliance with CIS Benchmark 1.4.'
description: 'This scanner checks for compliance with the CIS Benchmark 1.4, ensuring that security best practices are followed.'
type: 'VULNERABILITY'
callback:
schema: 'security_essentials_cis1_4'
name: 'scan'
version: '1.0'
- id: 'cis_3_1'
name: 'Extension CIS 3_1'
short_description: 'Checks for compliance with CIS Benchmark 3.1.'
description: 'This scanner checks for compliance with the CIS Benchmark 3.1, ensuring that security best practices are followed.'
type: 'VULNERABILITY'
callback:
schema: 'security_essentials_cis3_1'
name: 'scan'
version: '1.0'
Schritt 2: Erstellen von Scannern¶
Erstellen Sie ein versioniertes Schema und eine gespeicherte Prozedur, die die Scannerlogik implementiert.
Wenn das Scanner-Paket mehrere Scanner enthält, führen Sie diese Schritte für jeden Scanner aus, wobei Sie für jeden Scanner ein anderes versioniertes Schema verwenden:
Erstellen Sie ein versioniertes Schema für das Hosting der Scannerlogik.
Der Name des Schemas muss mit dem Schema übereinstimmen, das für den Scanner in der Manifest-Datei der Erweiterung angegeben ist.
Die folgende SQL-Anweisung erstellt zum Beispiel ein versioniertes Schema mit dem Namen
security_essentials_mfa_required_for_users:CREATE OR ALTER VERSIONED SCHEMA security_essentials_mfa_required_for_users;
Erstellen Sie eine gespeicherte Prozedur, die die Scannerlogik implementiert.
Im folgenden Beispiel wird eine gespeicherte Prozedur mit dem Namen
scanim Schemasecurity_essentials_mfa_required_for_userserstellt:CREATE OR REPLACE PROCEDURE security_essentials_mfa_required_for_users.scan( run_id VARCHAR) RETURNS TABLE( risk_id VARCHAR, risk_name VARCHAR, total_at_risk_count NUMBER, scanner_type VARCHAR, risk_description VARCHAR, suggested_action VARCHAR, impact VARCHAR, severity VARCHAR, at_risk_entities ARRAY ) LANGUAGE SQL AS $$ -- Scanning logic -- $$;
Stellen Sie sicher, dass die gespeicherte Prozedur für jede Schweregrad- und jede Risiko-ID-Kombination genau eine Zeile zurückgibt.
Die zurückgegebene Tabelle muss die folgenden Spalten haben:
Spalte
Typ
Beschreibung
risk_idVARCHAR
Der Bezeichner für das Risiko.
risk_nameVARCHAR
Der Name des Risikos.
total_at_risk_countNUMBER
Die Gesamtzahl der für einen Scanner gefährdeten Entitäten. Für Szenarios, in denen der Scanner keine Verstöße feststellt, ist der Wert
0. Die maximale Anzahl von risikobehafteten Entitäten beträgt 1.000, und die maximale kombinierte Größe aller Werte in einem Array ist 128 MB.scanner_typeVARCHAR
Derzeit wird nur der Scannertyp
VULNERABILITYunterstützt.risk_descriptionVARCHAR
Die Beschreibung des Risikos.
suggested_actionVARCHAR
Vorgeschlagene Aktion zur Behebung des Problems.
impactVARCHAR
Mögliche Folgen, wenn das Risiko nicht berücksichtigt wird.
severityVARCHAR
Der Schweregrad des Risikos. Mögliche Werte sind LOW, MEDIUM, HIGH und CRITICAL.
at_risk_entitiesARRAY von OBJECT-Werten
Die OBJECT-Werte im Array haben die folgende Struktur:
[ { "entity_id": <id>, "entity_name": "<name>", "entity_object_type": "<type>", "entity_detail": { ..., -- custom data } }, ... ]
Die OBJECT-Werte enthalten die folgenden Schlüssel-Werte-Paare:
entity_id– Ein optionales Feld, das der ID der risikobehafteten Entität entspricht.entity_name– Ein erforderliches Feld, das dem Namen der risikobehafteten Entität entspricht.entity_object_type– Ein erforderliches Feld, das dem Typ der risikobehafteten Entität entspricht. Beispiel:APPLICATION,TASK, NETWORK_POLICY,SECURITY_INTEGRATION,ROLE,PROCEDURE,QUERY,DRIVER,PARAMETER,TABLE,STAGE,DATA_MASKING_POLICYoderROW_ACCESS_POLICY.entity_detail– Kundenspezifische Daten, die die Entität beschreiben.
Die maximale Größe eines Arrays beträgt 128 MB.
Für Szenarios, in denen der Scanner keine Verstöße feststellt, ist der Wert eine leere Liste.
Schritt 3: Erstellen einer Erweiterung¶
Eine Erweiterung bündelt Scanner-Pakete in einer Native App, macht sie für das Trust Center zugänglich und konfiguriert die Berechtigungen, damit das Trust Center die erforderlichen gespeicherten Prozeduren aufrufen kann.
Um eine Erweiterung zu erstellen, führen Sie die folgenden Schritte aus:
Erstellen Sie eine
setup_script.sql-Datei für die Erweiterung, indem Sie die Anweisungen unter Setup-Skript erstellen befolgen.Erstellen Sie in der Datei
setup_script.sqleine Anwendungsrolle namenstrust_center_integration_role.Erteilen Sie dann die erforderlichen Berechtigungen für das versionierte Schema und die gespeicherte Prozedur für diese Anwendungsrolle.
Das folgende Beispiel zeigt, wie Sie die Anwendungsrolle
trust_center_integration_roleerstellen und dann die erforderlichen Berechtigungen erteilen:CREATE APPLICATION ROLE IF NOT EXISTS trust_center_integration_role; GRANT USAGE ON SCHEMA security_essentials_mfa_required_for_users TO APPLICATION ROLE trust_center_integration_role; GRANT USAGE ON PROCEDURE security_essentials_mfa_required_for_users.scan(VARCHAR) TO APPLICATION ROLE trust_center_integration_role;
Die Berechtigungen sind für jeden Scanner im Paket erforderlich.
Erstellen Sie eine
manifest.yml-Datei für die Erweiterung, indem Sie die Anweisungen unter Manifest-Datei für eine App erstellen befolgen.Das folgende Beispiel zeigt den Inhalt einer
manifest.yml-Datei für eine Trust Center-Erweiterung:manifest_version: 1 artifacts: setup_script: setup_script.sql readme: README.md privileges: - IMPORTED PRIVILEGES ON SNOWFLAKE DB: description: "Required access to SNOWFLAKE.ACCOUNT_USAGE views to scan for vulnerabilities"
Erstellen Sie ein Anwendungspaket für die Erweiterung, indem Sie die Anweisungen unter Anwendungspaket erstellen befolgen.
Registrieren Sie eine Version des Anwendungspakets, indem Sie die Anweisungen unter Eine Version registrieren befolgen.
Um zu überprüfen, ob das Anwendungspaket registrierte Versionen hat, können Sie das SHOW VERSIONS IN APPLICATION PACKAGE ausführen.
Erstellen Sie eine Anwendung, die auf einer registrierten Version basiert, indem Sie die Anweisungen unter Eine Anwendung aus einer Version oder einem Patch erstellen befolgen.
Um zu bestätigen, dass das Anwendungsobjekt erstellt wurde, können Sie die SHOW APPLICATIONS ausführen.
Schritt 4: Berechtigungen erteilen¶
Nachdem Sie die Erweiterung installiert haben, erteilen Sie die erforderlichen Berechtigungen, indem Sie die folgenden Schritte ausführen:
Gewähren Sie die von der Erweiterung angeforderten Berechtigungen, indem Sie die Anweisungen unter Zugriffsanforderungen mit Snowsight verwalten befolgen.
Um die
trust_center_integration_role-Anwendungsrolle im Namespace der Erweiterung für die SNOWFLAKE-Anwendung zu gewähren, führen Sie den Befehl GRANT APPLICATION ROLE aus:GRANT APPLICATION ROLE <extension_name>.trust_center_integration_role TO APPLICATION snowflake;
Um beispielsweise die
tc_extension.trust_center_integration_role-Anwendungsrolle für die SNOWFLAKE-Anwendung zu gewähren, führen Sie den folgenden Befehl aus:GRANT APPLICATION ROLE tc_extension.trust_center_integration_role TO APPLICATION snowflake;
Schritt 5: Registrieren der Erweiterung¶
Sie können eine Erweiterung registrieren oder die Registrierung löschen, indem Sie die folgenden gespeicherten Prozeduren aufrufen:
Um eine Erweiterung beim Trust Center zu registrieren, führen Sie die folgenden Schritte aus:
Wechseln Sie zu einer Rolle, der die Anwendungsrolle SNOWFLAKE.TRUST_CENTER_ADMIN zugewiesen wurde.
Rufen Sie die gespeicherte Prozedur SNOWFLAKE.TRUST_CENTER.REGISTER_EXTENSION auf.
Um Details zur Erweiterung anzuzeigen, können Sie den Befehl SHOW APPLICATIONS ausführen. Der Bezeichner des Anwendungspakets oder des Freigabeangebots befindet sich in der Spalte
Quelle.Sie können beispielsweise eine Erweiterung mit dem Namen
tc_extensionregistrieren, die aus dem Anwendungspaket namensmy_tc_packageinstalliert wurde. Rufen Sie dazu die gespeicherte Prozedur auf:CALL SNOWFLAKE.TRUST_CENTER.REGISTER_EXTENSION( 'APPLICATION PACKAGE', 'my_tc_package', 'tc_extension');
Sie können Informationen zu Ihren registrierten Erweiterungen anzeigen, indem Sie die Ansicht EXTENSIONS abfragen.
Bemerkung
Um die Registrierung einer Erweiterung aufzuheben, rufen Sie die gespeicherte Prozedur SNOWFLAKE.TRUST_CENTER.DEREGISTER_EXTENSION auf.
Vergewissern Sie sich, dass das von der Erweiterung bereitgestellte Scanner-Paket jetzt in der Liste der Trust Center-Scanner-Pakete enthalten ist, indem Sie die Anweisungen unter Verfügbare Scanner-Pakete anzeigen befolgen.
Schritt 6: Testen der Erweiterung¶
Nachdem Sie die Berechtigungen erteilt und das Scanner-Paket aktiviert haben, testen Sie die Erweiterung und untersuchen die vom Scanner generierten Ergebnisse, indem Sie die Ansicht SNOWFLAKE.TRUST_CENTER.FINDINGS abfragen. Wenn eine Scannerausführung fehlgeschlagen ist, können Sie den ERROR_CODE und die ERROR_MESSAGE zum Debuggen von Scannerfehlern überprüfen.
Sie können auch Telemetriedaten für Trust Center-Erweiterungen überwachen, indem Sie die Ansichten im Schema DATA_SHARING_USAGE verwenden. Sie können zum Beispiel die Anzahl der installierten Instanzen der Erweiterung ermitteln, indem Sie den Ansicht APPLICATION_STATE abfragen. Darüber hinaus können Sie die Nutzung einer Erweiterung durch die Verbraucher überwachen, indem Sie den Ansicht LISTING_ACCESS_HISTORY abfragen.
Installieren von Trust Center-Erweiterungen¶
Sie können Erweiterungen von Drittanbietern, die Scanner-Pakete enthalten, entdecken, installieren und verwalten.
Installieren und Verwalten von Scanner-Paketen von Drittanbietern¶
Schritt 1: Ermitteln und Installieren von Erweiterungen¶
Sie können eine Trust Center-Erweiterung ermitteln und installieren, die auf Snowflake Marketplace veröffentlicht oder über private Freigabeangebote freigegeben wurde. Trust Center-Erweiterungen können ein oder mehrere Scanner-Pakete enthalten.
Um eine Erweiterung zu finden und zu installieren, gehen Sie wie folgt vor:
Wechseln Sie zu einer Rolle, der die Anwendungsrolle SNOWFLAKE.TRUST_CENTER_ADMIN zugewiesen wurde.
Weitere Informationen über die Gewährung dieser Rolle finden Sie unter Erforderliche Berechtigungen.
Wählen Sie im Navigationsmenü die Option Governance & security » Trust Center aus.
Wählen Sie die Registerkarte Manage scanners aus.
Um eine Liste der Erweiterungen anzuzeigen, die für Ihr Konto verfügbar sind, wählen Sie Extensions aus.
Wählen Sie die Erweiterung aus, die Sie installieren möchten.
Die Seite von Snowflake Marketplace für die Erweiterung wird geöffnet.
Wählen Sie Get aus, um auf das Freigabeangebot zuzugreifen.
Optional: Geben Sie für Application name einen Namen ein.
Um die Erweiterung zu installieren, wählen Sie Get aus.
Wenn die Installation abgeschlossen ist, erscheint eine Snowsight-Benachrichtigung, und eine E-Mail wird an die mit Ihrem Konto verbundene E-Mail-Adresse gesendet.
Weitere Informationen zur Installation von Native Apps finden Sie unter Verwenden und verwalten Sie Snowflake Native Apps als Verbraucher.
Schritt 2: Verwalten der neuen Scanner-Pakete¶
Wenn Sie eine Erweiterung installieren, können Sie ein oder mehrere Scanner-Pakete installieren. Um die neu installierten Scanner-Pakete anzuzeigen, führen Sie die folgenden Schritte aus:
Wechseln Sie zu einer Rolle, der die Anwendungsrolle SNOWFLAKE.TRUST_CENTER_ADMIN zugewiesen wurde.
Weitere Informationen über die Gewährung dieser Rolle finden Sie unter Erforderliche Berechtigungen.
Wählen Sie im Navigationsmenü die Option Governance & security » Trust Center aus.
Wählen Sie die Registerkarte Manage scanners aus.
In der Liste der Scanner-Pakete werden für jedes neue Scanner-Paket die folgenden Informationen angezeigt:
NAME – Der Name des neuen Scanner-Pakets.
SOURCE – Der Name der Erweiterung, die Sie installiert haben.
SCANNERS – Die Anzahl der aktivierten und deaktivierten Scanner im Scanner-Paket.
STATUS – Der Status des Scanner-Pakets. Standardmäßig sind neu installierte Scanner-Pakete deaktiviert.
Um ein neues Scanner-Paket zu aktivieren, führen Sie die folgenden Schritte aus:
Wählen Sie in der Liste der Scanner-Pakete das Scanner-Paket aus.
Wählen Sie auf der Seite des Scanner-Pakets die Option Enable package aus.
Um die für das neue Scanner-Paket erforderlichen Berechtigungen zu gewähren, wählen Sie Grant aus.
Wählen Sie Enable aus.
Wiederholen Sie diese Schritte für jedes neue Scanner-Paket, das Sie aktivieren möchten.
Sie können das neue Scanner-Paket auf die gleiche Weise verwalten wie andere Scanner-Pakete im Trust Center. Sie können zum Beispiel das neue Scanner-Paket einplanen oder deaktivieren. Weitere Informationen dazu finden Sie unter Scanner-Pakete verwalten.
Sie können die Scanner im neuen Scanner-Paket auf die gleiche Weise verwalten wie andere Scanner. Sie können zum Beispiel einen Scanner aktivieren, deaktivieren oder einen Zeitplan erstellen. Weitere Informationen dazu finden Sie unter Verwalten von Scannern.
Sie können die mit der Erweiterung verbundene Native App auch direkt überwachen und verwalten. Weitere Informationen dazu finden Sie unter Apps verwalten.
Sie können die von den Scanner-Paketen generierten Ergebnisse, die mit der Erweiterung installiert sind, durch Abfragen der Ansicht SNOWFLAKE.TRUST_CENTER.FINDINGS anzeigen. Die folgende Abfrage gibt zum Beispiel die Ergebnisse für die Scanner-Pakete zurück, die mit einer Erweiterung installiert sind, die eine extension_id von 4486988721 hat:
SELECT * FROM snowflake.trust_center.findings WHERE extension_id = 4486988721;
Um die Bezeichner für registrierte Erweiterungen zu finden, fragen Sie die Ansicht EXTENSIONS ab.
Weitere Informationen zu den Ergebnissen des Trust Centers finden Sie unter Erkenntnisse und Sicherheitsrisiken anzeigen.
Problembehandlung bei der Installation und Registrierung von Erweiterungen¶
Wenn eine Abfrage in der Ansicht SNOWFLAKE.TRUST_CENTER.FINDINGS FAILED in der Spalte COMPLETION_STATUS zurückgibt, dann ist die Ausführung des Scanners fehlgeschlagen. Ein möglicher Grund für Scannerfehler ist, dass die Erweiterung nicht die erforderlichen Berechtigungen erhalten hat. Stellen Sie sicher, dass die Erweiterung die unter Schritt 4: Berechtigungen erteilen beschriebenen Berechtigungen erhalten hat.
Nachdem Sie die erforderlichen Berechtigungen erteilt haben, führen Sie das Scanner-Paket erneut aus, um neue Ergebnisse zu generieren. Wenn eine Abfrage in der Ansicht SNOWFLAKE.TRUST_CENTER.FINDINGS immer noch FAILED in der Spalte COMPLETION_STATUS zurückgibt, dann wenden Sie sich an den Snowflake-Support.