💥

[対応必須]2025年4月までにMFA対応しないとSnowflakeが止まります

2024/12/11に公開

はじめに

2025年11月、Snowflakeはパスワードのみの単一要素認証を全廃します。これによりすべてのユーザー(人間ユーザー、サービスユーザー問わず)でパスワードのみのログインが不可能となります。すでにSnowflakeでは2024年10月以降に作成される新規アカウントでMFA(多要素認証)がデフォルト有効化されていますが、2025年にかけてさらなる強化が行われ、最終的にはパスワードオンリーの認証方式が完全撤廃されます。

そのため、Snowflakeへのログイン方式に関して全体的な見直しが必要となります。本記事では、Snowflakeアカウント管理者向けに、2025年に予定されているパスワード認証廃止に備えるための手順と計画を記します。

変更の影響範囲

誰に影響があるのか

  • 人間ユーザー(TYPE=PERSONまたはNULL): 現在パスワードのみでSnowflakeにログインしているユーザーは、認証方式を「パスワード+MFA必須」または、「SAMLやOAuth」とする認証ポリシーの強制適用により、2025年4月以降はMFAなしでのログインが困難になります。2025年8月以降はどのようなカスタム認証ポリシーを持っていてもパスワード単体ログイン不可、最終的には2025年11月に完全廃止となります。

  • サービスユーザー(TYPE=SERVICE/LEGACY_SERVICE):
    ETLやシステム間連携で用いられるシステムユーザーは、TYPE=SERVICEユーザーであれば既にパスワード不要ですが、2025年11月まではLEGACY_SERVICEユーザーが一時的にパスワード利用を許されています。しかし、最終期限である2025年11月以降、LEGACY_SERVICESERVICEへ強制的に移行され、パスワード認証は完全不可となります。

対応スケジュール

  1. 2025年4月

    • デフォルト認証ポリシーが全アカウントで有効化され、パスワードでログインする人間ユーザーはMFA登録が必須となります(MFA未登録者は次回ログイン時にMFA有効化を求められる)。
    • LEGACY_SERVICEユーザーはSnowsightからのアクセスがブロックされます。
  2. 2025年8月

    • すべての人間ユーザーがパスワードでログインする際にMFAが必須となります。既に独自の認証ポリシーを設定していても、この時点でMFA無しパスワード認証は許可されません。
  3. 2025年11月

    • パスワード単独認証は全面的にブロックされます。LEGACY_SERVICEユーザーはSERVICEに強制移行され、パスワード利用不可。
    • この時点でMFAやSAML/OAuth、KeyPair認証へ移行できていないと、該当ユーザーやシステムはSnowflakeにアクセスできなくなります。

対応手順の全体像

以下は、今後行うべき対応の全体像です

1.現状把握
まず、自社のSnowflakeアカウントでパスワードのみ認証を使用しているユーザーを洗い出します。人間ユーザーかサービスユーザーかを識別し、いつまでにどの認証方式へ移行する必要があるかを把握します。

2.対応方法の検討
人間ユーザーの場合、MFAやSAML/OAuthなど代替認証手段への切り替えが必要です。
システムユーザー(ETL、アプリケーション連携など)であれば、TYPE=SERVICE化し、KeyPairやOAuthベースの認証への移行が必要です。

3.ユーザータイプを分ける(TYPE設定)
人間ユーザー(TYPE=PERSONまたはNULL)とシステムユーザー(TYPE=SERVICEまたはLEGACY_SERVICE)を明確に区分します。2024年7月より前に作成したユーザーはTYPE=NULLになっており、人間扱いになります。ETL用ユーザーなど、実態は人間でないIDをSERVICEへ変更し、パスワード依存から脱却する必要があります。

4. システムユーザーのKeyPair認証またはOAuth認証移行
SERVICEユーザーはパスワードなしでログインできません。代わりにKeyPairを用いた認証、あるいはOAuth2.0認証を設定します。特に他システムとのAPI連携やバッチ処理にはKeyPair認証で対応する必要があります。

