Best Practices für die Migration von der Ein-Faktor-Authentifizierung

In diesem Abschnitt finden Sie Best Practices für Kunden, wie sie die Funktionen von Snowflake nutzen können, um eine starke Authentifizierung zu erzwingen und das Risiko des Diebstahls von Anmeldeinformationen zu verringern. Verwenden Sie diese Informationen in Verbindung mit Planung für die Abschaffung der Anmeldung mit Ein-Faktor-Kennwort, das die neuesten Snowflake-Strategien für die Abkehr von der reinen Kennwort-Authentifizierung aufzeigt.

Die Beispielabfragen in diesem Leitfaden sind Beispiele, die Snowflake-Kunden helfen sollen, und sind nicht dafür gedacht, in Produktionsumgebungen implementiert zu werden.

Einführung

Wie in diesem Artikel erwähnt, konzentriert sich Snowflake auf drei wichtige Säulen, die es Ihnen erleichtern, Ihre Konten sicher zu halten:

  • Eingabeaufforderung: Ermutigen Sie Benutzer, die keine bewährten Sicherheitspraktiken anwenden, diese zu übernehmen (konfigurieren Sie z. B. eine mehrstufige Authentifizierung (MFA).

  • Durchsetzung: Machen Sie es Administratoren leicht, die Sicherheit standardmäßig durchzusetzen (z. B. verlangen Sie von allen menschlichen Benutzern die Verwendung von MFA).

  • Überwachung: Verschaffen Sie sich einen Überblick über die Einhaltung von Sicherheitsrichtlinien (prüfen Sie z. B., welche Benutzer keine MFA-Konfiguration vorgenommen haben).

Die folgenden Informationen konzentrieren sich hauptsächlich auf bewährte Praktiken für die Überwachung mithilfe von Snowflake Trust Center sowie auf Schritte zur Durchsetzung von Authentifizierungs- und Netzwerkrichtlinien.

Lebenszyklus von Snowflake-Verbindungssitzungen

Verbindungen mit Snowflake beginnen mit Treibern, Konnektoren oder Snowsight, wie im folgenden Diagramm dargestellt:

Möglichkeiten zur sicheren Verbindung mit Snowflake

Wenn ein Benutzer oder ein Dienst eine Verbindung zu Snowflake herstellt, geschieht Folgendes:

  • Falls konfiguriert, gilt die Netzwerkrichtlinie. Beachten Sie, dass Netzwerkrichtlinien auf Benutzerebene Vorrang vor Netzwerkrichtlinien auf Kontoebene haben.

  • Falls konfiguriert, gilt die Authentifizierungsrichtlinie. Denken Sie daran, dass Authentifizierungsrichtlinien auf Benutzerebene Vorrang vor Authentifizierungsrichtlinien auf Kontoebene haben.

    Wenn ein Benutzer oder Dienst die Snowflake-eigene Authentifizierung mit Kennwörtern verwendet, wird die Kennwortrichtlinie angewendet, sofern sie konfiguriert ist.

  • Wenn der Benutzer oder der Dienst durch die oben genannten Kontrollen erlaubt und autorisiert ist, gelten die Sitzungsrichtlinien, um zu kontrollieren, wie sich ein Benutzer nach einer Inaktivitätsperiode neu authentifiziert. Sitzungsrichtlinien auf Benutzerebene haben Vorrang vor Sitzungsrichtlinien auf Kontoebene.

Netzwerk- und Authentifizierungsrichtlinien: Allgemeine Richtlinien

Beachten Sie in allen Fällen die folgenden Richtlinien. Weitere Informationen dazu finden Sie unter Phase 3: Schutz.

Snowflake empfiehlt dringend, diese zu konfigurieren und anzuwenden:

  • Benutzer TYPE Attribut zur Unterscheidung zwischen PERSON (menschlich), SERVICE und LEGACY_SERVICE.

    • PERSON: Für die interaktive Authentifizierung durch menschliche Benutzer, bei der MFA erzwungen wird. Zum Zeitpunkt der Erstellung dieses Dokuments lautet die Standardeinstellung NULL, was aus Sicht der MFA-Durchsetzung als PERSON behandelt wird.

    • SERVICE: Für die Service-zu-Service-Authentifizierung, die einen programmatischen Zugriff verwendet. Diese werden von der MFA-Durchsetzung ausgenommen, aber diese Benutzer unterstützen die Authentifizierung mit Kennwörtern nicht mehr. Diese Benutzer unterstützen entweder OAuth oder nur Schlüsselpaare.

    • LEGACY_SERVICE: Dies ist der einzige Benutzertyp, der eine reine Kennwort-Authentifizierung unterstützt (von der MFA-Durchsetzung ausgenommen). Es ist nur als Migrationstool gedacht, und die Kunden müssen diese Benutzer mit Netzwerkrichtlinien schützen und sie mit der Funktion Schutz vor geleakten Kennwörtern überwachen.

      Bemerkung

      LEGACY_SERVICE sollte als Migrationstool verwendet werden und wird im November 2025 aufgelassen.

  • SCIM für die automatische Bereitstellung und Einstellung des Benutzertyps über Kundenattribute

  • Netzwerkrichtlinien, um sicherzustellen, dass Ihre Benutzer und Dienste nur von autorisierten und vertrauenswürdigen Quellen kommen, wann immer das möglich ist.

  • Authentifizierungsrichtlinien zur Durchsetzung starker Authentifizierungsmethoden, die kurzlebige Anmeldeinformationen wie OAuth und SAML nutzen.

  • Kennwortrichtlinien zur Durchsetzung der Kennwortrichtlinien des Unternehmens.

  • Sitzungsrichtlinien zur Begrenzung der Leerlaufzeiten von Sitzungen.

Für Benutzer von Diensten werden Kunden ermutigt, wenn möglich kurzlebige Anmeldeinformationen wie OAuth zu verwenden. Für längerfristige Anmeldeinformationen, wie Schlüsselpaare, wird den Kunden empfohlen, diese Schlüssel regelmäßig zu wechseln und sie nach Möglichkeit mit Netzwerkrichtlinien zu kombinieren.

Für menschliche interaktive Benutzer sollten Kunden ihre Snowflake-Konten mit ihren unternehmensweiten Identitätsanbietern integrieren und ihre eigene SAML-föderierte Authentifizierung mit ihrem eigenen Identitätsanbieter und mit ihrem eigenen MFA nutzen.

Für Break-Glass-Anwendungsfälle und Kunden, die native Kennwörter verwenden, empfiehlt Snowflake dringend die Verwendung von Snowflake Native MFA für diese Benutzer mit Break-Glass.

Kunden sollten ihre Anmeldeinformationen entsprechend ihrer internen Sicherheitsrichtlinien regelmäßig wechseln.

Kunden sollten immer Trust Center verwenden, um ihre risikobehafteten Benutzer zu überwachen und ihre Snowflake-Konten mit dem Security Operation Center ihres Unternehmens zu integrieren.

Snowflake North Star für stärkere Authentifizierung

Im Jahr 2025 wird Snowflake zusätzliche Funktionen unterstützen, um Kunden zu helfen.

In der ersten Hälfte des Jahres 2025

  • Verbesserung unserer nativen MFA-Unterstützung, um über DUO hinauszugehen und Passkey- und Authentifikator-Apps zu unterstützen (in der privaten Vorschau mit dem Ziel der allgemeinen Verfügbarkeit gegen Ende April 2025).

  • Native OAuth-Unterstützung in unseren Treibern und Konnektoren zur Vereinfachung der OAuth-Konfiguration und Einführung.

  • Neue Trust Center-Funktionen, wie zum Beispiel:

    • E-Mail-Benachrichtigungen (die öffentliche Vorschau ist für Ende April 2025 geplant).

    • Erweiterungen mit unseren Partnern und benutzerdefinierte Scanner-Pakete (jetzt in der privaten Vorschau, geplante allgemeine Verfügbarkeit Ende Juli 2025).

    • Trust Center auf der Ebene der Kundenorganisation (in privater Vorschau für Ende April 2025).

Später im Jahr 2025

  • Erweiterung des Trust Center um die Erkennung von Anomalien durch maschinelles Lernen.

  • Verbesserung der Benutzerfreundlichkeit mit SAML, OAuth mit Snowsight.

  • Unterstützung von Workload-Identität und OIDC, wobei Kunden native CSP-Identitäten wie Azure Managed Identity, AWS-Rollen und GCP-Service Konten verwenden können, um ihre Workloads einfach und ohne Anmeldeinformationen mit Snowflake zu verbinden.

  • Unterstützung von mTLS in beide Richtungen, eingehend zu Snowflake und ausgehend von Snowflake, zu den Ressourcen des Kunden, die mTLS unterstützen.

Snowflake behält sich das Recht vor, die obige Liste und die Zeitpläne nach eigenem Ermessen zu aktualisieren und zu ändern; wir werden Ihnen in Zukunft weitere Details mitteilen.

Bewährte Verfahren zur Durchsetzung von Authentifizierung und Netzwerkrichtlinien

Snowflake empfiehlt, die folgenden vier Schritte für die Umstellung auf eine stärkeren Authentifizierung zu befolgen:

  1. Erkennen Sie riskante Benutzer.

  2. Planen Sie Ihre Migration so, dass die Unterbrechung möglichst gering ist.

  3. Schützen Sie Ihre Benutzer in Snowflake.

  4. Überwachen Sie kontinuierlich auf riskante Benutzer.

Vier Phasen der Migration zu MFA

Phase 1: Erkennen

Snowflake hat zwei Hauptfunktionen eingeführt:

  • Threat Intelligence Scanner-Paket: Dieser Scanner identifiziert riskante Benutzer anhand der Logik im nächsten Diagramm. In diesem Abschnitt finden Sie auch eine Beispielabfrage, in der Sie die riskanten Benutzer auflisten und erklären können, warum sie riskant sind.

  • Schutz vor geleakten Kennwörtern: Damit werden die im Dark Web entdeckten Kennwörter von Benutzern überprüft und automatisch deaktiviert. Dies bietet einen eingebauten Schutz gegen das Ausspähen von Kennwörtern und trägt dazu bei, das Potenzial für die Datenexfiltration zu begrenzen. Kompromittierte Benutzer können sich an Kontoadministratoren wenden, um ihre Kennwörter zurückzusetzen.

Kunden sollten den Threat Intelligence Scanner einschalten und die Scan-Häufigkeit anpassen. Im Allgemeinen sollte dieser Scanner einmal pro Woche ausgeführt werden, um über die aktuelle Risikosituation der Benutzer zu berichten. Die Ergebnisse aller Trust-Scanner werden im Schema SNOWFLAKE.TRUST_CENTER gespeichert. Kunden können Snowflake nutzen, um automatisch die Sicherheitsadministratoren zu benachrichtigen oder sogar Maßnahmen zu ergreifen, wenn ein riskanter Benutzer entdeckt wird.

Beispielabfragen für Listen riskanter Benutzer

Snowflake hat vor kurzem zwei neue Scanner eingeführt: einen für Benutzer und einen für Service-Benutzer. So können Kunden je nach Benutzertyp getrennte Listen von Benutzern führen, die sich mit einem Ein-Faktor-Kennwort anmelden.

Sie können eine Liste der riskanten Benutzer für jeden Typ zurückgeben.

Liste der riskanten menschlichen Benutzer
SELECT *
  FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
  WHERE event_id =
    (SELECT event_id FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
    WHERE scanner_id = 'THREAT_INTELLIGENCE_NON_MFA_PERSON_USERS'
    ORDER BY event_id DESC LIMIT 1) AND total_at_risk_count != 0
;
Copy
Liste der riskanten Service-Benutzer
SELECT *
  FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
  WHERE event_id =
    (SELECT event_id FROM SNOWFLAKE.TRUST_CENTER.FINDINGS
    WHERE scanner_id = 'THREAT_INTELLIGENCE_PASSWORD_SERVICE_USERS'
    ORDER BY event_id DESC LIMIT 1 ) and total_at_risk_count != 0
;
Copy

Verteilung der Benutzer auf TYPE und die verwendete Authentifizierungsmethode

Zusätzlich zu der vorherigen Abfrage ist es von Vorteil, die Verteilung der Benutzer auf die verschiedenen Benutzertypen und die verwendeten Authentifizierungsmethoden aufzulisten. Dies hilft Kunden bei der strategischen Umstellung von Benutzern auf stärkere Authentifizierungsmethoden wie SAML und OAuth. Wenn zum Beispiel ein Benutzer als riskant angezeigt wird (weil er ein Kennwort in Snowflake hat), dieser Benutzer aber nur die SAML-Authentifizierung verwendet, ist es ratsam, dieses Kennwort so schnell wie möglich aus Snowflake zu entfernen.

WITH users AS (
  SELECT DISTINCT
       user_id
      , name
      , login_name
      , type
      , email
  FROM
      SNOWFLAKE.ACCOUNT_USAGE.USERS
  WHERE
      DELETED_ON IS NULL)
SELECT
    u.user_id
    , a.event_timestamp
    , a.user_name
    , u.type
    , a.reported_client_type
    , a.first_authentication_factor
    , a.second_authentication_factor
  FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY AS a
    JOIN USERS u ON a.user_name = u.name
;
Copy

Phase 2: Planung der Migration

Die Migrationsplanung beginnt mit Phase 1: Erkennen. Nachdem Sie die risikobehafteten Benutzer identifiziert haben, beginnen Sie mit der Planung, die Netzwerk- und Authentifizierungsrichtlinien: Allgemeine Richtlinien zu verfolgen. Sie sollten von statischen Anmeldeinformationen wie Kennwörtern und Schlüsselpaaren abrücken, wann immer dies möglich ist, und Single Sign-On (föderierte Authentifizierung) nutzen, z. B. SAML für interaktive Benutzer und OAuth für programmatische (SERVICE) und interaktive (PERSON) Benutzer.

Wenn Sie gezwungen sind, statische Anmeldeinformationen (Schlüsselpaare oder Kennwörter) zu verwenden, um einige Legacy-Anwendungen zu unterstützen, sollten Sie bei Ihrer Planung Folgendes berücksichtigen:

  • Nutzen Sie Netzwerkrichtlinien, wenn möglich.

  • Wechseln Sie diese statischen Anmeldeinformationen entsprechend den Richtlinien Ihres Unternehmens.

Hinweise zur Migration

Im Folgenden finden Sie einige Überlegungen, die Sie bei der Planung Ihrer Migration beachten sollten:

  • Legen Sie zunächst die Benutzertypen fest (dies kann über SCIM automatisiert werden).

  • Zweitens: Prüfen Sie, welche Authentifizierungsmethoden Ihre Anwendungen unterstützen: Snowflake unterstützt eine Vielzahl von Authentifizierungsmethoden, wie OAuth, SAML, Schlüsselpaar, MFA, und so weiter. Allerdings muss die Anwendung, die eine Verbindung zu Snowflake herstellt, auch starke Authentifizierungsmethoden unterstützen. Es gibt zwei Anwendungsfälle:

    • Die App unterstützt bereits SAML und/oder OAuth. Wir empfehlen Ihnen, so bald wie möglich auf diese Authentifizierung umzusteigen.

    • Die App ist veraltet und unterstützt keine starken Authentifizierungsmethoden wie SAML oder OAuth; sie unterstützt nur Kennwörter. In diesem Fall ist es ratsam, Ihre alte Anwendung zu aktualisieren. In der Zwischenzeit können Sie Netzwerkrichtlinien, die Rotation von Kennwörtern und durchgesickerte Features zum Schutz vor geleakten Kennwörtern nutzen, bis Sie ihre Anwendung aktualisieren.

  • Als Nächstes sollten Kunden für lokale Benutzer (die manuell in Snowflake erstellt wurden und nicht SAML- oder OAuth-fähig sind) Folgendes beachten:

    • Bei einer Anwendung, die SSO unterstützt, wechseln Sie den lokalen Benutzer zu SSO-fähigen Benutzern und berücksichtigen Sie die Ausfallzeit beim Benutzerwechsel.

    • Um lokale Benutzer auf SSO-fähig zu wechseln, stellen Sie sicher, dass solche Benutzer in Ihrem IdP existieren und dann in Snowflake manuell oder vorzugsweise automatisch über SCIM bereitgestellt werden.

    • Deaktivieren Sie nicht verwendete lokale Benutzer.

  • Snowflake unterstützt Authentifizierungsrichtlinien, Netzwerkrichtlinien und Kennwortrichtlinien sowohl auf Benutzer- als auch auf Kontoebene. Berücksichtigen Sie zuerst die Richtlinien auf Benutzerebene, um sie schrittweise zu migrieren (Richtlinien auf Benutzerebene haben Vorrang vor Richtlinien auf Kontoebene):

    • Snowflake empfiehlt Netzwerkrichtlinien auf Benutzerebene für Anwendungen, die Service-Benutzer verwenden (TYPE = SERVICE oder LEGACY_SERVICE).

    • Für menschliche Benutzer (TYPE = PERSON oder NULL) können Sie mit Netzwerkrichtlinien auf Benutzerebene beginnen und dann Netzwerkrichtlinien auf Kontoebene anwenden, um alle Benutzerpopulationen zu schützen, für die es keine benutzerspezifischen Richtlinien gibt.

    • Das gleiche Konzept mit MFA-Richtlinien beginnt zunächst mit den Richtlinien auf Benutzerebene.

  • Wenn Sie eine Legacy-Anwendung haben, die Single Sign-On nicht unterstützt, empfiehlt Snowflake die Nutzung von programmatische Zugriffstoken (PATs), die standardmäßig an bestimmte Rollen gebunden sind, eine Netzwerkrichtlinie erfordern und zeitlich gebunden sind.

Phase 3: Schutz

Das folgende Diagramm hilft Ihnen bei der Navigation durch die empfohlenen Best Practices für die Authentifizierung. Wie Sie sehen, empfiehlt Snowflake, immer zuerst die föderierte Authentifizierung und Autorisierung zu verwenden.

Bewährte Verfahren zur Authentifizierung

Bitte befolgen Sie diese Schritte, um das Risiko einer Kompromittierung Ihres Snowflake-Kontos zu minimieren:

  1. Benutzertyp einstellen.

  2. Entfernen Sie lokale Kennwörter, wenn sie nicht benötigt werden.

  3. Erstellen Sie Authentifizierungsrichtlinien für Benutzer von Diensten.

  4. Erstellen Sie Authentifizierungsrichtlinien, um MFA für menschliche Benutzer zu erzwingen.

  5. Kennwortrichtlinie erstellen.

  6. Sitzungsrichtlinie erstellen.

  7. Erstellen Sie Netzwerkrichtlinien für Benutzer von Diensten.

  8. Erstellen Sie Netzwerkrichtlinien auf der Ebene des Kontos.

  9. Schutz von Service-Benutzern.

  10. Kennwort- und Sitzungsrichtlinien auf der Ebene des Kontos anwenden.

  11. Service-Benutzer testen.

  12. Schützen Sie Ihr Konto mit MFA-Durchsetzung.

  13. Netzwerkrichtlinien auf Kontoebene anwenden.

  14. Ungenutzte Benutzer deaktivieren.

Benutzertyp einstellen

Der erste Schritt in der Schutzphase besteht darin, die Benutzertypen automatisch über SCIM oder manuell einzustellen:

ALTER USER svc_user1 SET TYPE = SERVICE;
ALTER USER user1@example.COM SET TYPE = PERSON;
-- LEGACY APPLICATION ONLY
Copy

Außerdem können Sie jetzt den Typ des Benutzers festlegen, wenn dieser ein Konto erstellt:

CREATE ACCOUNT <name> [ ADMIN_USER_TYPE = PERSON | SERVICE | LEGACY_SERVICE | NULL ];
Copy

Tipp

Viele Kunden haben in der Regel ein bestimmtes Muster in ihren Benutzernamen für den Dienst (z. B. local_svc_user1). Sie können dieses Benennungsmuster nutzen, um den Typ SERVICE zu skalieren.

Entfernen Sie lokale Kennwörter, wenn sie nicht benötigt werden

Nutzen Sie die Abfragen unter Verteilung der Benutzer auf TYPE und AuthN verwendete Methode und Liste riskanter Benutzer, basierend auf den Erkenntnissen des Trust Centers, um mit der Bereinigung aller Kennwörter in Snowflake für einen Benutzer zu beginnen, der bereits ausschließlich SAML, OAuth oder Schlüsselpaar verwendet.

Erstellen Sie Authentifizierungsrichtlinien für Benutzer von Diensten

Snowflake empfiehlt die Verwendung von OAuth für Benutzer von programmatischen Diensten, und Sie können dies mit Authentifizierungsrichtlinien erzwingen:

CREATE AUTHENTICATION POLICY PROGRAMMATIC_ACCESS_USER_AUTH
  CLIENT_TYPES = ('DRIVERS', 'SNOWSQL')
  AUTHENTICATION_METHODS = ('OAUTH')
  SECURITY_INTEGRATIONS = ('<OAUTH SECURITY INTEGRATIONS>');

ALTER USER <SERVICE_USER> SET AUTHENTICATION POLICY PROGRAMMATIC_ACCESS_USER_AUTH;
Copy

Kunden können immer noch ein Schlüsselpaar für die Authentifizierung mit SERVICE-Benutzern verwenden, aber sie sollten dies mit Netzwerkrichtlinien kombinieren und ihre Schlüssel regelmäßig rotieren.

Bemerkung

Wenn Sie ein Legacy-System haben, das keine Schlüsselpaare oder OAuth unterstützt, und Sie ein Kennwort zur Authentifizierung verwenden müssen, erstellen Sie eine zusätzliche Authentifizierungsrichtlinie mit der Authentifizierungsmethode PASSWORD und wenden Sie diese auf diesen speziellen programmatischen Benutzer an. Kombinieren Sie diesen Ansatz mit Netzwerk- und Authentifizierungsrichtlinien: Allgemeine Richtlinien.

Erstellen Sie Authentifizierungsrichtlinien, um MFA für menschliche Benutzer zu erzwingen

Snowflake empfiehlt, dass Kunden ihre eigenen SAML-Identitätsanbieter (IdPs) mit jeder MFA-Lösung verwenden, die ihre IdP unterstützt. Das folgende Beispiel für eine Authentifizierungsrichtlinien hilft Kunden dabei:

  • Snowflake-native MFA für alle menschlichen Benutzer durchzusetzen, die Snowflake-native Kennwörter verwenden.

  • Sich auf die SAML IdP des Kunden zu verlassen, um MFA für Benutzer mit Single Sign-On durchzusetzen.

CREATE AUTHENTICATION POLICY HUMAN_ACCESS_ACCOUNT_ENFORCE_MFA
  AUTHENTICATION_METHODS = ('SAML', 'PASSWORD')
  SECURITY_INTEGRATIONS = ('<SAML SECURITY INTEGRATIONS>')
  MFA_AUTHENTICATION_METHODS = ('PASSWORD'); -- enforce Snowflake MFA for native passwords only
  MFA_ENROLLMENT = 'REQUIRED';
Copy

Kunden sollten eine Break-Glass-Situation für den Fall in Betracht ziehen, dass das IdP des Kunden offline ist, sodass sich die Kontoadministratoren immer noch in ihre Snowflake-Konten einloggen können.

CREATE AUTHENTICATION POLICY ACCOUNTADMIN_BREAKGLASS_MFA
  AUTHENTICATION_METHODS = ('PASSWORD')
  MFA_AUTHENTICATION_METHODS = ('PASSWORD') -- enforce Snowflake MFA for native passwords only
  MFA_ENROLLMENT = 'REQUIRED';
Copy
MFA für SSO

Bemerkung

Für strengere Richtlinien können Sie zusätzliche MFA-Durchsetzungsrichtlinien erstellen und diese direkt auf der Benutzerebene anwenden: zum Beispiel, wenn der Kunde IdP MFA nicht unterstützt, um Snowflake MFA bei einem Benutzer unabhängig von MFA-Durchsetzung auf der IdP-Ebene durchzusetzen. (Einige Kunden könnten diese Option für eine doppelte MFA für hoch privilegierte Benutzer, wie z. B. Kontoadministratoren, verwenden)

CREATE AUTHENTICATION POLICY ACCOUNTADMIN_DOUBLE_MFA
  AUTHENTICATION_METHODS = ('PASSWORD', 'SAML')
  SECURITY_INTEGRATIONS = ('<SAML SECURITY INTEGRATIONS>')
  MFA_AUTHENTICATION_METHODS = ('PASSWORD', 'SAML') -- double MFA
  MFA_ENROLLMENT = 'REQUIRED';
Copy

Kennwortrichtlinie erstellen

Falls Sie ein Legacy-System oder eine Break-Glass-Situation haben, in der Sie die nativen Kennwörter von Snowflake verwenden müssen, nutzen Sie die Kennwortrichtlinien von Snowflake, um sie an die Kennwortrichtlinien Ihres Unternehmens anzupassen, falls diese von den Standardrichtlinien abweichen.

CREATE PASSWORD POLICY password_policy_account
  PASSWORD_MIN_LENGTH = 32
  -- PASSWORD_MAX_LENGTH = <integer>
  PASSWORD_MIN_UPPER_CASE_CHARS = 6
  PASSWORD_MIN_LOWER_CASE_CHARS = 6
  PASSWORD_MIN_NUMERIC_CHARS = 4
  PASSWORD_MIN_SPECIAL_CHARS = 8
  PASSWORD_MIN_AGE_DAYS = 10
  PASSWORD_MAX_AGE_DAYS = 30
  PASSWORD_MAX_RETRIES = 3
  PASSWORD_LOCKOUT_TIME_MINS = 30
  PASSWORD_HISTORY = 24
  COMMENT = '<string_literal>';
Copy

Sitzungsrichtlinie erstellen

Snowflake empfiehlt, dass Sie Sitzungsrichtlinien erstellen, um eine erneute Authentifizierung nach einer bestimmten Zeit der Inaktivität zu erzwingen. Dies ist nur ein Beispiel. Sie können die Richtlinien auf der Ebene des einzelnen Benutzers anpassen.

CREATE SESSION POLICY session_policy_account
  SESSION_IDLE_TIMEOUT_MINS = 240 -- Snowflake clients and programmatic clients
  SESSION_UI_IDLE_TIMEOUT_MINS = 20 -- For the Snowflake web interface
  COMMENT = '<string_literal>';
Copy

Erstellen Sie Netzwerkrichtlinien für Benutzer von Diensten

Im Allgemeinen sollten Benutzer, die auf Dienste oder Programme zugreifen, von autorisierten IP-Adressen kommen (oder VPCE ID, LinkID, und so weiter, im Falle einer privaten Konnektivität).

Snowflake empfiehlt die Erstellung von Netzwerkrichtlinien auf der Ebene der Dienst-Benutzer, um den Zugriff auf die Benutzer mit programmatischem Zugriff aus autorisierten und vertrauenswürdigen Quellen zu beschränken. Kunden sollten in Erwägung ziehen, Netzwerkregeln auch im internen Stagingbereich durchzusetzen.

Bemerkung

Netzwerkregeln für interne Stagingbereiche werden in Snowflake nur in den Regionen AWS unterstützt. Für Azure sollten Sie in Erwägung ziehen, den öffentlichen Zugriff zu blockieren, und für GCP mit Dienstkontrollen wenden Sie sich an den Snowflake-Support.

Es gibt Fälle, in denen einige Cloud-Anbieter aufgrund des dynamischen Charakters der Cloud nicht in der Lage sind, Bereiche von IP-Adressen zur Verfügung zu stellen, die in den Netzwerkrichtlinien von Snowflake aufgeführt werden. Für solche Szenarien beachten Sie bitte die Allgemeinen Richtlinien für Netzwerk- und Authentifizierungsrichtlinien. Alternativ können Sie auch eine private Konnektivität in Betracht ziehen, wenn Ihr Tool dies unterstützt.

Die Verbindungen können aus privaten oder öffentlichen Netzwerken stammen, je nachdem, ob der Kunde eine private Konnektivität nutzt oder nicht. Denken Sie daran, dass Sie sowohl öffentliche als auch private Konnektivität gleichzeitig zulassen können, indem Sie mehrere Netzwerkregeln hinzufügen, die die entsprechenden IPs- (öffentlich oder privat) und/oder CSP-Tags (wie VPCE ID, LinkIDs) enthalten.

-- ACCESS FROM PUBLIC IP ADDRESSES
CREATE NETWORK RULE PROGRAMMATIC_ACCESS_USER_NET_RULE_PUBLIC
  TYPE = IPV4
  VALUE_LIST = ( 'PUBLIC IP1' , 'XX.XX.XX.XX/24' [ , ... ] )
  MODE =  INGRESS
;
-- ACCESS FROM PRIVATE NETWORK
CREATE NETWORK RULE PROGRAMMATIC_ACCESS_USER_NET_RULE_PL
  TYPE = AWSVPCEID
  VALUE_LIST = ( 'VPCE-123ABC3420C1931' , 'VPCE-123ABC3420C1932' )
  MODE =  INGRESS
;
-- RESTRICT ACCESS TO INTERNAL STAGE USING VPCE ID
CREATE NETWORK RULE PROGRAMMATIC_ACCESS_USER_NET_RULE_INTERNAL_STAGE
  TYPE = AWSVPCEID
  VALUE_LIST = ( 'VPCE-123ABC3420C1933' )
  MODE =  INTERNAL_STAGE
;
CREATE NETWORK POLICY PROGRAMMATIC_ACCESS_USER_NET_POLICY
  ALLOWED_NETWORK_RULE_LIST =
    (
     'PROGRAMMATIC_ACCESS_USER_NET_RULE_PUBLIC',
     'PROGRAMMATIC_ACCESS_USER_NET_RULE_PL',
     'PROGRAMMATIC_ACCESS_USER_NET_RULE_INTERNAL_STAGE'
    )
  --BLOCKED_NETWORK_RULE_LIST = ( 'OPTIONAL BLOCKED LIST OF IPS' )
;
Copy

Erstellen Sie Netzwerkrichtlinien auf der Ebene des Kontos

Richtlinien auf Kontoebene dienen als Standardsicherheits-Netzwerkrichtlinien für Benutzer, auf die keine Netzwerkrichtlinien direkt angewendet werden. Am besten ist es, diese Richtlinien so restriktiv und kurz wie möglich zu halten und gleichzeitig Richtlinien auf Benutzerebene zu verwenden, um spezifische Bedürfnisse der Benutzer zu erfüllen.

Snowflake empfiehlt nicht, riesige Netzwerkrichtlinien auf Kontoebene zu erstellen, um alle Anforderungen des Unternehmens zu erfüllen, sondern ermöglicht stattdessen Richtlinien auf Benutzerebene, die eine genauere Kontrolle ermöglichen.

Ähnlich wie bei den Netzwerkrichtlinien auf Benutzerebene können die Verbindungen aus privaten oder öffentlichen Netzwerken stammen, je nachdem, ob der Kunde eine private Konnektivität nutzt. Denken Sie daran, dass Sie sowohl öffentliche als auch private Konnektivität gleichzeitig zulassen können, indem Sie mehrere Netzwerkregeln hinzufügen, die die entsprechenden IPs- (öffentlich oder privat) und/oder CSP-Tags (wie VPCE ID, LinkIDs) enthalten.

-- ACCESS FROM PUBLIC IP ADDRESSES
CREATE NETWORK RULE HUMAN_ACCESS_ACCOUNT_NET_RULE_PUBLIC
  TYPE = IPV4
  VALUE_LIST = ( 'PUBLIC IP1' , 'XX.XX.XX.XX/24' [ , ... ] )
  MODE =  INGRESS
;
-- ACCESS FROM PRIVATE NETWORK
CREATE NETWORK RULE HUMAN_ACCESS_ACCOUNT_NET_RULE_PL
  TYPE = AWSVPCEID
  VALUE_LIST = ( 'VPCE-123ABC3420C1934' , 'VPCE-123ABC3420C1936' )
  MODE =  INGRESS
;
-- RESTRICT ACCESS TO INTERNAL STAGE USING VPCE ID
CREATE NETWORK RULE HUMAN_ACCESS_ACCOUNT_NET_RULE_INTERNAL_STAGE
  TYPE = AWSVPCEID
  VALUE_LIST = ( 'VPCE-123ABC3420C1937')
  MODE =  INTERNAL_STAGE
;
CREATE NETWORK POLICY ACCOUNT_LEVEL_NET_POLICY
  ALLOWED_NETWORK_RULE_LIST =
   (
    'HUMAN_ACCESS_ACCOUNT_NET_RULE_PUBLIC',
    'HUMAN_ACCESS_ACCOUNT_NET_RULE_PL',
    'HUMAN_ACCESS_ACCOUNT_NET_RULE_INTERNAL_STAGE'
   )
   --BLOCKED_NETWORK_RULE_LIST = ( 'OPTIONAL BLOCKED LIST OF IPS' )
;
Copy

Schutz von Service-Benutzern

Benutzer mit TYPE=SERVICE sind von den MFA-Durchsetzungsrichtlinien auf Kontoebene ausgenommen und verfügen über Einschränkungen, um die Sicherheit nicht-interaktiver Anwendungsfälle zu verbessern. Insbesondere können sich Benutzer des Typs SERVICE nicht mit einem Kennwort oder SAML SSO anmelden. Siehe Warnung unten.

-- FOR EVERY SERVICE PROGRAMMATIC ACCESS USER
ALTER USER SERVICE_USER_1 SET
TYPE = SERVICE
NETWORK_POLICY = PROGRAMMATIC_ACCESS_USER_NET_POLICY
AUTHENTICATION POLICY = PROGRAMMATIC_ACCESS_USER_AUTH;
Copy
Service-Benutzer von Legacy-Anwendungen

Wenn Sie eine Legacy-Anwendung haben, die OAuth nicht unterstützt, verwenden Sie programmatische Zugriffstoken (PATs) anstelle von Kennwörtern mit LEGACY_SERIVCE.

PATs haben viele Einschränkungen, um Ihre Sicherheit zu verbessern: Wenn Sie ein PAT erstellen, ist es an bestimmte Rollen gebunden, zeitlich begrenzt und an eine Netzwerkrichtlinie gebunden, die für diesen bestimmten Benutzer gilt (auf Konto- oder Benutzerebene).

Sie können PAT kopieren und im Kennwortfeld Ihrer älteren Anwendung verwenden. Sie brauchen LEGACY_SERVICE oder die reine Kennwortauthentifizierung für solche älteren Anwendungen nicht zu verwenden.

Vorsicht

Da Benutzer des Typs SERVICE keine Kennwörter als Authentifizierungsmethode verwenden können, wird Kunden empfohlen, bei älteren Systemen, die keine stärkere Form der Authentifizierung unterstützen, stattdessen einen PAT zu verwenden.

Bemerkung

Denken Sie daran, dass LEGACY_SERVICE im November 2025 aufgelassen wird.

Kennwort- und Sitzungsrichtlinien auf der Ebene des Kontos anwenden

Der Snowflake-Sicherheitsadministrator sollte grundlegende Kennwort- und Sitzungsrichtlinien auf der Ebene des Kontos anwenden und diese Richtlinien dann bei Bedarf durch Richtlinien auf Benutzerebene außer Kraft setzen.

ALTER ACCOUNT SET
SESSION POLICY = SESSION_POLICY_ACCOUNT;
PASSWORD POLICY = PASSWORD_POLICY_ACCOUNT;
Copy

Service-Benutzer testen

In diesem Stagingbereich gelten für das Konto Kennwort- und Sitzungsrichtlinien. Die programmatischen Benutzer des Dienstes sind von MFA ausgenommen, und sie haben ihre eigenen spezifischen Authentifizierungsrichtlinien und Netzwerkrichtlinien, die sicherstellen, dass die Verbindungen von vertrauenswürdigen Quellen hergestellt werden und die empfohlenen Authentifizierungsmethoden wie OAuth oder ein Schlüsselpaar verwenden.

Der Sicherheitsadministrator sollte einige Benutzer des Dienstes testen, um einen reibungslosen Betrieb zu gewährleisten und um zu bestätigen, dass die Verbindungen aus vertrauenswürdigen Quellen stammen und die richtigen Authentifizierungsmethoden verwenden. Administratoren sollten zusätzlich zum Trust Center LOGIN_HISTORY verwenden, um zu bestätigen, dass die Benutzer des Dienstes durch Netzwerkrichtlinien geschützt sind.

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(TIME_RANGE_START =>
    DATEADD('HOURS',-1,CURRENT_TIMESTAMP()),CURRENT_TIMESTAMP()))
  ORDER BY EVENT_TIMESTAMP;
