Konfigurieren des sicheren Zugriffs auf Amazon S3

Um Daten aus einem S3-Bucket zu lesen bzw. in einen S3-Bucket zu schreiben, müssen die Sicherheits- und Zugriffsverwaltungsrichtlinien des Buckets Snowflake den Zugriff auf den Bucket ermöglichen.

Die folgenden Optionen zum Konfigurieren eines sicheren Zugriffs auf einen privaten S3-Bucket werden unterstützt:

Option 1

Konfigurieren Sie ein Speicherintegrationsobjekt, um die Authentifizierungsverantwortung für den externen Cloudspeicher an eine Snowflake-Entität für Identitäts- und Zugriffsverwaltung (IAM) zu delegieren.

Bemerkung

Diese Option wird dringend empfohlen, da beim Erstellen von Stagingbereichen oder Laden von Daten keine AWS IAM-Berechtigungsnachweise erforderlich sind.

Option 2:

Konfigurieren Sie eine AWS IAM-Rolle mit den erforderlichen Richtlinien und Berechtigungen für den Zugriff auf Ihren externen S3-Bucket. Dieser Ansatz ermöglicht es einzelnen Benutzern, die Bereitstellung und Verwaltung von Sicherheitsanmeldeinformationen und Zugriffsschlüsseln zu vermeiden.

Hinweis: Eine Implementierung dieser Funktion erfordert einen benannten externen Stagingbereich. Der direkte Zugriff auf die URL eines S3-Buckets in einer COPY-Anweisung wird nicht unterstützt.

Wichtig

Die Möglichkeit, eine AWS IAM-Rolle für den Zugriff auf einen privaten S3-Bucket zum Laden oder Entladen von Daten zu verwenden, ist jetzt veraltet (d. h. die Unterstützung wird in einem zukünftigen Release entfernt, TBD). Es wird dringend empfohlen, alle vorhandenen S3-Stagingbereiche zu ändern, die diese Funktion verwenden, um stattdessen auf Speicherintegrationsobjekte zu verweisen (Option 1 unter diesem Thema).

Option 3

Konfigurieren Sie einen AWS IAM-Benutzer mit den erforderlichen Berechtigungen für den Zugriff auf Ihren S3-Bucket. Bei dieser einmaligen Einrichtung werden Zugriffsberechtigungen für einen Bucket festgelegt und die erforderlichen Berechtigungen einem IAM-Benutzer zugewiesen. Sie können dann auf einen externen (d. h. S3) Stagingbereich zugreifen, der mit dem AWS-Schlüssel und dem geheimen Schlüssel auf den Bucket verweist.

Unter diesem Thema wird beschrieben, wie Sie die erforderlichen Aufgaben in S3 ausführen.

Bemerkung

Das Ausführen der Anweisungen unter diesem Thema erfordert Administratorzugriff auf AWS. Wenn Sie kein AWS-Administrator sind, bitten Sie Ihren AWS-Administrator, diese Aufgaben auszuführen.

Unter diesem Thema:

Option 1: Konfigurieren einer Snowflake-Speicherintegration

In diesem Abschnitt wird beschrieben, wie Sie mit Speicherintegrationen dafür sorgen können, dass Snowflake Daten aus einem Amazon S3-Bucket lesen und in einen S3-Bucket schreiben kann, auf den in einem externen (d. h. S3) Stagingbereich verwiesen wird. Integrationen sind benannte First-Class-Snowflake-Objekte, bei denen keine expliziten Cloudanbieter-Anmeldeinformationen wie geheime Schlüssel oder Zugriffstoken übergeben werden müssen. Integrationsobjekte speichern eine AWS Identity and Access Management (IAM)-Benutzer-ID. Ein Administrator in Ihrem Unternehmen gewährt die Integrationsberechtigungen für IAM-Benutzer im AWS-Konto.

Eine Integration kann auch Buckets (und optionale Pfade) auflisten, um so die Speicherorte zu beschränken, die von Benutzern beim Erstellen der von der Integration verwendeten externen Stagingbereiche angeben werden können.

Bemerkung

Zum Ausführen der Anweisungen unter diesem Thema sind Berechtigungen in AWS zum Erstellen und Verwalten von IAM-Richtlinien und -Rollen erforderlich. Wenn Sie kein AWS-Administrator sind, bitten Sie Ihren AWS-Administrator, diese Aufgaben auszuführen.

Die folgende Abbildung zeigt den Integrationsablauf für einen S3-Stagingbereich:

Amazon S3 Stage Integration Flow
  1. Ein externer (d. h. S3) Stagingbereich verweist in seiner Definition auf ein Speicherintegrationsobjekt.

  2. Snowflake ordnet die Speicherintegration automatisch einem für Ihr Konto erstellten S3-IAM-Benutzer zu. Snowflake erstellt einen einzelnen IAM-Benutzer, auf den von allen S3-Speicherintegrationen in Ihrem Snowflake-Konto verwiesen wird.

  3. Ein AWS-Administrator in Ihrem Unternehmen gewährt dem IAM-Benutzer die Berechtigung, auf den in der Stagingbereichsdefinition angegebenen Bucket zuzugreifen. Beachten Sie, dass viele externe Stagingbereichsobjekte auf unterschiedliche Buckets und Pfade verweisen und dieselbe Speicherintegration zur Authentifizierung verwenden können.

Wenn ein Benutzer Daten aus einem oder in einen Stagingbereich lädt, überprüft Snowflake erst die Berechtigungen, die dem IAM-Benutzer für den Bucket erteilt wurden, bevor Zugriff gewährt oder verweigert wird.

Unter diesem Thema:

Schritt 1: Zugriffsberechtigungen für den S3-Bucket konfigurieren

Anforderungen an die AWS-Zugriffssteuerung

Snowflake benötigt die folgenden Berechtigungen für einen S3-Bucket und -Ordner, um auf Dateien im Ordner (und in Unterordnern) zugreifen zu können:

  • s3:GetObject

  • s3:GetObjectVersion

  • s3:ListBucket

Bemerkung

