ワークロードアイデンティティフェデレーション用に Snowflakeを設定する
このページでは、ワークロードアイデンティティフェデレーションを使用して Snowflakeを Braze Cloud Data Ingestion (CDI) に接続する方法について説明します。ロール、ウェアハウス、データベースの権限付与や、その他のソース設定については、データウェアハウスの統合、接続されたソース、または SQL エディターを参照してください。
ワークロードアイデンティティフェデレーションでは、Brazeは Snowflake用の Brazeの AWS アイデンティティにバインドされたサービスユーザーとして、Snowflakeに対して認証を行います。このユーザーにはパスワードも RSA キーもありません。RSA キーペア認証も引き続きサポートされています。既存のキーペア認証情報はそのまま動作し、移行する必要はありません。
ワークロードアイデンティティフェデレーションと RSA キーペア認証は、それぞれ別の設定パスです。認証情報フォームで選択した方式の手順に従ってください。
認証情報フォームにワークロードアイデンティティフェデレーションが表示されない場合は、キーペアを使用してください。
このワークスペースの Snowflake プリンシパルを使用する
Snowflakeの認証情報フォームに表示されるステートメントには、Snowflake用の Braze プリンシパルが含まれています。このプリンシパルは、Snowflake用の Brazeの AWS ロールを示す Amazon リソースネーム (ARN) です。これはお使いのワークスペースと Braze インスタンスに固有のものです。
Brazeは、Google BigQueryや Google Cloud Storageで使用するものとは異なる AWS ロールを Snowflakeに使用します。接続するワークスペースの Snowflake 認証情報フォームからステートメントをコピーしてください。BigQuery または Google Cloud Storageの認証情報フォームに表示されるプリンシパルは Google ソース用の Brazeの AWS ロールであるため、Snowflakeはこのユーザーに対してそれを拒否します。