5. 一部人間ユーザーでのMFA必須化テスト
移行初期段階で、特定の少数ユーザーへMFA必須ポリシーを適用し、問題なく運用できるかを検証します。またはSAMLや外部OAuthでのログインのみ許可する認証ポリシーを一部ユーザーに割り当て、想定通りログインできるかをテストします。

6. 全体展開
テスト後、すべての人間ユーザーに対してMFA必須ポリシーまたはSAML/OAuthのみ認証ポリシーを適用します。2025年8月までに全員がMFA必須、11月までにパスワード依存から完全解放できるよう計画的に進めます。

現状を把握する方法

以下のような手順でパスワードでログインできるユーザーを検出することが出来ます。

GUIでの確認

SnowsightやClassic Consoleの管理画面からACCOUNTADMINロールでログインし、「ユーザーとロール」画面でユーザー一覧を確認します。

  • パスワード認証を行っているユーザーは、has_password属性や、MFA未登録状況が確認できれば対策必須です。
  • TYPE列(PERSON/NULLは人間ユーザー扱い、SERVICELEGACY_SERVICEはシステムユーザー扱い)をチェックします。

SQLクエリでの確認

ACCOUNTADMINロールにてワークシートで以下のクエリを実行することで、パスワードを持つユーザーを列挙できます。

SELECT name, type, disabled, has_password
FROM snowflake.account_usage.users
WHERE deleted_on IS NULL
  AND has_password
  AND (type IS NULL OR type = 'PERSON');

この結果、TYPENULLまたはPERSONhas_password = TRUEのユーザーは、人間ユーザーとしてMFA必須化の対象となります。特にNULLタイプユーザーは、昔作ったETL用アカウントなどでも人間扱いされる点に注意が必要です。

ユーザータイプ変更方法

ETL用など、Snowsightへのログインを必要としないユーザーは、SERVICEユーザーへ変更します。また、その前にSERVICEユーザーに非対応な属性(FIRST_NAMEMIDDLE_NAMELAST_NAMEMUST_CHANGE_PASSWORDなど)を解除する必要があります。

例えば、ETL_USERSERVICE化する場合:

ALTER USER ETL_USER UNSET FIRST_NAME;
ALTER USER ETL_USER UNSET MIDDLE_NAME;
ALTER USER ETL_USER UNSET LAST_NAME;
ALTER USER ETL_USER UNSET MUST_CHANGE_PASSWORD;
ALTER USER ETL_USER UNSET MINS_TO_BYPASS_MFA;

ALTER USER ETL_USER SET TYPE = SERVICE;

これにより、このユーザーはパスワードレスなシステムユーザーとなり、KeyPair認証などへの移行が可能になります。

人間ユーザーへのMFA必須化

人間ユーザーは、2025年以降MFA無しでのパスワードログインが困難になります。DuoやIdP側のMFA、外部OAuth MFAなどでログインする必要があります。

MFAの有効化手順例

  1. MFAポリシーの作成
    AUTHENTICATION POLICY機能で、MFA必須となるポリシーを作成できます。

    例:require_mfa_authentication_policyを作成

    CREATE AUTHENTICATION POLICY require_mfa_authentication_policy
      AUTHENTICATION_METHODS = ('PASSWORD','SAML')
      CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL', 'DRIVERS')
      MFA_AUTHENTICATION_METHODS = ('PASSWORD','SAML')
      MFA_ENROLLMENT = REQUIRED;
    

    これにより、該当ポリシーが適用されたユーザーはログイン時にMFA登録が求められます。

  2. 特定ユーザーへの適用
    まずは一部ユーザーで試験的に適用します。

    ALTER USER test_user SET AUTHENTICATION POLICY require_mfa_authentication_policy;
    

    このユーザーは次回ログイン時にMFA登録が必須となり、DuoでMFAを有効化できます。

  3. 全体適用
    問題がなければ全ユーザー、またはアカウント全体へポリシーを適用します。

    ALTER ACCOUNT SET AUTHENTICATION POLICY require_mfa_authentication_policy;
    

    これでアカウント内の全ユーザーにMFA必須が適用されます。

