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 コンソールを開き、手順に従って Sign in するか、Create an Account with 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: ユーザーを作成する

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

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


Currents と Dashboard Data Export では、それぞれ異なるポリシーが必要です。Braze のバックエンドでエラー処理を行うには、s3:GetObject が必要です。
任意のポリシー名を指定し、Policy Document セクションに次のコードスニペットを入力します。INSERTBUCKETNAME は必ずご自身のバケット名に置き換えてください。これらの権限がないと、連携は認証情報のチェックに失敗し、作成されません。

メッセージアーカイブのみを設定する場合は、Dashboard Data Export タブのコードスニペットを使用してください。
{
"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"]
}
]
}
ステップ 4: ポリシーをアタッチする
新しいポリシーを作成したら、Users に移動し、対象のユーザーを選択します。Permissions タブで Attach Policy を選択し、作成した新しいポリシーを選択します。これで、AWS の認証情報を Braze アカウントにリンクする準備が整いました。

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

メッセージアーカイブのみを設定する場合は、Dashboard Data Export タブの手順に従ってください。
Braze で パートナー連携 > Currents に移動します。
次に、Create New Current、Amazon S3 Data Export の順に選択します。
Current に名前を付けます。認証情報 セクションで 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 を選択して続行します。
認証情報が正常に検証されたかどうかが通知されます。これで、Braze Currents 用の AWS S3 の設定が完了しました。
Braze で パートナー連携 > テクノロジーパートナー に移動し、Amazon S3 を選択します。
AWS 認証情報 ページで AWS Secret Access Key が選択されていることを確認し、指定のフィールドに AWS アクセス ID、AWS シークレットアクセスキー、AWS S3 バケット名を入力します。シークレットキーを入力したら、まず 認証情報をテスト を選択して認証情報が機能することを確認し、成功したら 保存 を選択します。


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


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

メッセージアーカイブのみを設定する場合は、Dashboard Data Export タブのコードスニペットを使用してください。
{
"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/*"]
}
]
}
次に、ポリシーに名前と説明を付けて、Create Policy を選択します。


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

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

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

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

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

ロールの概要ページの上部にある Role ARN を控えておきます。

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

メッセージアーカイブのみを設定する場合は、Dashboard Data Export タブの手順に従ってください。
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 認証情報ページで AWS Role ARN ラジオボタンが選択されていることを確認し、指定されたフィールドにロール ARN と AWS S3 バケット名を入力します。まず 認証情報をテスト を選択して認証情報が正しく機能することを確認し、成功したら 保存 を選択します。

