Zum Inhalt springen

Amazon S3

Amazon S3 ist ein hoch skalierbares Speichersystem, das von Amazon Web Services angeboten wird.

Die Integration von Braze und Amazon S3 bietet zwei Integrationsstrategien:

  • Nutzen Sie Currents, um Ihre Daten dort zu speichern, bis Sie sie mit anderen Plattformen, Tools und Standorten verbinden möchten.
  • Verwenden Sie Dashboard-Datenexporte (wie CSV-Exporte und Engagement-Berichte).

Voraussetzungen

Ein neues S3-Bucket erstellen

So erstellen Sie ein Bucket für Ihre App:

  1. Öffnen Sie die Amazon S3-Konsole und folgen Sie den Anweisungen, um sich anzumelden (Sign in) oder ein AWS-Konto zu erstellen (Create an Account with AWS).
  2. Wählen Sie nach der Anmeldung in der Kategorie Storage & Content Delivery die Option S3 aus.
  3. Wählen Sie auf dem nächsten Bildschirm Create Bucket aus.
  4. Erstellen Sie nach Aufforderung Ihr Bucket und wählen Sie eine AWS-Region aus.

In Braze können Sie im Dashboard keine Region auswählen oder konfigurieren. Die AWS-Region wird dadurch festgelegt, wo Sie das Bucket in der AWS-Konsole erstellen. Die Integration sendet Daten an den von Ihnen angegebenen Bucket-Namen, und AWS leitet Anfragen automatisch an die Region des Buckets weiter. Wenn Ihr Konnektor versucht, eine Verbindung zu einer anderen Region als der gewünschten herzustellen (zum Beispiel eu-west-1 statt eu-central-1), erstellen oder verwenden Sie in AWS ein S3-Bucket in Ihrer gewünschten Region. Auf der Seite von Braze müssen Sie nichts ändern.

Integration

Braze verfügt über zwei verschiedene Integrationsstrategien mit Amazon S3: eine für Braze-Currents und eine für alle Datenexporte aus dem Dashboard (z. B. CSV-Exporte oder Engagement-Berichte). Beide Integrationen unterstützen zwei verschiedene Methoden zur Authentifizierung bzw. Autorisierung:

Authentifizierungsmethode mit AWS Secret Key

Bei dieser Authentifizierungsmethode werden ein Secret Key und eine Access Key ID generiert. Damit kann sich Braze als Nutzer:in in Ihrem AWS-Konto authentifizieren und Daten in Ihren Bucket schreiben.

Schritt 1: Nutzer:in erstellen

Um Ihre Access Key ID und Ihren Secret Access Key abzurufen, erstellen Sie in AWS eine:n IAM-Nutzer:in und eine Administratorengruppe.

Schritt 2: Zugangsdaten abrufen

Nachdem Sie eine:n neue:n Nutzer:in erstellt haben, wählen Sie Show User Security Credentials aus, um Ihre Access Key ID und Ihren Secret Access Key anzuzeigen. Notieren Sie sich anschließend diese Zugangsdaten oder wählen Sie den Button Download Credentials aus, da Sie diese später im Braze-Dashboard eingeben müssen.

AWS-IAM-Seite mit den Sicherheits-Zugangsdaten der Nutzer:in, auf der die Access Key ID und der Secret Access Key angezeigt werden.

Schritt 3: Richtlinie erstellen

Navigieren Sie zu Policies > Get Started > Create Policy, um Berechtigungen für Ihre:n Nutzer:in hinzuzufügen. Wählen Sie anschließend Create Your Own Policy aus. Dadurch werden nur eingeschränkte Berechtigungen vergeben, sodass Braze ausschließlich auf die angegebenen Buckets zugreifen kann.

AWS-IAM-Bildschirm zum Erstellen einer Richtlinie mit Richtlinienoptionen für die S3-Integration.

