Amazon S3
Amazon S3は、Amazon Web Servicesが提供する高度にスケーラブルなストレージシステムです。

クラウドストレージプロバイダーを切り替える場合は、Brazeカスタマーサクセスマネージャーに連絡し、新しい連携の設定と検証についてサポートを受けてください。
BrazeとAmazon S3の連携には、2つの統合戦略があります。
- Currentsを活用すると、他のプラットフォーム、ツール、ロケーションに接続するまでデータを保存できます。
- ダッシュボードのデータエクスポート(CSVエクスポートやエンゲージメントレポートなど)を使用します。
前提条件
| 要件 | 説明 |
|---|---|
| Amazon S3 アカウント | このパートナーシップを利用するには、Amazon S3 アカウントが必要です。 |
| 専用 S3 バケット | Amazon S3 と連携する前に、アプリ用の S3 バケットを作成する必要があります。 すでに S3 バケットをお持ちの場合でも、権限を制限できるよう、Braze 専用の新しいバケットを作成することをお勧めします。新しいバケットの作成方法については、以下の手順を参照してください。 |
| Currents | データを Amazon S3 にエクスポートするには、アカウントに Braze Currents を設定する必要があります。メッセージアーカイブの設定のみを行う場合、Currentsは必要ありません。 |
新しい S3 バケットの作成
アプリ用のバケットを作成するには、以下の手順に従ってください。
- Amazon S3 コンソールを開き、指示に従ってサインインするか、AWS のアカウントを作成します。
- サインイン後、Storage & Content Delivery カテゴリから S3 を選択します。
- 次の画面で Create Bucket を選択します。
- プロンプトが表示されたら、バケットを作成し、AWS リージョンを選択します。
Braze では、ダッシュボードでリージョンを選択または設定することはできません。AWS リージョンは、AWS コンソールでバケットを作成した場所によって固定されます。連携では、指定したバケット名にデータを送信し、AWS がバケットのリージョンにリクエストを自動的にルーティングします。コネクターが希望と異なるリージョン(たとえば eu-central-1 ではなく eu-west-1)に接続しようとする場合は、AWS で希望するリージョンに S3 バケットを作成するか、そのリージョンの既存バケットを使用してください。Braze 側で変更する項目はありません。

連携
Brazeには、Amazon S3との連携戦略が2つあります。1つはBraze Currents用、もう1つはすべてのダッシュボードデータエクスポート(CSVエクスポートやエンゲージメントレポートなど)用です。どちらの連携も、2つの異なる認証方法をサポートしています。
AWSシークレットキー認証方式
この認証方式ではシークレットキーとアクセスキーIDが生成され、BrazeがAWSアカウント上のユーザーとして認証を行い、バケットにデータを書き込めるようになります。
ステップ1:ユーザーを作成する

メッセージのアーカイブのみを設定する場合は、ダッシュボードデータエクスポートタブの手順に従ってください。
アクセスキーIDとシークレットアクセスキーを取得するには、AWSでIAMユーザーと管理者グループを作成してください。
ステップ2:認証情報を取得する
新しいユーザーを作成した後、Show User Security Credentialsを選択してアクセスキーIDとシークレットアクセスキーを表示します。次に、これらの認証情報をメモするか、Download Credentialsボタンを選択してください。後でBrazeダッシュボードに入力する必要があります。

ステップ3:ポリシーを作成する
Policies > Get Started > Create Policyに移動して、ユーザーにアクセス許可を追加します。次に、Create Your Own Policyを選択します。これにより権限が制限され、Brazeは指定されたバケットにのみアクセスできるようになります。


Currentsとダッシュボードデータエクスポートでは異なるポリシーが必要です。s3:GetObjectは、Brazeバックエンドでエラーハンドリングを行うために必要です。
任意のポリシー名を指定し、以下のコードスニペットをPolicy Documentセクションに入力します。INSERTBUCKETNAMEをバケット名に置き換えてください。これらの権限がないと、連携の認証情報チェックに失敗し、作成されません。