新しい認証情報は、AWS コンソールでユーザーに移動し、Security Credentials タブで Create Access Key を選択することでいつでも取得できます。
認証情報が正常に検証されたかどうかが通知で表示されます。これで、AWS S3 が Braze アカウントに連携されました。
ロール ARN 方式のセキュリティに関する考慮事項
ステップ2で Another AWS Account を選択して Braze のアカウント ID を入力すると、AWS は Principal が Braze AWS アカウントのルート (arn:aws:iam::<BRAZE_ACCOUNT_ID>:root) である信頼ポリシーを作成します。セキュリティチームがこの信頼ポリシーを確認する場合は、次の点に注意してください。
- Braze は共有の IAM ユーザーを使用してロールを引き受けます。
- external ID は必須です。プリンシパルを特定の IAM ユーザーに限定する場合も含め、信頼ポリシーの
sts:ExternalId条件は維持してください。 - プリンシパルを特定の IAM ユーザーに限定できます。セキュリティポリシーでアカウントルートの信頼が許可されていない場合は、
Principalを Braze IAM ユーザーの ARN に置き換えることができます。ご利用のリージョンの ARN を取得するには、Braze サポートにお問い合わせください。 - Braze IAM ユーザーは変更される可能性があります。プリンシパルは通常は安定していますが、将来 Braze が変更する場合があります。信頼ポリシーを特定の IAM ユーザーに限定していて、そのユーザーが変更された場合、信頼ポリシーを更新するまで Braze はロールを引き受けることができません。
- プリンシパルは製品によって異なります。Currents とダッシュボードデータのエクスポートでは同じ Braze IAM ユーザーを使用します。クラウドデータ取り込みは別の AWS アカウントの別のプリンシパルを使用するため、その信頼ポリシーは個別に設定してください。
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の更新を参照してください。
CurrentsがS3にファイルをアップロードする仕組み
Currentsは、各AvroファイルがAvro書き込みしきい値に達するとそのファイルを閉じ、完成したファイルをAmazon S3マルチパートアップロードを使用して5 MB単位のパートでバケットにアップロードします。マルチパートアップロードは書き込みしきい値とは別の処理であり、通常はファイルが閉じられてから数秒以内に完了します。
Amazon S3は、進行中のマルチパートアップロードをオブジェクトとして公開しません。Currentsのファイルは、アップロードが完了した後にのみListObjectsV2およびGetObjectから参照できるようになります。そのため、標準のS3 APIを通じてバケットを読み取るダウンストリームのプロセスが、アップロード途中のファイルを参照することはありません。
エクスポートの動作
クラウドデータストレージソリューションを統合しているユーザーが API、ダッシュボードレポート、または CSV レポートをエクスポートすると、次のように動作します。
- すべての API エクスポートでは、レスポンス本文にダウンロード URL が返されないため、データストレージから取得する必要があります。
- すべてのダッシュボードレポートと CSV レポートは、ダウンロード用にユーザーのメールに送信され (ストレージの権限は不要)、データストレージにバックアップされます。
Unable to connect to S3, please validate that your credentials are correct エラー
CSV エクスポートのダウンロード時にこのエラーが表示された場合は、テクノロジーパートナーページで Amazon S3 の連携を開き、認証情報をテストを選択します。結果には、検証に失敗した内容が表示されます。たとえば、キーに GetObject 権限が付与されていないと、Braze はダウンロードリンクを生成できません。
Braze の連携で設定した S3 バケットとオブジェクトパスに対して、連携ユーザーまたはロールが s3:GetObject を呼び出せるように IAM ポリシーを更新してください。その他のエクスポートに関する問題については、エクスポートのトラブルシューティングを参照してください。

JSON 形式の要件: JSON エクスポートでは、Braze は JSONL (改行区切りの JSON) 形式を使用し、各行に個別の JSON オブジェクトが含まれます。この形式は、単一の JSON 配列またはオブジェクトである標準の JSON とは異なります。エクスポートされたファイルの各行は有効な JSON オブジェクトですが、ファイル全体としては単一の有効な JSON ドキュメントではありません。これらのファイルを処理する際は、ファイル全体を単一の JSON ドキュメントとして解析するのではなく、各行を個別の JSON オブジェクトとして解析してください。
Currents のエクスポートでは、JSON ではなく Apache Avro 形式 (.avro ファイル) を使用します。この JSON 形式の要件は、ダッシュボードのデータエクスポートと API エクスポートに適用されます。
複数のコネクター
S3バケットに送信するCurrentsコネクターを複数作成する場合は、同じ認証情報を使用できますが、コネクターごとに異なるフォルダーパスを指定する必要があります。これらのコネクターは同じワークスペース内に作成することも、複数のワークスペースに分けて作成することもできます。また、連携ごとに個別のポリシーを作成することも、両方の連携をカバーする1つのポリシーを作成することもできます。
Currentsとデータエクスポートの両方で同じS3バケットを使用する予定の場合は、連携ごとに必要な権限が異なるため、2つの個別のポリシーを作成する必要があります。
トラブルシューティング
エラー:アカウントにPutObjectアクセス権がありません
ダッシュボードデータのエクスポート用に Amazon S3 の認証情報を保存する際に次のエラーが表示される場合は、権限またはサーバー側の暗号化設定が正しくない可能性があります。
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 との連携で説明されているとおり、正しい権限を持つポリシーを作成したことを確認してください(ご利用の認証方法に対応する Dashboard Data Export ポリシーを使用してください)。
サーバー側の暗号化
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 など、必要な権限があることを確認してください。