Die zusätzlichen s3:PutObject- und s3:DeleteObject-Berechtigungen sind nur erforderlich, wenn Sie planen, Dateien in den Bucket zu entladen oder Dateien nach dem Laden in eine Tabelle automatisch zu bereinigen.

Als Best Practice empfiehlt Snowflake die Erstellung einer IAM-Richtlinie für den Zugriff von Snowflake auf den S3-Bucket. Sie können dann die Richtlinie an die Rolle anhängen und die von AWS für die Rolle generierten Sicherheitsanmeldeinformationen verwenden, um auf Dateien im Bucket zuzugreifen.

Erstellen einer IAM-Richtlinie

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie Sie die Zugriffsberechtigungen für Snowflake über Ihre AWS Management Console so konfigurieren, dass Sie einen S3-Bucket zum Laden und Entladen von Daten verwenden können:

  1. Melden Sie sich bei der AWS Management Console an.

  2. Wählen Sie auf dem Startseiten-Dashboard die Option Identity & Access Management (IAM) aus:

    Identity & Access Management in AWS Management Console
  3. Wählen Sie im linken Navigationsbereich Account settings aus.

  4. Erweitern Sie die Security Token Service Regions-Liste, suchen Sie die AWS-Region, die der Region entspricht, in der sich Ihr Konto befindet, und wählen Sie Activate, wenn der Status Inactive ist.

  5. Wählen Sie im linken Navigationsbereich Policies aus.

  6. Klicken Sie auf Create Policy:

    Create Policy button on Policies page
  7. Klicken Sie auf die Registerkarte JSON.

  8. Fügen Sie ein Richtliniendokument hinzu, das Snowflake den Zugriff auf den S3-Bucket und -Ordner ermöglicht.

    Die folgende Richtlinie (im JSON-Format) gibt Snowflake die erforderlichen Berechtigungen zum Laden oder Entladen von Daten über einen einzigen Bucket- und Ordnerpfad. Sie können Datendateien auch mit der Kopieroption PURGE bereinigen.

    Kopieren Sie den Text, und fügen Sie ihn in den Richtlinieneditor ein:

    Bemerkung

    Stellen Sie sicher, dass Bucket und Präfix durch Ihren tatsächlichen Bucket-Namen und Ihr Ordnerpfad-Präfix ersetzt wurden.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:GetObjectVersion",
                  "s3:DeleteObject",
                  "s3:DeleteObjectVersion"
                ],
                "Resource": "arn:aws:s3:::<bucket>/<prefix>/*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::<bucket>",
                "Condition": {
                    "StringLike": {
                        "s3:prefix": [
                            "<prefix>/*"
                        ]
                    }
                }
            }
        ]
    }
    

    Wichtig

    Durch Setzen der "s3:prefix":-Bedingung auf ["*"] wird Zugriff auf alle Präfixe im angegebenen Bucket gewährt. Wenn mehr als 1.000 Objekte im Bucket vorhanden sind, kann folgender Fehler auftreten: Access Denied (Status Code: 403; Error Code: AccessDenied).

    Um den Fehler zu vermeiden, entfernen Sie die Bedingung aus der IAM-Richtlinie, z. B.:

    "Condition": {
          "StringLike": {
              "s3:prefix": [
                  "*"
              ]
          }
      }
    

    Die Richtlinie gewährt weiterhin Zugriff auf die Dateien im Bucket, aber S3 gibt keinen Fehler zurück, wenn mehr als 1.000 Objekte im Bucket vorhanden sind.

    Beachten Sie, dass AWS-Richtlinien eine Vielzahl von verschiedenen Sicherheitsanwendungen unterstützen.

    Die folgende Richtlinie stellt Snowflake die erforderlichen Berechtigungen zum Laden von Daten aus einem einzigen schreibgeschützten Bucket- und Ordnerpfad zur Verfügung. Die Richtlinie enthält die Berechtigungen s3:GetObject, s3:GetObjectVersion und s3:ListBucket:

    Alternative Richtlinie: Aus einem schreibgeschützten S3-Bucket laden

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion"
                ],
                "Resource": "arn:aws:s3:::<bucket>/<prefix>/*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::<bucket>",
                "Condition": {
                    "StringLike": {
                        "s3:prefix": [
                            "<prefix>/*"
                        ]
                    }
                }
            }
        ]
    }
    
  9. Klicken Sie auf Review policy.

  10. Geben Sie den Richtliniennamen (z. B. snowflake_access) und eine optionale Beschreibung ein. Klicken Sie auf Create policy.

    Create Policy button in Review Policy page

Schritt 2: IAM-Rolle in AWS erstellen

Erstellen Sie über die AWS Management Console eine AWS-IAM-Rolle, um Berechtigungen für den S3-Bucket mit Ihren Datendateien zu vergeben.

  1. Melden Sie sich bei der AWS Management Console an.

  2. Wählen Sie auf dem Startseiten-Dashboard die Option Identity & Access Management (IAM) aus:

    Identity & Access Management in AWS Management Console
  3. Wählen Sie im linken Navigationsbereich Roles aus.

  4. Klicken Sie auf die Schaltfläche Create role.

    Select Trusted Entity Page in AWS Management Console
  5. Wählen Sie Another AWS account als vertrauenswürdigen Entitätstyp aus.

  6. Geben Sie vorläufig im Feld Account ID Ihre eigene AWS-Konto-ID ein. Später werden Sie die vertrauenswürdige Beziehung ändern und Snowflake Zugriff gewähren.

  7. Wählen Sie die Option Require external ID aus. Geben Sie eine Dummy-ID ein, wie z. B. 0000. Später werden Sie die vertrauenswürdige Beziehung ändern und die externe ID für Ihren Snowflake-Stagingbereich angeben. Eine externe ID ist erforderlich, um einem Dritten (d. h. Snowflake) Zugriff auf Ihre AWS-Ressourcen (d. h. S3) zu gewähren.

  8. Klicken Sie auf die Schaltfläche Next.

  9. Suchen Sie die Richtlinie, die Sie in Schritt 1: Zugriffsberechtigungen für den S3-Bucket konfigurieren (unter diesem Thema) erstellt haben, und wählen Sie diese Richtlinie aus.

  10. Klicken Sie auf die Schaltfläche Next.

    Review Page in AWS Management Console
  11. Geben Sie einen Namen und eine Beschreibung für die Rolle ein, und klicken Sie auf die Schaltfläche Create role.

    Sie haben nun eine IAM-Richtlinie für einen Bucket erstellt, eine IAM-Rolle erstellt und die Richtlinie an die Rolle angehängt.

  12. Notieren Sie den Role ARN-Wert, der auf der Übersichtsseite der Rolle angegeben ist. Im nächsten Schritt erstellen Sie eine Snowflake-Integration, die auf diese Rolle verweist.

    IAM Role