メッセージのアーカイブのみを設定する場合は、ダッシュボードデータエクスポートタブのコードスニペットを使用してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"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/*"]
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"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"]
}
]
}
ステップ4:ポリシーをアタッチする
新しいポリシーを作成した後、Usersに移動して特定のユーザーを選択します。PermissionsタブでAttach Policyを選択し、作成した新しいポリシーを選択します。これで、AWSの認証情報をBrazeアカウントにリンクする準備が整いました。

ステップ5:BrazeをAWSにリンクする

メッセージのアーカイブのみを設定する場合は、ダッシュボードデータエクスポートタブの手順に従ってください。
Brazeで、パートナー連携 > Currentsに移動します。
次に、Create New Currentを選択し、Amazon S3 Data Exportを選択します。
Currentに名前を付けます。Credentialsセクションで、AWS Secret Access Keyが選択されていることを確認し、S3アクセスID、AWSシークレットアクセスキー、およびAWS S3バケット名を指定のフィールドに入力します。
連携エラー通知の連絡先メールアドレスを入力します。認証情報の問題や接続の問題など、連携でエラーが発生した場合、Brazeはこのアドレスに通知を送信します。適切な担当者がアラートを受け取れるようにするため、配布リストまたはグループメールアドレスを使用してください。


AWSアクセスキーIDとシークレットアクセスキーを常に最新の状態に保ってください。コネクタの認証情報が期限切れになると、コネクタはイベントの送信を停止します。この状態が5日間以上続くと、コネクタのイベントはドロップされ、データが永久に失われます。
また、必要に応じて以下のカスタマイズを追加できます:
- フォルダパス:デフォルトは
currentsです。このフォルダが存在しない場合、Brazeが自動的に作成します。 - サーバーサイドのAES-256保存時暗号化:デフォルトはOFFで、
x-amz-server-side-encryptionヘッダーが含まれます。
Launch Currentを選択して続行します。
認証情報が正常に検証されたかどうかの通知が表示されます。これでAWS S3がBraze Currentsに設定されました。
Brazeで、パートナー連携 > テクノロジーパートナーに移動し、Amazon S3を選択します。
AWS Credentialsページで、AWS Secret Access Keyが選択されていることを確認し、AWSアクセスID、AWSシークレットアクセスキー、およびAWS S3バケット名を指定のフィールドに入力します。シークレットキーを入力する際は、まずTest Credentialsを選択して認証情報が正しく機能することを確認し、成功したらSaveを選択します。


ユーザーに移動し、AWSコンソール内のSecurity CredentialsタブでCreate Access Keyを選択することで、いつでも新しい認証情報を取得できます。
認証情報が正常に検証されたかどうかの通知が表示されます。これでAWS S3がBrazeアカウントに統合されました。
AWS ロール ARN 認証方法
この認証方法では、ロール Amazon リソースネーム (ARN) を生成します。これにより、Braze の Amazon アカウントが、バケットにデータを書き込むために作成したロールのメンバーとして認証できるようになります。
ステップ1:ポリシーの作成
まず、アカウント管理者として AWS マネジメントコンソールにサインインします。AWS コンソールの IAM セクションに移動し、ナビゲーションバーで Policies を選択し、Create Policy を選択します。


Currentsとダッシュボードデータエクスポートには異なるポリシーが必要です。s3:GetObject は、Braze バックエンドがエラーハンドリングを実行するために必要です。
JSON タブを開き、以下のコードスニペットを Policy Document セクションに入力します。INSERTBUCKETNAME は必ずご自身のバケット名に置き換えてください。完了したら Review Policy を選択します。

メッセージアーカイブのみを設定する場合は、ダッシュボードデータエクスポートタブのコードスニペットを使用してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"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/*"]
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"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/*"]
}
]
}
次に、ポリシーに名前と説明を付けて、Create Policy を選択します。


ステップ2:ロールの作成
コンソールの同じ IAM セクションで、Roles > Create Role を選択します。

