Snowflake に対して、外部の ID 基盤 (IdP; ID Provider) による認証でログインするための設定例を記載します。IdP としては Auth0 を用います。
参考資料:
- HOWTO: CONFIGURE AUTH0 AS IDENTITY PROVIDER FOR SNOWFLAKE SINGLE SIGN-ON
- Federated Authentication & SSO
Auth0 の設定
Create Application をクリックします。
Native を選択します。
Settings をクリックします。
URL を設定して Save Changes をクリックします。例:
https://xxx12345.us-east-1.snowflakecomputing.com
https://xxx12345.us-east-1.snowflakecomputing.com,https://xxx12345.us-east-1.snowflakecomputing.com/fed/login
https://xxx12345.us-east-1.snowflakecomputing.com/fed/logout
SAML2 をクリックします。
以下の値を設定して Enable → Save をクリックします。
https://xxx12345.us-east-1.snowflakecomputing.com
{
"audience": "https://xxx12345.us-east-1.snowflakecomputing.com",
"recipient": "https://xxx12345.us-east-1.snowflakecomputing.com/fed/login",
"signatureAlgorithm": "rsa-sha256",
"digestAlgorithm": "sha256",
"destination": "https://xxx12345.us-east-1.snowflakecomputing.com/fed/login",
"nameIdentifierProbes": [
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
],
"logout": {
"callback": "https://xxx12345.us-east-1.snowflakecomputing.com/fed/logout"
},
"binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
}
検証用ユーザの作成
Create User をクリックして、メールアドレスを指定します。
メールアドレスの認証を行います。
Snowflake 側の設定
Auth0 Application の Settings をクリックします。
Advanced Settings の Certificates をクリックして、Signing Certificate をコピーします。
Endpoints をクリックします。
SAML Protocol URL をコピーします。
Snowflake で以下のクエリを実行します。certificate
には Certificates のヘッダとフッタ、および改行を除いて一行にした値を指定します。
ALTER ACCOUNT SET saml_identity_provider = '{
"certificate": "XXXXX",
"ssoUrl": "https://myauth.jp.auth0.com/samlp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"type": "Custom",
"label": "Auth0"
}';
更に、以下のパラメータも設定します。
ALTER ACCOUNT SET sso_login_page = true;
検証用のユーザを作成します。login_name
に Auth0 のユーザのメールアドレスを指定します。password
に NULL を設定することで、パスワードログインを無効化します。
CREATE USER ssotestuser
password = NULL
login_name = 'myuser@gmail.com'
default_role = SYSADMIN;
動作検証
ログイン画面で Sign in using Auth0 が選択できるようになっています。
Auth0 で作成したユーザでログインします。
その他の話題
- Using SSO with MFA
- MFA と SSO は併用可能です。
- Using SSO with Private Connectivity
- Private Link 接続と SSO は併用可能です。
関連記事
- Snowflake Task による SQL の定期実行Snowflake において、cron のように定期的に SQL を実行する仕組みとして Task が提供されています。基本的な使い方を記載します。 サンプル データベースとテーブルを作成しておきます。 CREATE DATABASE mydb; CREATE TABLE mytbl (c1 DATETIME, c2 STRING); 1分毎に INSERT を実行する task を作成します。W...
- Snowflake におけるアクセス制御の設定Snowflake について、アクセス制御の設定を記載します。 参考資料: Access Control in Snowflake user と role の関係 [Role Hierarchy and Privilege
- Snowflake におけるセキュリティ関連の機能Snowflake のセキュリティ関連の機能について記載します。 パラメータ管理 Snowflake における設定値はパラメータとよばれます。設定する対象によって分類すると、以下の三種類が存在します。 Account パラメータ。 Account-level でのみ設定可能です。 Session パラメータ。 Account-level および User-level, Session-level ...
- Looker から Snowflake への OAuth 接続Looker から Snowflake の DB を OAuth 認証で参照する設定例を記載します。 参考資料: Looker / feedbackSnowflake / Configuring OAuth for Snowflake connections Snowflake 内の Looker 用 Role/User/Warehouse/DB 作成 Role と
- Snowflake Custom Role による ACCOUNTADMIN からの権限委譲Snowflake アカウントの運用時において、ACCOUNTADMIN は必要な場合以外は利用しないことが推奨されます。SYSADMIN 直下ではなく ACCOUNTADMIN 直下に位置付けた Custom Role を作成することで、ACCOUNTADMIN が持つ権限を委譲する例を記載します。 関連資料: [Access Control Privileges](https://docs.s...