Schritt 3: Cloud Storage-Integration in Snowflake erstellen

Erstellen Sie mit dem Befehl CREATE STORAGE INTEGRATION eine Speicherintegration. Eine Speicherintegration ist ein Snowflake-Objekt, in dem ein für Ihren S3-Cloudspeicher generierter IAM-Benutzer (Identitäts- und Zugriffsverwaltung) zusammen mit einem optionalen Satz zulässiger oder blockierter Speicherorte (d. h. Buckets) gespeichert wird. Cloudanbieter-Administratoren in Ihrer Organisation erteilen dem generierten Benutzer Berechtigungen für die Speicherorte. Dank dieser Option müssen Benutzer beim Erstellen von Stagingbereichen oder beim Laden von Daten keine Anmeldeinformationen eingeben.

Eine einzelne Speicherintegration kann mehrere externe (d. h. S3) Stagingbereiche unterstützen. Die URL in der Stagingbereichsdefinition muss mit den für den Parameter STORAGE_ALLOWED_LOCATIONS angegebenen S3-Buckets (und optionalen Pfaden) übereinstimmen.

Bemerkung

Dieser SQL-Befehl kann nur von Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) oder von Rollen mit der globalen Berechtigung CREATE INTEGRATION ausgeführt werden.

CREATE STORAGE INTEGRATION <integration_name>
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = S3
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = '<iam_role>'
  STORAGE_ALLOWED_LOCATIONS = ('s3://<bucket>/<path>/', 's3://<bucket>/<path>/')
  [ STORAGE_BLOCKED_LOCATIONS = ('s3://<bucket>/<path>/', 's3://<bucket>/<path>/') ]

Wobei:

  • Integrationsname ist der Name der neuen Integration.

  • IAM-Rolle ist der Amazon Resource Name (ARN) der Rolle, die Sie in Schritt 2: IAM-Rolle in AWS erstellen (unter diesem Thema) erstellt haben.

  • Bucket ist der Name eines S3-Buckets, in dem Ihre Datendateien gespeichert sind (z. B. mybucket). Die erforderlichen Parameter STORAGE_ALLOWED_LOCATIONS und STORAGE_BLOCKED_LOCATIONS beschränken bzw. blockieren den Zugriff auf diese Buckets, wenn Stagingbereiche, die auf diese Integration verweisen, erstellt oder geändert werden.

  • Pfad ist ein optionaler Pfad, mit dem Sie Objekte im Bucket genauer steuern können.

Im folgenden Beispiel wird eine Integration erstellt, die externe Stagingbereiche, die die Integration nutzen, explizit darauf beschränkt, auf einen von zwei Buckets und Pfaden zu verweisen: In einem späteren Schritt werden wir einen externen Stagingbereich erstellen, der auf einen dieser Buckets und Pfade verweist.

Zusätzliche externe Stagingbereiche, die diese Integration ebenfalls verwenden, können auf die zulässigen Buckets und Pfade verweisen:

CREATE STORAGE INTEGRATION s3_int
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = S3
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::001234567890:role/myrole'
  STORAGE_ALLOWED_LOCATIONS = ('s3://mybucket1/mypath1/', 's3://mybucket2/mypath2/')
  STORAGE_BLOCKED_LOCATIONS = ('s3://mybucket1/mypath1/sensitivedata/', 's3://mybucket2/mypath2/sensitivedata/');

Schritt 4: AWS-IAM-Benutzer für Ihr Snowflake-Konto abrufen

  1. Führen Sie den Befehl DESCRIBE INTEGRATION aus, um den ARN für den AWS-IAM-Benutzer abzurufen, der für Ihr Snowflake-Konto automatisch erstellt wurde:

    DESC INTEGRATION <integration_name>;
    

    Wobei:

    Beispiel:

    DESC INTEGRATION s3_int;
    
    +---------------------------+---------------+--------------------------------------------------------------------------------+------------------+
    | property                  | property_type | property_value                                                                 | property_default |
    +---------------------------+---------------+--------------------------------------------------------------------------------+------------------|
    | ENABLED                   | Boolean       | true                                                                           | false            |
    | STORAGE_ALLOWED_LOCATIONS | List          | s3://mybucket1/mypath1/,s3://mybucket2/mypath2/                                | []               |
    | STORAGE_BLOCKED_LOCATIONS | List          | s3://mybucket1/mypath1/sensitivedata/,s3://mybucket2/mypath2/sensitivedata/    | []               |
    | STORAGE_AWS_IAM_USER_ARN  | String        | arn:aws:iam::123456789001:user/abc1-b-self1234                                 |                  |
    | STORAGE_AWS_ROLE_ARN      | String        | arn:aws:iam::001234567890:role/myrole                                          |                  |
    | STORAGE_AWS_EXTERNAL_ID   | String        | MYACCOUNT_SFCRole=2_a123456/s0aBCDEfGHIJklmNoPq=                               |                  |
    +---------------------------+---------------+--------------------------------------------------------------------------------+------------------+
    
  2. Notieren Sie die folgenden Werte:

    Wert

    Beschreibung

    STORAGE_AWS_IAM_USER_ARN

    Der AWS IAM-Benutzer, der für Ihr Snowflake-Konto erstellt wurde, in diesem Beispiel arn:aws:iam::123456789001:user/abc1-b-self1234. Wir stellen einen einzelnen IAM-Benutzer für Ihr gesamtes Snowflake-Konto bereit. Alle S3-Speicherintegrationen verwenden diesen IAM-Benutzer.

    STORAGE_AWS_EXTERNAL_ID

    Die externe ID, die zum Herstellen einer vertrauenswürdigen Beziehung erforderlich ist.

    Diese Werte werden Sie im nächsten Abschnitt angeben.