Braze アカウントから Braze アカウント ID と外部 ID を取得します:
- Currents: Brazeで、パートナー連携 > Currents に移動します。次に、Create New Current を選択し、Amazon S3 Data Export を選択します。ここでロールの作成に必要な識別子を確認できます。
- ダッシュボードデータエクスポート: Brazeで、パートナー連携 > テクノロジーパートナーに移動し、Amazon S3 を選択します。ここでロールの作成に必要な識別子を確認できます。(メッセージアーカイブのみを設定する場合は、ここでロールを作成してください。)
AWS コンソールに戻り、信頼されるエンティティの選択タイプとして Another AWS Account を選択します。Braze アカウント ID を入力し、Require external ID チェックボックスをオンにして、Braze の外部 ID を入力します。完了したら Next を選択します。

ステップ3:ポリシーのアタッチ
次に、先ほど作成したポリシーをロールにアタッチします。検索バーでポリシーを検索し、ポリシーの横にチェックマークを入れてアタッチします。完了したら Next を選択します。

ロールに名前と説明を付けて、Create Role を選択します。

新しく作成されたロールが一覧に表示されます。
ステップ4:Braze AWS へのリンク
AWS コンソールで、一覧から新しく作成したロールを見つけます。名前を選択して、そのロールの詳細を開きます。

ロール概要ページの上部にある Role ARN を確認してください。

Braze アカウントに戻り、指定されたフィールドにロール ARN をコピーします。

メッセージアーカイブのみを設定する場合は、ダッシュボードデータエクスポートタブの手順に従ってください。
Brazeで、パートナー連携 > Currents に移動します。次に、Create New Current を選択し、Amazon S3 Data Export を選択します。

Current に名前を付けます。次に、認証情報セクションで AWS Role ARN が選択されていることを確認し、指定されたフィールドにロール ARN と AWS S3 バケット名を入力します。
連携エラー通知の連絡先メールアドレスを入力します。認証情報の問題や接続の問題など、連携でエラーが発生した場合、Brazeはこのアドレスに通知を送信します。適切な担当者がアラートを受け取れるようにするため、配布リストまたはグループメールアドレスを使用してください。
また、必要に応じて以下のカスタマイズを追加できます:
- フォルダーパス(デフォルトは
currents) - サーバーサイド保存時 AES-256 暗号化(デフォルトは OFF)-
x-amz-server-side-encryptionヘッダーが含まれます
Launch Current を選択して続行します。認証情報が正常に検証されたかどうかを示す通知が表示されます。これで Braze Currentsに AWS S3 が設定されました。

「S3 credentials are invalid」エラーが表示された場合、AWS でロールを作成した直後に連携を行ったことが原因である可能性があります。しばらく待ってから再試行してください。メッセージに PutObject アクセスやダッシュボードデータエクスポートのサーバーサイド暗号化に関する内容が記載されている場合は、S3 認証エラーのトラブルシューティングを参照してください。
Brazeで、連携の下にあるテクノロジーパートナーページに移動し、Amazon S3 を選択します。

AWS Credentials ページで、AWS Role ARN ラジオボタンが選択されていることを確認し、指定されたフィールドにロール ARN と AWS S3 バケット名を入力します。まず Test Credentials を選択して認証情報が正しく動作することを確認し、成功したら Save を選択します。

