Snowflake
Aikido の問題を Snowflake に送信すると、セキュリティ上の検出結果をデータウェアハウス内の他のデータと並べてクエリできます。
これは、チームが Aikido の検出結果に対して独自の分析を実行したり、他の業務データと結合したり、既存の Snowflake ベースのダッシュボードやアラートに取り込んだりしたい場合に便利です。
要件
接続する前に、Snowflake から次を取得してください:
アカウント識別子、データベース、ウェアハウス、スキーマ、ロール、ユーザー - テーブル、ステージ、ファイル形式を作成する権限を持つ専用のサービスアカウント用です。
テーブル名 - 対象のテーブルです。まだ存在しない場合、Aikido は最初にデータを書き込むときに自動的に作成します。
ステージ名 - テーブルが最初に作成されるときのみ使用されます。
認証 - RSA 秘密鍵 (推奨)または パスワード をサービスアカウント用に。
Snowflake への接続
Snowflake サービスアカウントを設定する
個人のログインではなく、専用のサービスアカウントを推奨します。作成するユーザーの種類は認証方法によって異なります。
キーペア認証(推奨)
次に従ってください Snowflake のキーペア認証ガイド RSA キーペアを生成し、次のように公開鍵を持つサービスユーザーを作成します:
CREATE USER aikido_service_account
COMMENT = 'Aikido Snowflake 統合用のサービスアカウント'
TYPE = 'service'
RSA_PUBLIC_KEY = 'Your RSA Public Key';秘密鍵(生の PEM または base64)は安全な場所に保管してください。後の手順で Aikido に貼り付けます。
パスワード認証
CREATE USER aikido_service_account
COMMENT = 'Aikido Snowflake 統合用のサービスアカウント'
PASSWORD = '強力な、生成されたパスワード'
MUST_CHANGE_PASSWORD = FALSE;可能であれば、パスワード認証よりキーペア認証を推奨します。
ロールを作成して権限を付与する
CREATE ROLE aikido_service_account_role;
GRANT ROLE aikido_service_account_role TO USER aikido_service_account;
GRANT USAGE ON WAREHOUSE {your_warehouse} TO ROLE aikido_service_account_role;
GRANT USAGE ON DATABASE {your_database} TO ROLE aikido_service_account_role;
GRANT USAGE ON SCHEMA {your_database}.{your_schema} TO ROLE aikido_service_account_role;
GRANT CREATE TABLE ON SCHEMA {your_database}.{your_schema} TO ROLE aikido_service_account_role;
GRANT CREATE STAGE ON SCHEMA {your_database}.{your_schema} TO ROLE aikido_service_account_role;
GRANT CREATE FILE FORMAT ON SCHEMA {your_database}.{your_schema} TO ROLE aikido_service_account_role;これはコネクタが実際に必要とするもの、つまりウェアハウスのクエリと、最初の書き込み時にテーブル、ステージ、ファイル形式を作成することをカバーしています。必要ありません MONITOR の付与や USAGE ON FUTURE SCHEMAS。これらは単一テーブルのコネクタに必要な以上の広いアクセス権を与えます。このロールに後から作成されるスキーマへのアクセスや、ウェアハウス/データベース活動の可視性を別途持たせたい場合にのみ追加してください。
Aikido にテーブルを作成させるのではなく、すでに自分で作成したテーブルを Aikido に指し示す場合は、その特定のテーブルへの書き込み権限も付与してください:
GRANT INSERT ON TABLE {your_database}.{your_schema}.{your_table} TO ROLE aikido_service_account_role;SIEM を接続する
次へ移動します: Settings > Integrations Aikido アプリで、新しい SIEM 統合を追加します。 SIEM を接続する ダイアログで次を選択します: Snowflake を選択して、次を入力します:
設定
データベース - 接続先の Snowflake データベースです。
ウェアハウス - クエリの実行とデータの読み込みに使用される仮想ウェアハウスです。
スキーマ - 対象テーブルがあるデータベース内のスキーマです。
ユーザー - サービスアカウントのユーザー名です。
アカウント - Snowflake のアカウント識別子です。Snowflake の現在の標準形式は
organization_name-account_name(実行SELECT CURRENT_ORGANIZATION_NAME(), CURRENT_ACCOUNT_NAME();Snowflake で両方を確認できます)。古い account-locator 形式もアカウントによっては使える場合があります。該当するものが不明な場合は、 Snowflake のアカウント識別子ガイド を参照してください。テーブル - データを書き込む先のテーブルです。存在しない場合、Aikido が自動的に作成します。
大文字小文字を区別しない - チェックすると、テーブル作成時に列名は大文字に変換されます(Snowflake の既定の動作)。チェックしない場合、元の大文字小文字は保持されます。データの読み込み自体は常に列名を大文字小文字を区別せずに照合します。
ステージ - データの読み込みに使用される Snowflake ステージで、テーブルが最初に作成されるときのみ関連します。
役割 - サービスアカウントが使用するロールです。
認証タイプ - 次を選択してください 秘密鍵 (推奨)または パスワード.
オプション
バッチ設定 - 書き込み前にデータをどのようにバッチ処理するかを制御します:
バッチデータサイズ - レコード数や経過時間に関係なく、送信前のバッチの最大合計サイズ(バイト数)です。
バッチレコード数 - バッチが自動送信される前に蓄積するレコードの最大数。
最大フラッシュ間隔 - サイズや件数に関係なく、送信前にレコードを保持する最大時間(秒)。
認証
選択したものに一致するフィールドを入力してください 認証タイプ:
秘密鍵 - サービスアカウントの RSA 秘密鍵。生の PEM 形式または base64 形式です。
パスワード - サービスアカウントのパスワード。パスワード認証を使用する場合のみ(秘密鍵より安全性は低いです)。
クリックします 接続をテスト Aikido が Snowflake に到達できることを確認してから、 変更を保存.
データの読み込み方法
まだ存在しないテーブルに初めてデータが書き込まれると、Aikido はデータをステージし、 COPY INTO を使用して Snowflake にスキーマを推測させ、テーブルを自動作成します。テーブルが存在するようになると、その後の書き込みは直接の INSERT 文に切り替わり、継続的な小さなバッチではよりコスト効率が高くなります。
イベントが届いていることを確認する
Snowflake では、対象テーブルを直接クエリしてください。設定した同期頻度が経過するのを待つか、Aikido でテスト問題をトリガーして、新しい行が表示されることを確認してください。
トラブルシューティング
接続エラーまたはタイムアウトエラー - アカウント識別子の形式を再確認し、ウェアハウスがすぐに起動することを確認してください(接続は30秒でタイムアウトします)。
認証エラー - キーペア認証の場合は、秘密鍵がサービスアカウントに登録された公開鍵と一致することを確認し、PEM 形式と base64 形式の両方を試してください。パスワード認証の場合は、認証情報が正しく、パスワード認証が有効になっていることを確認してください。
データが見つからない - データベース、スキーマ、テーブル、ステージ名がすべて正しいことを確認してください。
挿入時のスキーマ不一致 - テーブルが存在するようになると、受信データはそのスキーマに一致している必要があります。データの形が時間とともに変わる場合、挿入が失敗し始めることがあります。
テーブルが作成されない - テーブル作成にはステージアクセスが必要です。ロールに
CREATE STAGEとCREATE FILE FORMATのスキーマ権限があることを確認してください。
制限事項
サポートされるのは JSON データのみです。
Aikido がテーブルを作成する場合、明示的なスキーマ定義はサポートされていません。データからスキーマを推測します。自分のスキーマでテーブルを事前作成し、それを Aikido に指し示すこともできます。その場合は、サービスロールに
INSERTそのテーブルに対する権限があることを確認してください(上記の付与を参照)。直接挿入では、既存のテーブルスキーマが受信データと一致している必要があります。不一致のデータは挿入失敗の原因になります。
統合の管理
次から: 設定 > 統合 > Snowflake Aikido で、次のことができます:
統合を管理 - 接続詳細、バッチ処理、または認証を更新します。
統合を削除 - Snowflake の接続を解除します。これにより今後の同期はすべて停止します。すでに Snowflake に書き込まれた行は削除されません。
最終更新
役に立ちましたか?