Schritt 5: IAM-Benutzerberechtigungen für den Zugriff auf Bucket-Objekte erteilen

Die folgende schrittweise Anleitung beschreibt, wie Sie die IAM-Zugriffsberechtigungen für Snowflake über Ihre AWS Management Console so konfigurieren, dass Sie einen S3-Bucket zum Laden und Entladen von Daten verwenden können:

  1. Melden Sie sich bei der AWS Management Console an.

  2. Wählen Sie auf dem Startseiten-Dashboard die Option Identity & Access Management (IAM) aus:

    Identity & Access Management in AWS Management Console
  3. Wählen Sie im linken Navigationsbereich Roles aus.

  4. Klicken Sie auf die Rolle, die Sie in Schritt 2: IAM-Rolle in AWS erstellen (unter diesem Thema) erstellt haben.

  5. Klicken Sie auf die Registerkarte Trust relationships.

  6. Klicken Sie auf die Schaltfläche Edit trust relationship.

  7. Ändern Sie das Richtliniendokument mit den DESC STORAGE INTEGRATION-Ausgabewerten, die Sie in Schritt 4: AWS-IAM-Benutzer für Ihr Snowflake-Konto abrufen (unter diesem Thema) ermittelt haben.

    Richtliniendokument für die IAM-Rolle

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "AWS": "<snowflake_user_arn>"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "sts:ExternalId": "<snowflake_external_id>"
            }
          }
        }
      ]
    }
    

    Wobei:

    • snowflake_external_id ist der von Ihnen notierte STORAGE_AWS_EXTERNAL_ID-Wert.

    • snowflake_user_arn ist der von Ihnen notierte STORAGE_AWS_IAM_USER_ARN-Wert.

  8. Klicken Sie auf die Schaltfläche Update Trust Policy. Die Änderungen werden gespeichert.

Schritt 6: Externen Stagingbereich erstellen

Erstellen Sie einen externen (S3) Stagingbereich, der auf die Speicherintegration verweist, die Sie in Schritt 3: Cloud Storage-Integration in Snowflake erstellen (unter diesem Thema) erstellt haben.

Bemerkung

Zum Erstellen eines Stagingbereichs, der eine Speicherintegration nutzt, ist eine Rolle erforderlich, die über die Berechtigung CREATE STAGE für das Schema sowie die Berechtigung USAGE für die Speicherintegration verfügt. Beispiel:

GRANT CREATE STAGE ON SCHEMA public TO ROLE myrole;

GRANT USAGE ON INTEGRATION s3_int TO ROLE myrole;

Erstellen Sie den Stagingbereich mit dem Befehl CREATE STAGE.

Legen Sie beispielsweise mydb.public als aktuelle Datenbank und aktuelles Schema für die Benutzersitzung fest, und erstellen Sie dann einen Stagingbereich namens my_s3_stage. In diesem Beispiel verweist der Stagingbereich auf den S3-Bucket und den Pfad mybucket1/path1, die von der Integration unterstützt werden. Der Stagingbereich verweist außerdem auf ein benanntes Dateiformatobjekt mit dem Namen my_csv_format:

USE SCHEMA mydb.public;

CREATE STAGE my_s3_stage
  STORAGE_INTEGRATION = s3_int
  URL = 's3://bucket1/path1'
  FILE_FORMAT = my_csv_format;

Bemerkung

  • Der Eigentümer des Stagingbereichs (d. h. die Rolle mit der Berechtigung OWNERSHIP für den Stagingbereich) muss über die Berechtigung USAGE für die Speicherintegration verfügen.

  • Zum Laden oder Entladen von Daten aus oder in einen Stagingbereich, der eine Integration nutzt, muss eine Rolle über die Berechtigung USAGE für den Stagingbereich verfügen. Es ist nicht erforderlich, dass die Rolle auch über die Berechtigung USAGE für die Speicherintegration verfügt.

  • Der Parameter STORAGE_INTEGRATION wird getrennt von anderen Parametern des Stagingbereichs (wie z. B. FILE_FORMAT) behandelt. Die Unterstützung für diese anderen Parameter ist dieselbe, unabhängig von der Integration, die für den Zugriff auf Ihren S3-Bucket verwendet wird.

Option 2: Konfigurieren einer AWS-IAM-Rolle – Veraltet

In diesem Abschnitt wird beschrieben, wie Sie einen S3-Bucket, eine IAM-Rolle und Richtlinien für Snowflake konfigurieren, um im Namen eines oder mehrerer einzelner Benutzer in Ihrem Snowflake-Konto sicher auf einen externen Stagingbereich zugreifen zu können.

Als Best Practice sollten Sie den Zugriff auf den S3-Bucket auf eine bestimmte IAM-Rolle mit den minimal erforderlichen Berechtigungen beschränken. Die IAM-Rolle wird in Ihrem AWS-Konto erstellt, zusammen mit den Berechtigungen für den Zugriff auf Ihren S3-Bucket und der Vertrauensrichtlinie, damit Snowflake die IAM-Rolle übernehmen kann.

Trust policies allowing IAM user access to S3 bucket
  1. Ein AWS IAM-Benutzer, der für Ihr Snowflake-Konto erstellt wurde, ist mit einer IAM-Rolle verknüpft, die Sie über eine Vertrauensbeziehung konfigurieren.

  2. Der Rolle wird durch IAM-Richtlinien, die Sie konfigurieren, begrenzter Zugriff auf einen S3-Bucket gewährt.

Bemerkung

Das Ausführen der Anweisungen unter diesem Thema erfordert Administratorzugriff auf AWS. Wenn Sie kein AWS-Administrator sind, bitten Sie Ihren AWS-Administrator, diese Aufgaben auszuführen.

