Skip to main content

Snowflake 連携の認証情報ローテーション(セキュリティのための推奨アクション)

  • November 28, 2025
  • 0 replies
  • 50 views

Hideta Mitsuhashi
Forum|alt.badge.img

 

事前準備

開始する前に、次を特定してください:

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 認証を廃止したい場合(推奨)は、以下の手順で切断します:

  1. パスワードをローテーションまたは無効化した後、ユーザーを 無効化
ALTER USER "GS_GAINSIGHT_USER" SET PASSWORD = '<NEW_RANDOM_PASSWORD>';

ALTER USER "GS_GAINSIGHT_USER" SET DISABLED = TRUE;

 

  1. 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が許可リストに登録されていることを確認してください。