はじめに
Snowflakeでは多要素認証(MFA)を導入することで、アカウントのセキュリティを大幅に向上させることができます。本記事では、情報漏洩リスクを低減するために、全ユーザーにMFAを強制するための設定方法を解説します。
1. 認証ポリシーの作成
SnowflakeではCREATE AUTHENTICATION POLICY
コマンドを使用して認証ポリシーを作成できます。以下の手順で認証ポリシーを作成し、適用します。
1.1 認証ポリシーを作成
以下は、全ユーザーにMFAを強制する認証ポリシーの例です。
-- 全ユーザー向けのMFA強制認証ポリシーを作成
CREATE OR REPLACE AUTHENTICATION POLICY mfa_enforcement_auth_policy
CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL', 'DRIVERS') -- 許可されたクライアント
AUTHENTICATION_METHODS = ('SAML', 'PASSWORD') -- 認証方法
MFA_AUTHENTICATION_METHODS = ('PASSWORD', 'SAML') -- MFAの認証方法
MFA_ENROLLMENT = 'REQUIRED'; -- MFA登録を必須化
1.2 認証ポリシーをアカウント全体に適用
作成したポリシーをアカウントに適用します。
-- アカウント全体に認証ポリシーを適用
ALTER ACCOUNT SET AUTHENTICATION POLICY mfa_enforcement_auth_policy;
2. パスワードポリシーを設定
パスワードの強度を確保するために、例として以下のようなポリシーを作成します。
-- 強力なパスワード要件を定義
CREATE OR REPLACE PASSWORD POLICY account_password_policy
PASSWORD_MIN_UPPER_CASE_CHARS = 1 -- 大文字を1文字以上
PASSWORD_MAX_RETRIES = 3 -- パスワード試行回数3回
PASSWORD_LOCKOUT_TIME_MINS = 30 -- ロック解除まで30分
PASSWORD_HISTORY = 24; -- 過去24回と同じパスワード禁止
パスワードポリシーをアカウント全体に適用
-- パスワードポリシーをアカウント全体に適用
ALTER ACCOUNT SET PASSWORD_POLICY account_password_policy;
3. セッションポリシーを設定
セッションのタイムアウトを設定し、不必要に長いセッションを防ぎます。
-- セッションのアイドル時間を制限
CREATE OR REPLACE SESSION POLICY account_session_policy
SESSION_IDLE_TIMEOUT_MINS = 240 -- 自動連携のアイドルタイム(分)
SESSION_UI_IDLE_TIMEOUT_MINS = 20; -- Snowsight用のアイドルタイム(分)
セッションポリシーをアカウント全体に適用
-- アカウント全体にセッションポリシーを適用
ALTER ACCOUNT SET SESSION_POLICY account_session_policy;
4. 必要なロールと権限の設定
認証ポリシーを管理するための専用ロールを作成し、権限を付与します。
-- ポリシー管理専用のロールを作成
CREATE ROLE policy_admin;
-- 必要な権限を付与
GRANT USAGE ON DATABASE my_database TO ROLE policy_admin;
GRANT USAGE ON SCHEMA my_database.my_schema TO ROLE policy_admin;
GRANT CREATE AUTHENTICATION POLICY ON SCHEMA my_database.my_schema TO ROLE policy_admin;
GRANT APPLY AUTHENTICATION POLICY ON ACCOUNT TO ROLE policy_admin;
5. モニタリングとレビュー
設定が適切に機能しているか確認するため、SnowflakeのTrust Centerを利用してください。また、定期的にポリシーを見直し、必要に応じて調整することをお勧めします。
まとめ
これらの設定を適用することで、全ユーザーに対してMFAを強制し、安全性を高めることができます。さらに、パスワード強度を確保し、セッションタイムアウトを設定することで、Snowflakeアカウントのセキュリティを大幅に向上させることが可能です。
セキュリティと運用のバランスを考えつつ、適切な設定を行い、情報漏洩リスクを低減しましょう。