Schritt 1: S3-Bucket-Zugriffsberechtigungen konfigurieren

Anforderungen an die AWS-Zugriffssteuerung

Snowflake benötigt die folgenden Berechtigungen für einen S3-Bucket und -Ordner, um auf Dateien in dem Ordner (und allen seinen Unterordnern) zugreifen zu können:

  • s3:GetObject

  • s3:GetObjectVersion

  • s3:ListBucket

Bemerkung

Die zusätzlichen s3:PutObject- und s3:DeleteObject-Berechtigungen sind nur erforderlich, wenn Sie planen, Dateien in den Bucket zu entladen oder Dateien nach dem Laden in eine Tabelle automatisch zu bereinigen.

Als Best Practice empfiehlt Snowflake die Erstellung einer IAM-Richtlinie für den Zugriff von Snowflake auf den S3-Bucket. Sie können dann die Richtlinie an die Rolle anhängen und die von AWS für die Rolle generierten Sicherheitsanmeldeinformationen verwenden, um auf Dateien im Bucket zuzugreifen.

Erstellen einer IAM-Richtlinie

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie Sie die Zugriffsberechtigungen für Snowflake über Ihre AWS Management Console so konfigurieren, dass Sie einen S3-Bucket zum Laden und Entladen von Daten verwenden können:

  1. Melden Sie sich bei der AWS Management Console an.

  2. Wählen Sie auf dem Startseiten-Dashboard die Option Identity & Access Management (IAM) aus:

    Identity & Access Management in AWS Management Console
  3. Wählen Sie im linken Navigationsbereich Account settings aus.

  4. Erweitern Sie die Security Token Service Regions-Liste, suchen Sie die AWS-Region, die der Region entspricht, in der sich Ihr Konto befindet, und wählen Sie Activate, wenn der Status Inactive ist.

  5. Wählen Sie im linken Navigationsbereich Policies aus.

  6. Klicken Sie auf Create Policy:

    Create Policy button on Policies page
  7. Klicken Sie auf die Registerkarte JSON.

  8. Fügen Sie ein Richtliniendokument hinzu, das Snowflake den Zugriff auf den S3-Bucket und -Ordner ermöglicht.

    Die folgende Richtlinie (im JSON-Format) gibt Snowflake die erforderlichen Berechtigungen zum Laden oder Entladen von Daten über einen einzigen Bucket- und Ordnerpfad. Sie können Datendateien auch mit der Kopieroption PURGE bereinigen.

    Kopieren Sie den Text, und fügen Sie ihn in den Richtlinieneditor ein:

    Bemerkung

    Stellen Sie sicher, dass Bucket und Präfix durch Ihren tatsächlichen Bucket-Namen und Ihr Ordnerpfad-Präfix ersetzt wurden.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:GetObjectVersion",
                  "s3:DeleteObject",
                  "s3:DeleteObjectVersion"
                ],
                "Resource": "arn:aws:s3:::<bucket>/<prefix>/*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::<bucket>",
                "Condition": {
                    "StringLike": {
                        "s3:prefix": [
                            "<prefix>/*"
                        ]
                    }
                }
            }
        ]
    }
    

    Wichtig

    Durch Setzen der "s3:prefix":-Bedingung auf ["*"] wird Zugriff auf alle Präfixe im angegebenen Bucket gewährt. Wenn mehr als 1.000 Objekte im Bucket vorhanden sind, kann folgender Fehler auftreten: Access Denied (Status Code: 403; Error Code: AccessDenied).

    Um den Fehler zu vermeiden, entfernen Sie die Bedingung aus der IAM-Richtlinie:

    "Condition": {
          "StringLike": {
              "s3:prefix": [
                  "*"
              ]
          }
      }
    

    Die Richtlinie gewährt weiterhin Zugriff auf die Dateien im Bucket, aber S3 gibt keinen Fehler zurück, wenn mehr als 1.000 Objekte im Bucket vorhanden sind.

    Beachten Sie, dass AWS-Richtlinien eine Vielzahl von verschiedenen Sicherheitsanwendungen unterstützen.

    Die folgende Richtlinie stellt Snowflake die erforderlichen Berechtigungen zum Laden von Daten aus einem einzigen schreibgeschützten Bucket- und Ordnerpfad zur Verfügung. Die Richtlinie enthält die Berechtigungen s3:GetObject, s3:GetObjectVersion und s3:ListBucket:

    Alternative Richtlinie: Aus einem schreibgeschützten S3-Bucket laden

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion"
                ],
                "Resource": "arn:aws:s3:::<bucket>/<prefix>/*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::<bucket>",
                "Condition": {
                    "StringLike": {
                        "s3:prefix": [
                            "<prefix>/*"
                        ]
                    }
                }
            }
        ]
    }
    
  9. Klicken Sie auf Review policy.

  10. Geben Sie den Richtliniennamen (z. B. snowflake_access) und eine optionale Beschreibung ein. Klicken Sie dann auf Create policy, um die Richtlinie zu erstellen.

    Create Policy button in Review Policy page

Schritt 2: AWS-IAM-Rolle erstellen