Copy

Schützen Sie Ihr Konto mit MFA-Durchsetzung

Um MFA für alle Benutzer, die nicht vom Typ SERVICE sind, durchzusetzen, wenden Sie die MFA-Durchsetzungsrichtlinie auf der Ebene des Kontos an.

Diese Richtlinien tragen dazu bei, dass alle menschlichen interaktiven Benutzer MFA entweder über ihre eigene IdP oder über die native Snowflake-MFA aktivieren.

ALTER ACCOUNT SET
AUTHENTICATION POLICY = HUMAN_ACCESS_ACCOUNT_ENFORCE_MFA;
Copy

Wenn Sie für Ihre hoch privilegierten Benutzer, wie z. B. Kontoadministratoren, eine doppelte MFA erzwingen möchten, erzwingen Sie MFA auf dieser Benutzerebene. Sie müssen jedoch ein Gleichgewicht zwischen den Break-Glass-Verfahren, falls Ihr IdP ausfällt, und Ihren Sicherheitsanforderungen finden.

ALTER USER SUPER_PROTECTED_ACCOUNTADMIN_1
AUTHENTICATION POLICY = ACCOUNTADMIN_DOUBLE_MFA;
Copy

Für eine Break-Glass-Situation:

ALTER USER BREAKGLASS_ACCOUNTADMIN_1
AUTHENTICATION POLICY = ACCOUNTADMIN_BREAKGLASS_MFA;
Copy

