事前準備
開始する前に、次を特定してください:
Gainsight → Snowflake 接続で使用している認証タイプの確認
- Basic(ユーザー名 & パスワード)→廃止予定。必要に応じて Snowflake サポートへ問い合わせてください。
- OAuth(Snowflake の SECURITY INTEGRATION 経由)
- キーペア(Snowflake ユーザーに設定する RSA 公開鍵)
Gainsight 専用の Snowflake プリンシパル
例:
- ユーザー: GS_GAINSIGHT_USER
- Security Integration(OAuth): GAINSIGHT
- Gainsight 専用で使用している Warehouse / Database / Schema / Views
関連オブジェクトを確認するコマンド
必要に応じて名前やコマンドを調整してください:
SHOW USERS LIKE '%GAINSIGHT%';
SHOW SECURITY INTEGRATIONS LIKE '%GAINSIGHT%';
重要:上記の例の名称は、実際のユーザー/ロール/インテグレーション名に置き換えてください。
認証情報のローテーション
Gainsight と Snowflake の接続を維持しつつ、セキュリティ向上のために認証情報をローテーションしたい場合に使用します。
Basic(ユーザー名/パスワード)
もし Basic 認証を使用している場合、Gainsight は OAuth または Key Pair への移行を推奨します。必要に応じて Snowflake サポートに相談してください。移行までの間は、定期的にパスワードをローテーションしてください。
1. Snowflake ユーザーに強力な新パスワードを設定
ALTER USER "GS_GAINSIGHT_USER" SET PASSWORD = '<NEW_STRONG_PASSWORD>';
- 長くランダムなパスワードを使用してください。
- ユーザーは無効化しないでください。
2. Gainsight でパスワードを更新
- Gainsight の コネクタ2.0 または Integrations ページへ移動
- Basic 認証を使用している Snowflake 接続を編集
- 新しいパスワードを入力して保存
3. 動作確認
- Gainsight から新規ジョブを作成するか既存ジョブを実行して接続テスト
- 必要であれば Snowflake の LOGIN_HISTORY でユーザーのログインを監査可能
Basic 認証を廃止したい場合(推奨)は、以下の手順で切断します:
- パスワードをローテーションまたは無効化した後、ユーザーを 無効化
ALTER USER "GS_GAINSIGHT_USER" SET PASSWORD = '<NEW_RANDOM_PASSWORD>';
ALTER USER "GS_GAINSIGHT_USER" SET DISABLED = TRUE;
- Gainsight 専用で不要な場合はユーザーを削除
DROP USER IF EXISTS "GS_GAINSIGHT_USER";
OAuth / Security Integration
このモデルでは、Gainsight は OAuth の SECURITY INTEGRATION を使用して Snowflake へ接続します。
一般的なローテーションタスク:
1. IdP / OAuth プロバイダでシークレットやトークンをローテーション
- クライアントシークレットのローテーション(必要な場合)
- 古いリフレッシュトークンの失効
2. Snowflake の SECURITY INTEGRATION を更新(パラメータを変更した場合)
例:インテグレーション設定の更新
ALTER SECURITY INTEGRATION "GAINSIGHT"
SET <property> = <new_value>;(例:OAUTH_CLIENT_SECRET など変更した項目)
3. Gainsight 側で設定更新
- Gainsight のコネクタ2.0のページで OAuth を使用する Snowflake 接続を編集
- 対応する Security Integration と更新後の OAuth 情報を確認
- UI が求める場合、再認証を実施
4. 動作確認
- Gainsight でジョブを作成または実行し接続をテスト
- 任意で Snowflake 側で Integration が ENABLED であることを確認:
SHOW SECURITY INTEGRATIONS LIKE 'GAINSIGHT';
注:トークン/シークレットのローテーションのみの場合、Security Integration を削除しないよう注意してください。
Key Pair(RSA)
Snowflake はユーザーごとに 2つの公開鍵(RSA_PUBLIC_KEY / RSA_PUBLIC_KEY_2) を保持でき、ゼロダウンタイムでの鍵ローテーションが可能です。
推奨パターン:
1. 新しい秘密鍵を生成(ローカル)
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key_new.p8 -nocryp
2. 新しい公開鍵を生成
openssl rsa -in rsa_key_new.p8 -pubout -out rsa_key_new.pub
3. 新しい公開鍵を Snowflake ユーザーに追加
(現在 RSA_PUBLIC_KEY を使用中の場合、RSA_PUBLIC_KEY_2 に追加)
ALTER USER "GS_GAINSIGHT_USER"
SET RSA_PUBLIC_KEY_2 = '<NEW_PUBLIC_KEY_CONTENTS>';
4. Gainsight を新しい秘密鍵に切り替え
- Gainsight のコネクタ2.0のページに移動
- Key Pair 認証を使う Snowflake 接続を編集
- rsa_key_new.p8 をアップロード
- 保存して接続テスト
5. カットオーバー後、古い公開鍵を削除
接続が新しい鍵で成功したことを確認したら:
ALTER USER "GS_GAINSIGHT_USER" UNSET RSA_PUBLIC_KEY;
6. または、どちらの鍵が「アクティブ」かを切り替えた場合は、未使用の方を適切に解除します。
ALTER USER "GS_GAINSIGHT_USER" UNSET RSA_PUBLIC_KEY_2;
6. 動作確認
- Gainsight からジョブを実行して接続確認
Gainsightは、Snowflakeアカウント/ネットワークにおいてGainsightのIPアドレスを許可リストに登録することを強く推奨します。最新のIPリストを取得するには、ゲインサイトサポートチケットを発行してください。接続の作成または再確立前に、これらのIPが許可リストに登録されていることを確認してください。