Erstellen Sie über die AWS Management Console eine AWS-IAM-Rolle, die Berechtigungen für den S3-Bucket erteilt, der Ihre Datendateien enthält.

  1. Melden Sie sich bei der AWS Management Console an.

  2. Wählen Sie auf dem Startseiten-Dashboard die Option Identity & Access Management (IAM) aus:

    Identity & Access Management in AWS Management Console
  3. Wählen Sie im linken Navigationsbereich Roles aus.

  4. Klicken Sie auf die Schaltfläche Create role.

    Select Trusted Entity Page in AWS Management Console
  5. Wählen Sie Another AWS account als vertrauenswürdigen Entitätstyp aus.

  6. Geben Sie im Feld Account ID Ihre eigene AWS-Konto-ID ein. Später werden Sie die vertrauenswürdige Beziehung ändern und Snowflake Zugriff gewähren. Eine externe ID ist erforderlich, um später in dieser Anleitung einem Dritten (d. h. Snowflake) Zugriff auf Ihre AWS-Ressourcen (d. h. S3) zu gewähren.

  7. Wählen Sie die Option Require external ID aus. Geben Sie eine Dummy-ID ein, wie z. B. 0000. Später werden Sie die vertrauenswürdige Beziehung ändern und die externe ID für Ihren Snowflake-Stagingbereich angeben.

  8. Klicken Sie auf die Schaltfläche Next.

  9. Suchen Sie die Richtlinie, die Sie in Schritt 1: S3-Bucket-Zugriffsberechtigungen konfigurieren (unter diesem Thema) erstellt haben, und wählen Sie diese Richtlinie aus.

  10. Klicken Sie auf die Schaltfläche Next.

    Review Page in AWS Management Console
  11. Geben Sie einen Namen und eine Beschreibung für die Rolle ein, und klicken Sie auf die Schaltfläche Create role.

    Sie haben nun eine IAM-Richtlinie für einen Bucket erstellt, eine IAM-Rolle erstellt und die Richtlinie an die Rolle angehängt.

  12. Notieren Sie den Role ARN-Wert, der auf der Übersichtsseite der Rolle angegeben ist. Im nächsten Schritt erstellen Sie einen Snowflake-Stagingbereich, der über die Sicherheitsanmeldeinformationen auf diese Rolle verweist.

    IAM Role

Schritt 3: Externen Stagingbereich erstellen

Erstellen Sie einen externen (d. h. S3) Stagingbereich, der auf die von Ihnen erstellte AWS-Rolle verweist.

  1. Erstellen Sie einen externen Stagingbereich mit dem Befehl CREATE STAGE, oder ändern Sie einen vorhandenen externen Stagingbereich und legen Sie die Option CREDENTIALS fest.

    Bemerkung

    Anmeldeinformationen werden getrennt von anderen Parametern des Stagingbereichs wie ENCRYPTION und FILE_FORMAT behandelt. Die Unterstützung für diese anderen Parameter ist dieselbe, unabhängig von den Anmeldeinformationen, die für den Zugriff auf Ihren externen S3-Bucket verwendet werden.

    Legen Sie beispielsweise mydb.public als aktuelle Datenbank und aktuelles Schema für die Benutzersitzung fest, und erstellen Sie dann einen Stagingbereich namens my_S3_stage. In diesem Beispiel verweist der Stagingbereich auf den S3-Bucket und den Pfad mybucket/load/files. Dateien im S3-Bucket werden mit serverseitiger Verschlüsselung (AWS_SSE_KMS) verschlüsselt:

    USE SCHEMA mydb.public;
    
    CREATE STAGE my_s3_stage
      URL='s3://mybucket/load/files'
      CREDENTIALS = (AWS_ROLE = 'arn:aws:iam::001234567890:role/mysnowflakerole')
      ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');
    
  2. Führen Sie den Befehl DESCRIBE STAGE aus, um die Eigenschaften des Stagingbereichs anzuzeigen:

    DESC STAGE my_S3_stage;
    
    +--------------------+--------------------------------+---------------+----------------------------------------------------------------+------------------+
    | parent_property    | property                       | property_type | property_value                                                 | property_default |
    |--------------------+--------------------------------+---------------+----------------------------------------------------------------+------------------|
    ...
    | STAGE_CREDENTIALS  | AWS_ROLE                       | String        | arn:aws:iam::001234567890:role/mysnowflakerole                 |                  |
    | STAGE_CREDENTIALS  | AWS_EXTERNAL_ID                | String        | MYACCOUNT_SFCRole=2_jYfRf+gT0xSH7G2q0RAODp00Cqw=               |                  |
    | STAGE_CREDENTIALS  | SNOWFLAKE_IAM_USER             | String        | arn:aws:iam::123456789001:user/vj4g-a-abcd1234                 |                  |
    +--------------------+--------------------------------+---------------+----------------------------------------------------------------+------------------+
    
  3. Notieren Sie die Werte für die Eigenschaften SNOWFLAKE_IAM_USER und AWS_EXTERNAL_ID. Hierbei gilt Folgendes:

    SNOWFLAKE_IAM_USER

    Ein AWS-IAM-Benutzer, der für Ihr Snowflake-Konto erstellt wurde. Dieser Benutzer ist für jeden externen S3-Stagingbereich, der in Ihrem Konto angelegt wird, gleich.

    AWS_EXTERNAL_ID

    Eine eindeutige ID, die dem spezifischen Stagingbereich zugewiesen ist. Die ID hat das folgende Format:

    Snowflake-Konto_SFCRole=snowflakeRoleId_Zufalls-ID

    Beachten Sie, dass die in diesem Beispiel verwendeten Werte AWS_ROLE, AWS_EXTERNAL_ID und SNOWFLAKE_IAM_USER nur zur Veranschaulichung dienen.

    Im nächsten Schritt werden Sie Ihre AWS-IAM-Rolle so konfigurieren, dass sie dem Snowflake-IAM-Benutzer mithilfe der generierten externen AWS-ID Zugriff gewährt.

Schritt 4: AWS-IAM-Rolle für Zugriffsberechtigung auf Stagingbereich konfigurieren

