Sicherheitsanforderungen und Best Practices für ein Snowflake Native App

In diesem Thema werden die Sicherheitsanforderungen und die Best Practices beschrieben, die Anbieter bei der Entwicklung einer Snowflake Native App beachten müssen. Alle Apps, die die unter Automatisierte Überprüfungen der Sicherheit beschriebenen Bedingungen erfüllen, müssen die in den folgenden Abschnitten beschriebenen Sicherheitsanforderungen einhalten:

Bemerkung

Die Sicherheitsanforderungen können sich ändern, da Snowflake ständig neue potenzielle Risiken überwacht.

Sicherheitsanforderungen an den Anwendungscode

Der in einem Anwendungspaket enthaltene App-Code muss den folgenden Sicherheitsanforderungen entsprechen:

  1. Ihre App darf keinen Code von außerhalb des Anwendungspakets laden oder ausführen, mit Ausnahme der von Snowflake bereitgestellten Bibliotheken. Der gesamte App-Code, einschließlich aller Abhängigkeiten von Bibliotheken und des Setup-Codes, muss in der im Anwendungspaket definierten App-Version enthalten sein.

  2. Der gesamte App-Code muss unverschlüsselt sein, d. h. der Code muss für Menschen lesbar sein. Diese Anforderung schließt minifizierten JavaScript-Code ein.

    Bemerkung

    Wenn eine App minimierten JavaScript-Code verwenden muss, muss sie eine entsprechende Quellcode-Map-Datei enthalten, die zur Wiederherstellung des nicht-minimierten Codes verwendet werden kann.

  3. Alle Abhängigkeiten oder Bibliotheken mit kritischen oder bekannten Schwachstellen und Anfälligkeiten (Common Vulnerabilities and Exposures, CVE) müssen auf eine sichere Version aktualisiert werden, sofern verfügbar.

Sicherheitsanforderungen für die App-Funktionalität

Die folgenden Sicherheitsanforderungen gelten für die Funktionalität Ihrer App:

  1. Alle Apps müssen den Kunden im Rahmen eines Freigabeangebots die folgenden Informationen zur Verfügung stellen:

    1. Alle Funktionen und Features der App.

    2. Alle Endpunkte im Internet und URLs, mit denen die App eine Verbindung herstellt.

    3. Alle externen Funktionen in der App.

    4. Alle von der App erfassten, gesammelten oder gespeicherten Verbraucherdaten.

      1. Apps sollten alle nicht notwendigen Cookies verbieten.

      2. Apps sollten Verbrauchern alle wichtigen Cookies mitteilen

  2. Apps sollten so funktionieren, wie es im App-Freigabeangebot angegeben ist.

  3. Alle Anweisungen zur Installation und Einrichtung der App müssen im App-Freigabeangebot enthalten sein.

  4. Apps dürfen keine Kundengeheimnisse im Klartext speichern oder verlangen.

  5. Jede Kommunikation zwischen der App und dem Internet sollte über eine HTTPS-Verbindung mit einem gültigen TLS-Zertifikat erfolgen.

  6. Apps dürfen keine Funktionen aufweisen, die Snowflake, seinen Kunden oder Dritten Schaden zufügen könnten. Mögliche Schäden umfassen Folgendes, sind aber nicht beschränkt darauf:

    1. Datenleck und/oder Datenverlust

    2. Einschränkung des Zugriffs der Verbraucher auf deren Daten, sofern dies nicht ausdrücklich als Teil der App-Funktionalität vorgesehen ist, z. B. Datenmaskierung für Datenzugriffsrichtlinien

    3. Übermäßiger Ressourcenverbrauch

    4. Willkürliche Einschleusung/Ausführung von Code

  7. Alle Verbindungen zu einer App, einschließlich webbasierter Weboberflächen und APIs, müssen sich zunächst mit einer von Snowflake bereitgestellten Authentifizierungsmethode authentifizieren. Jede App-spezifische Authentifizierung muss den Benutzern nach erfolgreicher Snowflake-Authentifizierung präsentiert werden.

  8. Apps sollten keine öffentlichen Endpunkte erstellen, die Verbindungen zur App zulassen, ohne dass zuvor eine erfolgreiche Authentifizierung durch Snowflake erfolgt ist.

Sicherheitsanforderungen für App-Berechtigungen

Die folgenden Sicherheitsanforderungen gelten für die Berechtigungen, die von Ihrer App festgelegt werden:

  1. Alle Apps müssen die folgenden Informationen in der Manifest-Datei enthalten:

    1. Alle von der Apps geforderten Berechtigungen für alle Objekte.

    2. Alle API-Integrationen

  2. Apps dürfen nur die minimal notwendigen Berechtigungen anfordern, die für das Funktionieren der App erforderlich sind

Best Practices für die Entwicklung und Veröffentlichung eines Anwendungspakets

Um den Entwicklungs- und Veröffentlichungsprozess für eine Snowflake Native App zu rationalisieren, empfiehlt Snowflake die Erstellung zweier separater Pakete:

  • Anwendungspaket für Entwicklung

    Das Anwendungspaket für die Entwicklung ist für schnelle Iterationen und Tests gedacht. Die Eigenschaft DISTRIBUTION sollte auf INTERNAL eingestellt sein. Dadurch wird sichergestellt, dass das Anwendungspaket intern bleibt und nicht an externe Verbraucher oder zur Überprüfung und Genehmigung durch Snowflake verteilt wird.

    Indem dieses Paket vom Produktionspaket getrennt gehalten wird, können Entwickler schnell Änderungen vornehmen und neue Features testen, ohne den Prozess der Sicherheitsüberprüfung für jede Iteration auszulösen.

  • Anwendungspaket für Produktion

    Das Anwendungspaket der Produktion ist für die Veröffentlichung eines Anwendungspakets und dessen Verteilung an Snowflake zur Prüfung und Genehmigung sowie an externe Verbraucher gedacht. Für das Anwendungspaket der Produktion sollte die Eigenschaft DISTRIBUTION auf EXTERNAL eingestellt sein.

    Nur Versionen, die die Sicherheitsprüfung des Anbieters bestanden haben, sollten zu diesem Paket hinzugefügt werden. So wird sichergestellt, dass die App die geforderten Sicherheitsstandards erfüllt, bevor sie den Verbrauchern zur Verfügung gestellt wird.

Durch die Einhaltung der Best Practice, getrennte Entwicklungs- und Produktionspakete zu erstellen, können Entwickler einen effizienten Entwicklungszyklus aufrechterhalten und gleichzeitig sicherstellen, dass nur sichere und genehmigte Versionen der App veröffentlicht und an externe Verbraucher verteilt werden.