Netzwerkrichtlinien auf Kontoebene anwenden

Schließlich ist es an der Zeit, Netzwerkrichtlinien auf der Ebene des Kontos anzuwenden, um alle anderen Benutzer zu schützen, die nicht über explizite Netzwerkrichtlinien verfügen.

ALTER ACCOUNT SET
NETWORK_POLICY = ACCOUNT_LEVEL_NET_POLICY;
Copy

Ungenutzte Benutzer deaktivieren

Der Trust Center CIS-Scanner (1.8) überwacht Benutzer, die in den letzten 90 Tagen nicht aktiv waren. Wie in der folgenden Abbildung gezeigt, können Sie auf Open a Worksheet klicken, um die Abfrage anzuzeigen, die die inaktiven Benutzer auflistet:

SELECT
  F.VALUE:ENTITY_ID::VARCHAR AS ENTITY_ID,
  F.VALUE:ENTITY_NAME::VARCHAR AS ENTITY_NAME,
  F.VALUE:ENTITY_OBJECT_TYPE::VARCHAR AS ENTITY_OBJECT_TYPE,
  F.VALUE:ENTITY_DETAIL AS ENTITY_DETAIL
FROM
  SNOWFLAKE.TRUST_CENTER.FINDINGS,
  LATERAL FLATTEN(INPUT => AT_RISK_ENTITIES) AS F;
Copy

Snowflake empfiehlt Ihnen dringend, diese Benutzer zu deaktivieren.

Phase 4: Kontinuierliche Überwachung

Nutzen Sie das Trust Center Threat Intelligence Scanner-Paket, um die Durchsetzung von MFA und Netzwerkrichtlinien zu überwachen. Mit dem Feature zum Schutz vor geleakten Kennwörtern überwacht Snowflake das Dark Web auf gestohlene Anmeldeinformationen und sperrt jeden Benutzer, dessen Kennwort-Hashwert mit dem im Dark Web gefundenen übereinstimmt. Sie können auch die nativen Benachrichtigung von Snowflake nutzen, zusammen mit benutzerdefinierten Abfragen, um zusätzliche Hygienewarnungen zu erstellen:

  • Benutzer ohne speziell eingestellten Typ

  • Eine Anwendung mit statischen Anmeldeinformationen wie Kennwörtern oder Schlüsselpaaren

  • Ein neuer Benutzer mit LEGACY_SERVICE hinzugefügt

  • Regelmäßiges Kontaktieren von Legacy-Anwendungen für ein Upgrade auf eine stärkere Autorisierung