Geben Sie einen Richtliniennamen Ihrer Wahl an und fügen Sie das folgende Code-Snippet in den Abschnitt Policy Document ein. Ersetzen Sie dabei INSERTBUCKETNAME durch Ihren Bucket-Namen. Ohne diese Berechtigungen schlägt die Prüfung der Zugangsdaten fehl und die Integration wird nicht erstellt.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME"]
        },
        {
            "Effect": "Allow",
            "Action": ["s3:PutObject", "s3:GetObject"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME/*"]
        }
    ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME"]
        },
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME*", "arn:aws:s3:::INSERTBUCKETNAME/", "arn:aws:s3:::INSERTBUCKETNAME"]
        }
    ]
}

Schritt 4: Richtlinie anhängen

Nachdem Sie eine neue Richtlinie erstellt haben, gehen Sie zu Users und wählen Sie Ihre:n Nutzer:in aus. Wählen Sie im Tab Permissions die Option Attach Policy und anschließend die neu erstellte Richtlinie aus. Jetzt können Sie Ihre AWS-Zugangsdaten mit Ihrem Braze-Konto verknüpfen.

AWS-IAM-Tab mit den Berechtigungen der Nutzer:in, in dem die Aktion „Attach Policy“ ausgewählt ist.

Schritt 5: Braze mit AWS verknüpfen

Gehen Sie in Braze zu Partnerintegrationen > Currents.

Wählen Sie anschließend Neuen Current erstellen und dann Amazon S3 Datenexport aus.

Geben Sie Ihrem Current einen Namen. Vergewissern Sie sich im Abschnitt Zugangsdaten, dass AWS Secret Access Key ausgewählt ist, und geben Sie dann Ihre S3-Access-ID, Ihren AWS Secret Access Key und den Namen Ihres AWS-S3-Buckets in die entsprechenden Felder ein.

Geben Sie eine Kontakt-E-Mail-Adresse für Benachrichtigungen bei Integrationsfehlern an. Braze sendet Benachrichtigungen an diese Adresse, wenn bei der Integration Fehler auftreten, z. B. Probleme mit Anmeldedaten oder der Konnektivität. Um sicherzustellen, dass die richtigen Personen Benachrichtigungen erhalten, verwenden Sie einen Verteiler oder eine Gruppen-E-Mail-Adresse.

Braze-Formular zum Erstellen eines neuen Currents für Amazon S3 mit Feldern für die Zugangsdaten per AWS Secret Key.

Je nach Bedarf können Sie außerdem die folgenden Anpassungen vornehmen:

  • Ordnerpfad: Standardmäßig currents. Wenn dieser Ordner nicht existiert, erstellt Braze ihn automatisch für Sie.
  • Serverseitige AES-256-Verschlüsselung im Ruhezustand: Standardmäßig AUS; enthält den Header x-amz-server-side-encryption.

Wählen Sie Current starten aus, um fortzufahren.

Eine Benachrichtigung informiert Sie darüber, ob Ihre Zugangsdaten erfolgreich validiert wurden. AWS S3 ist jetzt für Braze-Currents eingerichtet.

Gehen Sie in Braze zu Partnerintegrationen > Technologie-Partner und wählen Sie Amazon S3 aus.

Vergewissern Sie sich auf der Seite AWS-Zugangsdaten, dass AWS Secret Access Key ausgewählt ist, und geben Sie dann Ihre AWS-Access-ID, Ihren AWS Secret Access Key und den Namen Ihres AWS-S3-Buckets in die entsprechenden Felder ein. Wählen Sie bei der Eingabe Ihres Secret Keys zuerst Zugangsdaten testen aus, um sicherzustellen, dass Ihre Zugangsdaten funktionieren, und wählen Sie dann bei Erfolg Speichern aus.

Braze-Seite für die Zugangsdaten des Technologie-Partners Amazon S3 mit den Aktionen zum Testen und Speichern.

Eine Benachrichtigung informiert Sie darüber, ob Ihre Zugangsdaten erfolgreich validiert wurden. AWS S3 ist jetzt in Ihr Braze-Konto integriert.

AWS-Rollen-ARN-Authentifizierungsmethode

Diese Authentifizierungsmethode erzeugt einen Rollen-Amazon-Resource-Name (ARN), mit dem sich das Amazon-Konto von Braze als Mitglied der von Ihnen erstellten Rolle authentifizieren kann, um Daten in Ihren Bucket zu schreiben.

Schritt 1: Richtlinie erstellen

Melden Sie sich zunächst als Kontoadministrator:in bei der AWS Management Console an. Navigieren Sie zum IAM-Bereich der AWS Console, wählen Sie in der Navigationsleiste Policies aus und wählen Sie dann Create Policy.

AWS-IAM-Seite „Policies“ mit ausgewähltem Button „Create Policy“.

Öffnen Sie den Tab JSON und geben Sie das folgende Code-Snippet in den Bereich Policy Document ein. Ersetzen Sie dabei INSERTBUCKETNAME durch Ihren Bucket-Namen. Wählen Sie anschließend Review Policy aus.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME"]
        },
        {
            "Effect": "Allow",
            "Action": ["s3:PutObject", "s3:GetObject"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME/*"]
        }
    ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME"]
        },
        {
            "Effect": "Allow",
            "Action": ["s3:PutObject", "s3:GetObject","s3:DeleteObject"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME/*"]
        }
    ]
}

Geben Sie der Richtlinie anschließend einen Namen und eine Beschreibung und wählen Sie Create Policy aus.

AWS-IAM-Schritt zum Überprüfen der Richtlinie mit Feldern für Richtlinienname und Beschreibung.

AWS-IAM-Richtlinienliste mit der neu erstellten S3-Richtlinie.

Schritt 2: Rolle erstellen

Wählen Sie im selben IAM-Bereich der Konsole Roles > Create Role aus.

AWS-IAM-Seite „Roles“ mit ausgewähltem Button „Create Role“.

Rufen Sie Ihre Braze-Konto-ID und Ihre externe ID aus Ihrem Braze-Konto ab:

  • Currents: Gehen Sie in Braze zu Partnerintegrationen > Currents. Wählen Sie dann Neuen Current erstellen und anschließend Amazon S3 Datenexport aus. Hier finden Sie die Bezeichner, die Sie zum Erstellen Ihrer Rolle benötigen.
  • Dashboard-Datenexport: Gehen Sie in Braze zu Partnerintegrationen > Technologie-Partner und wählen Sie Amazon S3 aus. Hier finden Sie die Bezeichner, die Sie zum Erstellen Ihrer Rolle benötigen. (Erstellen Sie Ihre Rollen hier, wenn Sie nur die Nachrichtenarchivierung einrichten.)

Wählen Sie in der AWS Console als Typ der vertrauenswürdigen Entität Another AWS Account aus. Geben Sie Ihre Braze-Konto-ID an, aktivieren Sie das Kontrollkästchen Require external ID und geben Sie die externe ID von Braze ein. Wählen Sie anschließend Next aus.

Die S3-Seite „Create Role“. Diese Seite enthält Felder für Rollenname, Rollenbeschreibung, vertrauenswürdige Entitäten, Richtlinien und Berechtigungsgrenzen.

Schritt 3: Richtlinie anhängen

Hängen Sie als Nächstes die zuvor erstellte Richtlinie an die Rolle an. Suchen Sie die Richtlinie über die Suchleiste und setzen Sie ein Häkchen neben die Richtlinie, um sie anzuhängen. Wählen Sie anschließend Next aus.

AWS-IAM-Schritt zum Anhängen der erstellten Richtlinie an die Rolle.

Geben Sie der Rolle einen Namen und eine Beschreibung und wählen Sie Create Role aus.

AWS-IAM-Schritt mit Feldern für Rollenname und Beschreibung.

Ihre neu erstellte Rolle wird nun in der Liste angezeigt.

Schritt 4: Mit Braze AWS verknüpfen

Suchen Sie in der AWS Console Ihre neu erstellte Rolle in der Liste. Wählen Sie den Namen aus, um die Details dieser Rolle zu öffnen.

AWS-IAM-Detailseite der neu erstellten Rolle.

Notieren Sie sich den Role ARN oben auf der Übersichtsseite der Rolle.

AWS-IAM-Rollenübersicht mit dem Wert für den Role ARN.

Kehren Sie zu Ihrem Braze-Konto zurück und kopieren Sie den Rollen-ARN in das dafür vorgesehene Feld.

Gehen Sie in Braze zu Partnerintegrationen > Currents. Wählen Sie dann Neuen Current erstellen und anschließend Amazon S3 Datenexport aus.

Braze-Currents-Einrichtungsbildschirm für Amazon S3 mit Feldern für AWS Role ARN und Bucket.

Geben Sie Ihrem Current einen Namen. Stellen Sie dann im Bereich Zugangsdaten sicher, dass AWS Role ARN ausgewählt ist, und geben Sie Ihren Rollen-ARN und den Namen Ihres AWS-S3-Buckets in die entsprechenden Felder ein.

Geben Sie eine Kontakt-E-Mail-Adresse für Benachrichtigungen bei Integrationsfehlern an. Braze sendet Benachrichtigungen an diese Adresse, wenn bei der Integration Fehler auftreten, z. B. Probleme mit Anmeldedaten oder der Konnektivität. Um sicherzustellen, dass die richtigen Personen Benachrichtigungen erhalten, verwenden Sie einen Verteiler oder eine Gruppen-E-Mail-Adresse.

Sie können je nach Bedarf außerdem die folgenden Anpassungen vornehmen:

  • Ordnerpfad (standardmäßig currents)
  • Serverseitige AES-256-Verschlüsselung im Ruhezustand (standardmäßig AUS) – enthält den Header x-amz-server-side-encryption

Wählen Sie Current starten aus, um fortzufahren. Eine Benachrichtigung zeigt an, ob Ihre Zugangsdaten erfolgreich validiert wurden. AWS S3 ist nun für Braze-Currents eingerichtet.

Gehen Sie in Braze unter Integrationen zur Seite Technologie-Partner und wählen Sie Amazon S3 aus.

Braze-Technologie-Partnerseite für Amazon S3 mit ausgewählten AWS-Role-ARN-Zugangsdaten.

Stellen Sie auf der Seite AWS-Zugangsdaten sicher, dass das Optionsfeld AWS Role ARN ausgewählt ist, und geben Sie dann Ihren Rollen-ARN und den Namen Ihres AWS-S3-Buckets in die entsprechenden Felder ein. Wählen Sie zuerst Zugangsdaten testen aus, um zu bestätigen, dass Ihre Zugangsdaten korrekt funktionieren, und wählen Sie bei Erfolg Speichern aus.

Eine Benachrichtigung informiert Sie darüber, ob Ihre Zugangsdaten erfolgreich validiert wurden. AWS S3 ist nun in Ihr Braze-Konto integriert.

Sicherheitsaspekte der Rollen-ARN-Methode

Wenn Sie in Schritt 2 Another AWS Account auswählen und die Braze-Konto-ID eingeben, erstellt AWS eine Vertrauensrichtlinie, deren Principal der Root des Braze-AWS-Kontos ist (arn:aws:iam::<BRAZE_ACCOUNT_ID>:root). Wenn Ihr Sicherheitsteam diese Vertrauensrichtlinie überprüft, beachten Sie Folgendes:

  • Braze verwendet einen gemeinsam genutzten IAM-Nutzer, um Ihre Rolle zu übernehmen.
  • Die externe ID ist erforderlich. Behalten Sie die Bedingung sts:ExternalId in Ihrer Vertrauensrichtlinie bei – auch dann, wenn Sie den Principal auf einen bestimmten IAM-Nutzer beschränken.
  • Sie können den Principal auf einen bestimmten IAM-Nutzer beschränken. Wenn Ihre Sicherheitsrichtlinie es nicht erlaubt, einem Konto-Root zu vertrauen, können Sie den Principal durch den ARN des Braze-IAM-Nutzers ersetzen. Um diesen ARN für Ihre Region zu erhalten, wenden Sie sich an den Braze-Support.
  • Der Braze-IAM-Nutzer kann sich ändern. Der Principal ist in der Regel stabil, Braze kann ihn jedoch in Zukunft ändern. Wenn Sie Ihre Vertrauensrichtlinie auf einen bestimmten IAM-Nutzer beschränken und sich dieser Nutzer ändert, kann Braze Ihre Rolle erst wieder übernehmen, wenn Sie die Vertrauensrichtlinie aktualisieren.
  • Die Principals unterscheiden sich je nach Produkt. Currents und Dashboard-Datenexporte verwenden denselben Braze-IAM-Nutzer. Cloud Data Ingestion verwendet einen anderen Principal in einem anderen AWS-Konto. Konfigurieren Sie die zugehörige Vertrauensrichtlinie daher separat.

Aktualisierung der Amazon S3-Zugangsdaten für Currents

Sie können die Amazon S3-Zugangsdaten eines bestehenden Braze-Currents-Konnektors aktualisieren, ohne die Integration zu stoppen oder bereits in Ihren Bucket exportierte Daten zu verlieren.

Um Zugangsdaten zu aktualisieren – oder zwischen AWS Secret Access Key und AWS Role ARN zu wechseln – führen Sie zunächst die IAM- und AWS-seitigen Schritte für Ihre gewählte Methode weiter oben in diesem Artikel durch (Richtlinien, Nutzer:in oder Rolle und Bezeichner nach Bedarf).

Wenn Sie die Zugangsdaten in AWS vorbereitet haben, gehen Sie in Braze zu Partnerintegrationen > Currents, suchen Sie Ihren Amazon S3-Konnektor in der Liste, wählen Sie Edit, aktualisieren Sie die Zugangsdaten und wählen Sie Update Current. Braze validiert die eingegebenen Zugangsdaten; Ihr Konnektor läuft weiter und die bereits in Ihrem Bucket vorhandenen Daten bleiben verfügbar. Weitere Informationen finden Sie unter Currents aktualisieren in Currents einrichten.

So lädt Currents Dateien in S3 hoch

Currents schließt jede Avro-Datei, sobald sie den Avro-Schreibschwellenwert erreicht, und lädt die fertige Datei anschließend per Amazon S3 Multipart-Upload in Teilen von 5 MB in Ihren Bucket hoch. Der Multipart-Upload ist unabhängig vom Schreibschwellenwert und ist in der Regel innerhalb weniger Sekunden nach dem Schließen der Datei abgeschlossen.

Amazon S3 stellt einen laufenden Multipart-Upload nicht als Objekt bereit. Eine Currents-Datei ist für ListObjectsV2 und GetObject erst sichtbar, wenn der Upload abgeschlossen ist. Nachgelagerte Prozesse, die Ihren Bucket über die Standard-S3-APIs lesen, sehen daher keine teilweise hochgeladenen Dateien.

Exportverhalten

Nutzer:innen, die eine Cloud-Datenspeicherlösung integriert haben und APIs, Dashboard-Berichte oder CSV-Berichte exportieren, erleben Folgendes:

  • Alle API-Exporte geben im Antwortkörper keine Download-URL zurück und müssen über den Datenspeicher abgerufen werden.
  • Alle Dashboard-Berichte und CSV-Berichte werden zum Herunterladen an die E-Mail-Adresse der Nutzer:innen gesendet (keine Speicherberechtigungen erforderlich) und im Datenspeicher gesichert.

Fehler Unable to connect to S3, please validate that your credentials are correct

Wenn dieser Fehler beim Herunterladen eines CSV-Exports angezeigt wird, öffnen Sie die Integration Amazon S3 auf der Seite Technologie-Partner und wählen Sie Zugangsdaten testen aus. Das Ergebnis zeigt, was bei der Validierung fehlgeschlagen ist. Beispielsweise könnte dem Schlüssel die Berechtigung GetObject fehlen, wodurch Braze keine Download-Links erstellen kann.

Aktualisieren Sie Ihre IAM-Richtlinie, damit die Integrationsnutzer:in oder Rolle s3:GetObject für den S3-Bucket und den Objektpfad aufrufen kann, die in Ihrer Braze-Integration konfiguriert sind. Weitere Probleme beim Export finden Sie unter Fehlerbehebung beim Export.

Mehrere Konnektoren

Wenn Sie mehr als einen Currents-Konnektor erstellen möchten, der Daten an Ihren S3-Bucket sendet, können Sie dieselben Zugangsdaten verwenden, müssen aber für jeden Konnektor einen anderen Ordnerpfad angeben. Sie können diese Konnektoren im selben Workspace erstellen oder auf mehrere Workspaces verteilen. Außerdem können Sie entweder für jede Integration eine eigene Richtlinie erstellen oder eine einzige Richtlinie, die beide Integrationen abdeckt.

Wenn Sie denselben S3-Bucket sowohl für Currents als auch für Datenexporte verwenden möchten, müssen Sie zwei separate Richtlinien erstellen, da jede Integration unterschiedliche Berechtigungen erfordert.

Fehlerbehebung

Fehler: Konto hat keinen PutObject-Zugriff

Wenn beim Speichern von Amazon S3-Zugangsdaten für Dashboard-Datenexporte der folgende Fehler angezeigt wird, kann dies an falschen Berechtigungen oder an den Einstellungen für die serverseitige Verschlüsselung liegen.

S3 Credentials are invalid because this account does not have 'PutObject access'. Please check the permissions and ensure that this key has access to 'PutObject' in the 'CUSTOMER-BUCKET-HERE' bucket.

Um dieses Problem zu beheben, überprüfen Sie die folgenden Bereiche.

Falsche Bucket-Richtlinie

Vergewissern Sie sich, dass Sie eine Richtlinie mit den korrekten Berechtigungen erstellt haben, wie unter Amazon S3-Integration beschrieben (verwenden Sie die Richtlinie Dashboard Data Export für Ihre Authentifizierungsmethode).

Serverseitige Verschlüsselung

User: arn:aws:sts::XXX:assumed-role/braze-iam-role/braze is not authorized to perform: kms:GenerateDataKey on resource: arn:aws:XXX because no identity-based policy allows the kms:GenerateDataKey action

Wenn Sie diese Fehlermeldung vom Braze-Support oder in Ihren AWS-Logs erhalten, ist Ihr S3-Bucket mit AWS Key Management Service-Verschlüsselung (SSE-KMS) konfiguriert. Braze unterstützt SSE-KMS weder für Currents noch für Dashboard-Datenexporte. Um dieses Problem zu beheben, deaktivieren Sie SSE-KMS in Ihrem S3-Bucket.

Zusätzliche Berechtigungen prüfen

Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen verfügen, einschließlich s3:GetBucketLocation und s3:PutObject.

New Stuff!