Konfigurieren Sie über die AWS Management Console die IAM-Rolle, und verwenden Sie dabei die Eigenschaften des Stagingbereichs, den Sie in Schritt 3: Externen Stagingbereich erstellen (unter diesem Thema) erstellt haben:

  1. Melden Sie sich bei der AWS Management Console an.

  2. Wählen Sie auf dem Startseiten-Dashboard die Option Identity & Access Management (IAM) aus:

    Identity & Access Management in AWS Management Console
  3. Wählen Sie im linken Navigationsbereich Roles aus, und klicken Sie auf die Rolle, die Sie in Schritt 2: AWS-IAM-Rolle erstellen (unter diesem Thema) erstellt haben.

  4. Klicken Sie auf die Registerkarte Trust relationships und dann auf die Schaltfläche Edit trust relationship.

  5. Aktualisieren Sie im Feld Policy Document die Richtlinie mit den Eigenschaftswerten für den Stagingbereich:

    • AWS: Geben Sie den ARN für die Eigenschaft SNOWFLAKE_IAM_USER des Stagingbereichs ein, d. h. arn:aws:iam::123456789001:user/vj4g-a-abcd1234 in diesem Beispiel.

    • sts:ExternalId: Geben Sie die generierte externe ID ein, d. h. MYACCOUNT_SFCRole=2_jYfRf+gT0xSH7G2q0RAODp00Cqw= in diesem Beispiel.

      {
          "Version": "2012-10-17",
          "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": [
                        "arn:aws:iam::123456789001:user/vj4g-a-abcd1234"
                    ]
                },
                "Action": "sts:AssumeRole",
                "Condition": {
                    "StringEquals": {
                        "sts:ExternalId": "MYACCOUNT_SFCRole=2_jYfRf+gT0xSH7G2q0RAODp00Cqw="
                    }
                }
            }
          ]
      }
      

      Bemerkung

      Mit der oben genannten Vertrauensrichtlinie kann ein einzelner externer Stagingbereich in Ihrem Snowflake-Konto Ihre IAM-Rolle übernehmen. Sie ist die restriktivste Vertrauensrichtlinie und damit die sicherste.

      Die Berechtigung zur Übernahme der IAM-Rolle ist der externen ID zugeordnet. Eine externe ID hat das folgende Format:

      Snowflake-Konto_SFCRole=Snowflake-Rollen-ID_Zufalls-ID

      Wobei:

      • Snowflake-Konto ist der Name, der Ihrem Snowflake-Konto zugewiesen wurde.

      • Snowflake-Rollen-ID ist eine ID, die der Snowflake-Rolle zugeordnet ist, die den Stagingbereich in Schritt 3: Externen Stagingbereich erstellen (unter diesem Thema) erstellt hat.

        Im aktuellen Beispiel hat Snowflake-Rollen-ID den Wert 2. Diese ID ist mit einer einzelnen Rolle in Ihrem Snowflake-Konto verknüpft. Der Zweck dieser ID ist auf die Vertrauensrichtlinien für externe Stagingbereiche beschränkt. Eine Zuordnung von Snowflake-Rollen zu IDs ist daher nicht verfügbar. Die Rollen-ID einer bestimmten Rolle wird nur im Wert AWS_EXTERNAL_ID der DESCRIBE STAGE-Ausgabe angezeigt. Als Best Practice sollten Sie die Möglichkeit, externe S3-Stagingbereiche zu erstellen, auf eine einzige Snowflake-Rolle beschränken.

        Beachten Sie, dass die Rolle, die einen Stagingbereich erstellt, nicht unbedingt mit dem Eigentümer des Stagingbereichs identisch ist (d. h. der Rolle mit OWNERSHIP-Berechtigung für den Stagingbereich). Die Eigentümerschaft des Stagingbereichs kann später auf eine andere Rolle übertragen werden, ohne dass die Vertrauensrichtlinie entsprechend geändert werden muss.

      Wenn Sie aus Sicherheitsgründen einen neuen Stagingbereich erstellen (oder einen bestehenden Stagingbereich mit der CREATE OR REPLACE STAGE-Syntax neu erstellen), hat der resultierende Stagingbereich eine andere externe ID und kann daher die IAM-Rolle nicht übernehmen, es sei denn, die Vertrauensrichtlinie wird geändert.

      Wenn Sie eine Vertrauensrichtlinie mit weniger sicheren Einschränkungen benötigen (z. B. eine Richtlinie, die alle externen Stagingbereiche Ihres Kontos unterstützt), ersetzen Sie in der externen ID die Zufalls-ID durch ein Platzhalterzeichen (*):

      Snowflake-Konto_SFCRole=Snowflake-Rollen-ID_*, z. B. MYACCOUNT_SFCRole=2_* im aktuellen Beispiel.

      Diese Form der externen ID ermöglicht jedem externen S3-Stagingbereich, der von einem Benutzer in Ihrem Konto mit derselben Snowflake-Rolle (d. h. SYSADMIN) erstellt wurde, die IAM-Rolle anzunehmen, und im Gegenzug jeden S3-Bucket, auf den die IAM-Rolle Zugriff hat. Wenn Sie diese weniger sichere Vertrauensrichtlinie implementieren, müssen Sie Condition von StringEquals in StringLike ändern.

  6. Klicken Sie auf die Schaltfläche Update Trust Policy.

Sie haben nun die einmalige Einrichtung des Zugriffs auf Ihren S3-Bucket unter Verwendung einer AWS-Rolle abgeschlossen.

Option 3: Konfigurieren von AWS-IAM-Benutzeranmeldeinformationen

In diesem Abschnitt wird beschrieben, wie Sie eine Sicherheitsrichtlinie für einen S3-Bucket und Zugriffsanmeldeinformationen für einen bestimmten IAM-Benutzer konfigurieren, um sicher auf einen externen Stagingbereich zugreifen zu können.

Schritt 1: S3-Bucket-Zugriffsrichtlinie konfigurieren

Anforderungen an die AWS-Zugriffssteuerung

Snowflake benötigt die folgenden Berechtigungen für einen S3-Bucket und -Ordner, um auf Dateien in dem Ordner (und allen seinen Unterordnern) zugreifen zu können:

  • s3:GetObject

  • s3:GetObjectVersion

  • s3:ListBucket

Bemerkung

Die zusätzlichen s3:PutObject- und s3:DeleteObject-Berechtigungen sind nur erforderlich, wenn Sie planen, Dateien in den Bucket zu entladen oder Dateien nach dem Laden in eine Tabelle automatisch zu bereinigen.

Als Best Practice empfiehlt Snowflake für den Zugriff von Snowflake auf den S3-Bucket die Erstellung einer IAM-Richtlinie und eines Benutzers. Sie können die Richtlinie dann an den Benutzer anhängen und die von AWS generierten Sicherheitsanmeldeinformationen verwenden, damit der Benutzer auf Dateien im Bucket zugreifen kann.

