❄️

【Snowflake】Snowsight UIへのアクセスを禁止する方法と残る抜け道の話

2024/04/30に公開
2

本記事で参考になるケース

  • Snowflakeユーザアカウントの接続方式を限定したい

記事の概要

  • Authentication policiesを利用して、ユーザの接続方式を限定する
  • パスワード再設定用URLを用いると、上記制限を潜りにけられてしまうため注意が必要(202404現在)

背景

  • ユーザに対して、Snowsightへのアクセスを許可したくなかった

方法

  1. Authentication policiesを作成
CREATE AUTHENTICATION POLICY DATABASE_A.SCHEMA_A.AUTHENTICATION_POLICY
  CLIENT_TYPES = ('SNOWSQL', 'DRIVERS')
  COMMENT = 'Not Allowd Web UI Access';
  1. ユーザへの設定
ALTER USER user_a SET AUTHENTICATION POLICY DATABASE_A.SCHEMA_A.AUTHENTICATION_POLICY;

注意点 : 制限を突破される(202404現在) 現在無事防がれる

ユーザのパスワード再設定用のURLを発行した場合....

ALTER USER user_a RESET PASSWORD

user_a にはAUTHENTICATION_POLICYによりSnowsightへのアクセスが制限されているが、上記パスワード再設定用URLからのアクセスの場合Snowsightへのアクセスを許してしまう.(パスワード再設定後通常のSnowsightへリダイレクトされてしまいます)

この点は注意が必要です.

発展

  • 認証方式を限定する

パスワードのみに!

CREATE AUTHENTICATION POLICY DATABASE_A.SCHEMA_A.AUTHENTICATION_POLICY
  CLIENT_TYPES = ('SNOWSQL', 'DRIVERS')
  AUTHENTICATION_METHODS = ('PASSWORD')
  COMMENT = 'Not Allowd Web UI Access';
 

SAMLのみに!

CREATE AUTHENTICATION POLICY DATABASE_A.SCHEMA_A.AUTHENTICATION_POLICY
  CLIENT_TYPES = ('SNOWSQL', 'DRIVERS')
  AUTHENTICATION_METHODS = ('SAML')
  COMMENT = 'Not Allowd Web UI Access';

参考

Authentication policyの組み合わせで、さらに複雑なアクセス制限を実現できそうですね!
まだまだできることはありますので下記をご参考にお試しください.
https://docs.snowflake.com/en/user-guide/authentication-policies

Snowflake Data Heroes

Discussion

musyumusyu

注意点 : 制限を突破される(202404現在)

こちらですが、20240924現在、突破されないようになっているようです。
パスワード再設定後、一旦ログイン画面にリダイレクトされるようになって、その後ログインしようとしたらauthentication_policyでパスワード認証がrejectされました。