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

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

CurrentsとDashboard Data Exportには異なるポリシーが必要です。Brazeバックエンドがエラー処理を実行できるようにするには、s3:GetObjectが必要です。
任意のポリシー名を指定し、Policy Documentセクションに以下のコードスニペットを入力します。INSERTBUCKETNAMEは必ずバケット名に置き換えてください。これらの権限がないと、認証情報のチェックに失敗し、統合は作成されません。
メッセージアーカイブの設定のみを行う場合は、Dashboard Data Exportタブのコードスニペットを使用してください。
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にリンクする
メッセージアーカイブの設定のみを行う場合は、Dashboard Data Exportタブのステップに従ってください。
Brazeで、パートナー連携 > Currentsに移動します。
次に、Create New Currentを選択し、Amazon S3 Data Exportを選択します。
Currentに名前を付けます。Credentialsセクションで、AWS Secret Access Keyが選択されていることを確認し、指定されたフィールドにS3アクセスID、AWSシークレットアクセスキー、およびAWS S3バケット名を入力します。

AWSアクセスキーIDとシークレットアクセスキーを最新の状態に保ってください。コネクタの認証情報が期限切れになると、コネクタはイベントの送信を停止します。この状態が5日以上続くと、コネクタのイベントは削除され、データは永久に失われます。
必要に応じて、次のカスタマイズを追加することもできます。
- フォルダーパス:デフォルトは
currentsです。このフォルダが存在しない場合、Brazeが自動的に作成します。 - サーバーサイド保管時AES-256暗号化:デフォルトはオフで、
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 Resource Name(ARN)を生成し、BrazeのAmazonアカウントがバケットにデータを書き込むために作成したロールのメンバーとして認証できるようにします。
ステップ1:ポリシーを作成する
まず、アカウント管理者としてAWS管理コンソールにサインインします。AWSコンソールのIAMセクションに移動し、ナビゲーションバーでPoliciesを選択してから、Create Policyを選択します。

CurrentsとDashboard Data Exportには異なるポリシーが必要です。Brazeバックエンドがエラー処理を実行できるようにするには、s3:GetObjectが必要です。
JSONタブを開き、Policy Documentセクションに以下のコードスニペットを入力します。INSERTBUCKETNAMEは必ずバケット名に置き換えてください。入力が終わったら、Review Policyを選択します。
メッセージアーカイブの設定のみを行う場合は、Dashboard Data Exportタブのコードスニペットを使用してください。
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と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に名前を付けます。次に、CredentialsセクションでAWS Role ARNが選択されていることを確認し、ロールARNとAWS S3バケット名を所定のフィールドに入力します。
必要に応じて、次のカスタマイズを追加することもできます。
- フォルダーパス(デフォルトは
currents) - サーバーサイド保管時AES-256暗号化(デフォルトはオフ)-
x-amz-server-side-encryptionヘッダーを含みます
Launch Currentを選択して続行します。認証情報が正常に検証されると通知が表示されます。AWS S3がBraze Currents用に設定されました。
「S3の認証情報が無効です」というエラーが表示された場合、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アカウントに統合されました。
エクスポートの動作
クラウドデータストレージソリューションを統合し、API、ダッシュボードレポート、またはCSVレポートをエクスポートしているユーザーは、以下のような動作を経験します。
- すべてのAPIエクスポートは、レスポンスボディにダウンロードURLを返さず、データストレージを通じて取得する必要があります。
- すべてのダッシュボードレポートとCSVレポートは、ユーザーのメールに送信されてダウンロードされ(ストレージ権限不要)、データストレージにバックアップされます。
Unable to connect to S3, please validate that your credentials are correctエラー
CSVエクスポートのダウンロード時にこのエラーが表示された場合は、テクノロジーパートナーページでAmazon S3統合を開き、Test Credentialsを選択してください。結果には検証に失敗した内容が表示されます。例えば、キーにGetObject権限がないため、Brazeがダウンロードリンクを生成できない場合があります。
IAMポリシーを更新して、統合ユーザーまたはロールがBraze統合で設定されたS3バケットとオブジェクトパスに対してs3:GetObjectを呼び出せるようにしてください。エクスポートに関するその他の問題については、エクスポートのトラブルシューティングを参照してください。
JSONフォーマットの要件:JSONエクスポートでは、BrazeはJSONL(改行区切りのJSON)フォーマットを使用し、各行に個別のJSONオブジェクトが含まれます。このフォーマットは、単一のJSON配列またはオブジェクトである標準的なJSONとは異なります。エクスポートされたファイルの各行は有効なJSONオブジェクトですが、ファイル全体としては1つの有効なJSONドキュメントではありません。これらのファイルを処理する際は、ファイル全体を1つのJSONドキュメントとしてパースするのではなく、各行を個別のJSONオブジェクトとしてパースしてください。
Currentsのエクスポートは、JSONではなくApache Avroフォーマット(.avroファイル)を使用します。このJSONフォーマットの要件は、ダッシュボードデータエクスポートとAPIエクスポートに適用されます。
複数のコネクター
S3バケットに送信するCurrentsコネクタを複数作成する場合は、同じ認証情報を使用できますが、それぞれに異なるフォルダーパスを指定する必要があります。同じワークスペースで作成することも、複数のワークスペースに分割して作成することもできます。また、統合ごとに1つのポリシーを作成するか、両方の統合をカバーする1つのポリシーを作成するかを選択できます。
Currentsとデータエクスポートの両方に同じS3バケットを使用する場合は、それぞれの統合に異なる権限が必要なため、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統合で説明されている正しい権限でポリシーを作成したことを確認してください(認証方式に応じたDashboard Data Exportポリシーを使用してください)。
サーバーサイド暗号化
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など、必要な権限があることを確認してください。