Snowflakeの認証情報フォームに Brazeが表示するステートメントを実行してください。フォームには、ユーザー名、ロール、このワークスペース用の Braze プリンシパルが自動的に入力されます。別のワークスペース、Googleの認証情報フォーム、またはサンプルからコピーしたステートメントはこのワークスペースと一致しないため、接続テストが失敗します。
前提条件
ステートメントを実行する前に、次の作業を行ってください。
- ステップ 1.2: ロールとデータベース権限を設定するで、ロールを作成し、データベースへのアクセス権を付与します。接続されたソースには、テーブルを作成する権限も必要です。その権限付与については、ステップ 2.1: ロールを作成して権限を付与するを参照してください。
- ステップ 1.3: ウェアハウスを設定し、Braze ロールにアクセス権を付与するで、ロールにウェアハウスへのアクセス権を付与します。
- Snowflake アカウントでネットワークポリシーを使用している場合は、ステップ 1.5: Snowflake ネットワークポリシーで Brazeの IP を許可する (オプション)の説明に従って Brazeの IP アドレスを許可します。
TYPE = SERVICEのユーザーにも、このポリシーは適用されます。 SECURITYADMINなど、ユーザーの作成や変更、ロールの付与ができる Snowflake ロールを使用します。
同じ Snowflake アカウントに接続する Braze ワークスペースごとに、個別の Snowflake ユーザーを作成してください。1 つのワークスペース内では、同じユーザーを複数の統合で再利用できます。
生成されるステートメントの内容
Brazeは Snowflakeの認証情報フォームでステートメントを生成します。ステートメントはユーザー名とロールを入力すると変化し、Snowflake用の Braze プリンシパルが含まれます。ステートメントはフォームから実行してください。このページでは、実行する内容を理解できるようにステートメントについて説明します。
ユーザーを作成
ユーザーを作成は、新しい Snowflake ユーザー用です。このステートメントは CREATE USER コマンドで、次の処理を行います。
WORKLOAD_IDENTITYをTYPE = AWSに設定し、ARNをこの認証情報フォームに表示される Snowflake用の Braze プリンシパルに設定します。このバインドにより、Brazeがそのユーザーとして認証できるようになります。TYPE = SERVICEを設定します。このユーザーはサービスユーザーであり、パスワードも RSA 公開キーもありません。Snowflakeは、サービスユーザーに対してWORKLOAD_IDENTITYを受け入れます。DEFAULT_ROLEを入力したロールに設定します。Brazeが接続すると、Snowflakeはそのロールを有効にします。- そのロールをユーザーに付与し、ユーザーがそのロールを使用できるようにします。
ユーザーを変更
ユーザーを変更は、既に存在するユーザー名用です。このステートメントは ALTER USER コマンドで、次の処理を行います。
TYPE = SERVICEを設定します。ワークロードアイデンティティフェデレーションにはサービスユーザーが必要です。ユーザーにまだパスワードがある場合、Snowflakeはユーザーを Braze プリンシパルにバインドする前にこの変更を拒否します。ステートメントを実行する前にパスワードを削除するか、代わりに新しいサービスユーザーを作成してください。WORKLOAD_IDENTITYをTYPE = AWSに設定し、ARNを同じ Snowflake プリンシパルに設定します。- 入力したロールを付与します。ユーザーが既にそのロールを持っている場合、権限付与によってユーザーが変更されることはありません。
ステートメントは、フォームが生成したとおりに使用してください。ステートメントは TYPE = AWS と、Snowflake用の Braze プリンシパルの ARNを設定します。
ステートメントを実行する
- Brazeで、データ設定 > クラウドデータ取り込み > ソースに移動し、データソースを追加を選択してから、Snowflakeを選択します。
- 認証情報名を入力し、ワークロードアイデンティティフェデレーションを選択します。
- Braze 設定で、アカウントロケーター、ユーザー名、ロールを入力します。アカウントロケーターの値については、ステップ 2.1: Snowflakeの接続情報を追加するを参照してください。
- ユーザーを作成またはユーザーを変更を選択します。
- ステートメントをコピーが使用可能になったら、ステートメントをコピーを選択します。ステートメントにプリンシパルのプレースホルダーがまだ表示されている場合は、Brazeが置き換えるまで待ちます。このデプロイではワークロードアイデンティティフェデレーションを利用できないとフォームに表示された場合は、代わりにキーペアを選択します。
- Snowsightでワークシートを開き、ステートメントを実行します。
- Brazeの認証情報フォームに戻り、認証情報を保存を選択します。
- ソースのウェアハウス、データベース、スキーマを入力し、接続をテストを選択してから、ソースに接続を選択します。
Snowflakeの認証情報を確認する
認証情報を保存したら、認証情報ページで確認します。ソースごとに専用のセクションがあります。
- データ設定 > クラウドデータ取り込み > 認証情報に移動します。
- Snowflake データアクセス認証情報を探します。
- そのセクションで、認証情報名を選択します。
詳細モーダルには、認証方法、アカウントロケーター、ユーザー名、ロールが表示されます。使用元には、その認証情報を使用しているソースと同期が一覧表示されます。
ワークロードアイデンティティフェデレーションの認証情報には、RSA 公開キーは含まれません。キーペアの認証情報には、RSA 公開キー (プライマリ) も表示されます。表示を選択すると、現在の公開キーの ALTER USER ステートメントが展開されます。キーを置き換えるには、認証情報をローテーションを選択してから、新しいキーを生成を選択します。新しいステートメントを Snowflakeのワークシートで実行します。Brazeは以前の公開キーをセカンダリキーに移動し、新しい公開キーをインストールする間もそのキーは有効なままです。キーペア設定の残りの手順については、Snowflake ユーザーを認証するを参照してください。
トラブルシューティング
ステートメントをコピーできる状態にならない
ステートメントをコピーは、次の 2 つの場合に使用できないままになります。
- フォームに「Braze プリンシパル ARNの読み込み中にエラーが発生しました」と表示される場合。ページを再読み込みし、認証情報フォームをもう一度開いてください。
- フォームに「このデプロイではワークロードアイデンティティフェデレーションはまだ利用できません。代わりにキーペアを使用してください。」と表示される場合。キーペアを選択してください。
ステートメントを実行した後に接続テストが失敗する
次の点を確認してください。
- ユーザー名とロールを入力した後に、このワークスペースの Snowflake 認証情報フォームからステートメントを実行したこと。
- Snowflake ユーザーが
TYPE = SERVICEで、パスワードがないこと。 - 前提条件のロール、ウェアハウス、データベースの権限付与が存在し、ステートメントによるロールの付与が成功したこと。
- アカウントでネットワークポリシーを使用している場合は、Brazeの IP アドレスが許可されていること。ステップ 1.5: Snowflake ネットワークポリシーで Brazeの IP を許可する (オプション)を参照してください。
ユーザーにパスワードがあるためユーザーの変更が失敗する
Snowflakeはパスワードがまだ設定されているユーザーに対して TYPE = SERVICE を拒否するため、ユーザーは現在のタイプのままになります。パスワードを削除してステートメントを再度実行するか、ユーザーを作成を選択して新しいユーザー名を使用してください。