SAMLや外部OAuthのみ認証とする場合

SAML IdP連携を用いると、ユーザーはIdPでの認証時点でMFAが課され、Snowflake側ではパスワードなしログインとなります。この場合、SnowflakeはあくまでSAMLアサーションを受け取るのみなので、Snowflake側でパスワードを管理する必要はありません。

AUTHENTICATION POLICYAUTHENTICATION_METHODS = ('SAML')などと指定すれば、パスワードログインを無効化し、SAMLログインのみを許可できます。

対応計画の一例

  1. 2024年~2025年2月

    • 現状調査と影響範囲の特定
    • 一部テストユーザーでのMFA必須化テスト
    • NULLタイプのサービス用ユーザーをSERVICEへ移行し、パスワード依存解除を始める
  2. 2025年3月まで

    • 全人間ユーザーにMFA有効化、あるいはSAML/OAuthのみ認証ポリシー適用
    • LEGACY_SERVICEユーザーについてもパスワード依存がある場合はKeyPairまたはOAuthへ移行開始
  3. 2025年7月まで

    • すべての人間ユーザーがMFAで問題なくログイン可能であることを確認
    • パスワードのみログインの完全停止が行われても運用に支障が出ない状態を完成
  4. 2025年10月

    • LEGACY_SERVICEが自動的にSERVICEに移行しパスワード利用不可になる
    • この時点でパスワード依存が残っていると障害発生のリスクが大きい
    • 確実にMFA・KeyPair・OAuth・SAML認証へ移行済みであることを確認

トラブルが起きたときの対応

  • MFAデバイスを紛失した場合
    管理者は一時的にMINS_TO_BYPASS_MFADISABLE_MFAオプションを用いてMFAを無効化し、ユーザーがログイン後、再度MFA有効化を行う。

  • 認証ポリシー誤設定でログイン不可になった
    もしアカウント全体でSAMLのみ許可し、誤ってSAML IdP設定を壊した場合、誰もログインできなくなってしまいます。ACCOUNTADMINは回復用にPASSWORDも許可する特別なポリシーを作成し、特定の管理者アカウントに適用して復旧作業を行えるようにしておくとよいでしょう。(ただし、もしそうなった場合はSnowflakeのサポートに連絡することで復旧してくれます。)

まとめ

  • 2025年11月にパスワード単独認証は全面廃止されます。
  • 段階的強化(2025年4月~8月)に備え、今からMFA導入やSERVICEタイプ設定を開始してください。
  • NULLタイプユーザーはデフォルトで人間扱い。ETLユーザーもSERVICEに移行しKeyPair/OAuth認証になります。
  • 人間ユーザーはMFA必須化またはSAML/OAuthのみの認証をテストし、本番展開してください。
  • 認証ポリシーやMFAなどSnowflake提供機能を活用し、セキュリティ強化に備えてください。

今回の認証強化の機会に、運用中のユーザー管理、認証方式を再点検し、2025年の移行期限までに対応を完了しておくと良いでしょう。

PR

SnowflakeのMFA強制対応で本番システムを止めたくない方へ
「世界で一番Snowflakeに詳しい会社」を目指すRAKUDEJI株式会社がお手伝いします。

弊社はSnowflake専門のデータ基盤構築支援企業として、認証ポリシーの最適化からKeyPair・OAuthへの移行、MFAロールアウト計画までサポートいたします。「いつ、どのような手順で実施すればダウンタイムなくMFA対応可能か?」「組織全体への展開スケジュールや工数は?」といった疑問に対し即日お答えいたします。

Snowflake Data Heroes

Discussion