Erstellen einer IAM-Richtlinie

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie Sie die Zugriffsberechtigungen für Snowflake über Ihre AWS Management Console so konfigurieren, dass Sie einen S3-Bucket zum Laden und Entladen von Daten verwenden können:

  1. Melden Sie sich bei der AWS Management Console an.

  2. Wählen Sie auf dem Startseiten-Dashboard die Option Identity & Access Management (IAM) aus:

    Identity & Access Management in AWS Management Console
  3. Wählen Sie im linken Navigationsbereich Account settings aus.

  4. Erweitern Sie die Security Token Service Regions-Liste, suchen Sie die AWS-Region, die der Region entspricht, in der sich Ihr Konto befindet, und wählen Sie Activate, wenn der Status Inactive ist.

  5. Wählen Sie im linken Navigationsbereich Policies aus.

  6. Klicken Sie auf Create Policy:

    Create Policy button on Policies page
  7. Klicken Sie auf die Registerkarte JSON.

  8. Fügen Sie das Richtliniendokument hinzu, das Snowflake den Zugriff auf den S3-Bucket und -Ordner ermöglicht.

    Die folgende Richtlinie (im JSON-Format) stellt Snowflake die erforderlichen Zugriffsberechtigungen für den angegebenen Bucket und Ordnerpfad zur Verfügung. Sie können den Text kopieren und in den Richtlinieneditor einfügen:

    Bemerkung

    Stellen Sie sicher, dass Bucket-Name und Präfix durch Ihren tatsächlichen Bucket-Namen und Ihr Ordnerpfad-Präfix ersetzt wurden.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:GetObjectVersion",
                  "s3:DeleteObject",
                  "s3:DeleteObjectVersion"
                ],
                "Resource": "arn:aws:s3:::<bucket_name>/<prefix>/*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::<bucket_name>",
                "Condition": {
                    "StringLike": {
                        "s3:prefix": [
                            "<prefix>/*"
                        ]
                    }
                }
            }
        ]
    }
    

Wichtig

Durch Setzen der "s3:prefix":-Bedingung auf ["*"] wird Zugriff auf alle Präfixe im angegebenen Bucket gewährt. Wenn mehr als 1.000 Objekte im Bucket vorhanden sind, kann folgender Fehler auftreten: Access Denied (Status Code: 403; Error Code: AccessDenied).

Um den Fehler zu vermeiden, entfernen Sie die Bedingung aus der IAM-Richtlinie:

"Condition": {
      "StringLike": {
          "s3:prefix": [
              "*"
          ]
      }
  }

Die Richtlinie gewährt weiterhin Zugriff auf die Dateien im Bucket, aber S3 gibt keinen Fehler zurück, wenn mehr als 1.000 Objekte im Bucket vorhanden sind.

  1. Klicken Sie auf Review policy.

  2. Geben Sie den Richtliniennamen (z. B. snowflake_access) und eine optionale Beschreibung ein. Klicken Sie dann auf Create policy, um die Richtlinie zu erstellen.

    Create Policy button in Review Policy page

Schritt 2: AWS-IAM-Benutzer erstellen

  1. Wählen Sie im linken Navigationsbereich Users aus, und klicken Sie auf Add user.

  2. Geben Sie auf der Seite Add user einen neuen Benutzernamen ein (z. B. snowflake1). Wählen Sie als Zugriffstyp Programmatic access aus, und klicken Sie auf Next:

    Add user page
  3. Klicken Sie auf Attach existing policies directly, und wählen Sie die zuvor erstellte Richtlinie aus. Klicken Sie dann auf Next:

    Set permissions page
  4. Überprüfen Sie die Benutzerdetails, und klicken Sie dann auf Create user.

    Review user details page
  5. Notieren Sie sich die Zugriffsanmeldeinformationen. Dazu klicken Sie am besten auf Download Credentials, um sie in eine Datei zu schreiben (z. B. credentials.csv).

    Attach policy on the user details page

    Achtung

    Sobald Sie diese Seite verlassen, wird der geheime Zugriffsschlüssel nicht mehr in der AWS-Konsole verfügbar sein. Wenn Sie den Schlüssel verlieren, müssen Sie neue Anmeldeinformationen für den Benutzer generieren.

Sie haben jetzt Folgendes erreicht:

  • IAM-Richtlinie für einen Bucket erstellt,

  • IAM-Benutzer erstellt und Zugriffsdaten für den Benutzer generiert,

  • Richtlinie zu Benutzer hinzugefügt.

Mit dem AWS-Schlüssel und dem geheimen Schlüssel für den S3-Bucket haben Sie die notwendigen Anmeldeinformationen, um in Snowflake über einen externen Stagingbereich auf Ihren S3-Bucket zuzugreifen.

Schritt 3: Externen (d. h. S3) Stagingbereich erstellen

Erstellen Sie einen externen Stagingbereich, der auf die von Ihnen erstellten AWS-Anmeldeinformationen verweist.

Erstellen Sie den Stagingbereich mit dem Befehl CREATE STAGE, oder ändern Sie einen vorhandenen externen Stagingbereich, und legen Sie die Option CREDENTIALS fest.

Bemerkung

Anmeldeinformationen werden getrennt von anderen Parametern des Stagingbereichs wie ENCRYPTION und FILE_FORMAT behandelt. Die Unterstützung für diese anderen Parameter ist dieselbe, unabhängig von den Anmeldeinformationen, die für den Zugriff auf Ihren externen S3-Bucket verwendet werden.

Legen Sie beispielsweise mydb.public als aktuelle Datenbank und aktuelles Schema für die Benutzersitzung fest, und erstellen Sie dann einen Stagingbereich namens my_S3_stage. In diesem Beispiel verweist der Stagingbereich auf den S3-Bucket und den Pfad mybucket/load/files. Dateien im S3-Bucket werden mit serverseitiger Verschlüsselung (AWS_SSE_KMS) verschlüsselt:

USE SCHEMA mydb.public;

CREATE OR REPLACE STAGE my_S3_stage
  URL='s3://mybucket/load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');

Nächstes Thema: Verschlüsselung von AWS-Datendateien