いつでもユーザーに移動し、AWS コンソール内の Security Credentials タブで Create Access Key を選択することで、新しい認証情報を取得できます。
認証情報が正常に検証されたかどうかを通知でお知らせします。これで AWS S3 が Braze アカウントに統合されました。
Currents用のAmazon S3認証情報の更新
既存のBraze Currentsコネクタで、統合を停止したり、すでにバケットにエクスポートされたデータを失ったりすることなく、Amazon S3認証情報を更新できます。
認証情報を更新する場合、またはAWS Secret Access KeyとAWS Role ARNを切り替える場合は、この記事の前半で説明した選択した方式のIAMおよびAWS側のステップ(ポリシー、ユーザーまたはロール、必要に応じて識別子)を完了してください。
AWSで認証情報の準備が完了したら、Brazeでパートナー連携 > Currentsに移動し、リストからAmazon S3コネクタを見つけてEditを選択し、Credentialsを更新してUpdate Currentを選択します。Brazeは入力された認証情報を検証します。コネクタは引き続き実行され、バケット内のデータは引き続き利用可能です。詳細については、Currentsの設定でのCurrentsの更新を参照してください。
エクスポートの動作
クラウドデータストレージソリューションとエクスポートAPI、ダッシュボードレポート、またはCSVレポートを統合したユーザーは、以下の動作が適用されます。
- すべてのAPIエクスポートでは、レスポンスボディにダウンロードURLが返されないため、データストレージから取得する必要があります。
- すべてのダッシュボードレポートとCSVレポートは、ダウンロード用にユーザーのメールに送信され(ストレージの権限は不要)、データストレージにバックアップされます。
Unable to connect to S3, please validate that your credentials are correct エラー
CSVエクスポートのダウンロード時にこのエラーが表示された場合は、テクノロジーパートナーページで Amazon S3 連携を開き、認証情報をテストを選択してください。結果にはバリデーションに失敗した内容が表示されます。たとえば、キーに GetObject 権限がないため、Brazeがダウンロードリンクを生成できない場合があります。
IAMポリシーを更新して、連携ユーザーまたはロールがBraze連携で設定されたS3バケットとオブジェクトパスに対して s3:GetObject を呼び出せるようにしてください。その他のエクスポートの問題については、エクスポートのトラブルシューティングを参照してください。

JSON形式の要件: JSONエクスポートでは、BrazeはJSONL(改行区切りJSON)形式を使用します。この形式では、各行に個別のJSONオブジェクトが含まれます。この形式は、単一のJSON配列またはオブジェクトで構成される標準的なJSONとは異なります。エクスポートされたファイルの各行は有効なJSONオブジェクトですが、ファイル全体としては単一の有効なJSONドキュメントではありません。これらのファイルを処理する際は、ファイル全体を単一のJSONドキュメントとして解析しようとせず、各行を個別のJSONオブジェクトとして解析してください。
Currentsのエクスポートでは、JSONではなくApache Avro形式(.avroファイル)が使用されます。このJSON形式の要件は、ダッシュボードデータのエクスポートとAPIエクスポートに適用されます。
複数のコネクター
複数のCurrentsコネクターを作成してS3バケットにデータを送信する場合、同じ認証情報を使用できますが、各コネクターに異なるフォルダーパスを指定する必要があります。これらは同じワークスペース内で作成することも、分割して複数のワークスペースにまたがって作成することもできます。また、各連携ごとに個別のポリシーを作成するか、両方の連携をカバーする1つのポリシーを作成するかを選択できます。
同じS3バケットをCurrentsとデータエクスポートの両方に使用する場合は、各連携に異なる権限が必要なため、2つの別々のポリシーを作成する必要があります。
トラブルシューティング
エラー: アカウントに PutObject アクセスがない
ダッシュボードのデータエクスポート用に Amazon S3 認証情報を保存する際に以下のエラーが表示される場合、権限の誤りまたはサーバー側の暗号化設定が原因である可能性があります。
1
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.
この問題を解決するには、以下の項目を確認してください。
バケットポリシーの誤り
Amazon S3 連携に記載されている正しい権限でポリシーを作成したことを確認してください(認証方法に合わせてダッシュボードデータエクスポートポリシーを使用してください)。
サーバー側の暗号化
1
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
このエラーメッセージを Braze サポートまたは AWS ログで受け取った場合、S3 バケットが AWS Key Management Service(SSE-KMS)暗号化で設定されています。Braze は Currents やダッシュボードのデータエクスポートで SSE-KMS をサポートしていません。この問題を解決するには、S3 バケットで SSE-KMS を無効にしてください。

Braze は S3 マネージドキーによるサーバー側暗号化(SSE-S3)をサポートしています。これは Currents とダッシュボードのデータエクスポートの両方に対応しています。
追加の権限を確認する
s3:GetBucketLocation および s3:PutObject を含む必要な権限があることを確認してください。