ALTER AUTHENTICATION POLICY¶
認証ポリシー のプロパティを変更します。
- こちらもご参照ください。
CREATE AUTHENTICATION POLICY、 DESCRIBE AUTHENTICATION POLICY、 DROP AUTHENTICATION POLICY、 SHOW AUTHENTICATION POLICIES
構文¶
ALTER AUTHENTICATION POLICY <name> RENAME TO <new_name>
ALTER AUTHENTICATION POLICY [ IF EXISTS ] <name> SET
[ AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_ENROLLMENT = { REQUIRED | OPTIONAL } ]
[ MFA_POLICY= ( ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } [ , { 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) ) ]
[ CLIENT_TYPES = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ SECURITY_INTEGRATIONS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ PAT_POLICY = ( {list_of_properties} ) ]
[ COMMENT = '<string_literal>' ]
ALTER AUTHENTICATION POLICY [ IF EXISTS ] <name> UNSET
[ CLIENT_TYPES ]
[ AUTHENTICATION_METHODS ]
[ SECURITY_INTEGRATIONS ]
[ MFA_AUTHENTICATION_METHODS ]
[ MFA_ENROLLMENT ]
[ MFA_POLICY ]
[ PAT_POLICY ]
[ COMMENT ]
パラメーター¶
name
変更する認証ポリシーの識別子を指定します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
RENAME TO ...
既存の認証ポリシーの新しい名前を指定します。
SET ...
認証ポリシーに設定する1つ以上のプロパティを指定します(空白、コンマ、または改行で区切り)。
AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )
ログイン時に許可する認証方法を変更します。このパラメーターは、以下の値を1つ以上受け付けます。
注意
認証方法で制限すると、ドライバー接続やサードパーティの統合をブロックするなど、意図しない結果を招く可能性があります。
ALL
すべての認証方法を許可します。
SAML
SAML2 セキュリティ統合 を許可します。
SAML
がある場合は、 SSO ログインオプションが表示されます。SAML
が存在しない場合は、 SSO ログインオプションは表示されません。PASSWORD
ユーザー名とパスワードによる認証を許可します。
OAUTH
外部 OAuth を許可します。
KEYPAIR
キーペア認証 を許可します。
PROGRAMMATIC_ACCESS_TOKEN
ユーザーが プログラムによるアクセストークン で認証できるようにします。
デフォルト:
ALL
。MFA_AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )
ログイン時に多要素認証(MFA)を実施する認証方法のリストです。このパラメータにリストされていない認証方法では、多要素認証のプロンプトは表示されません。
以下の認証方式は、 MFA をサポートしています。
SAML
PASSWORD
このパラメーターは、以下の値を1つ以上受け付けます。
SAML
SAML2 セキュリティ統合 で認証する際、MFA に登録されている場合、MFA をユーザーに促します。
PASSWORD
ユーザー名とパスワードによる認証時に、 MFA に登録されている場合は、 MFA をユーザーに要求します。
デフォルト:
('PASSWORD', 'SAML')
。MFA_ENROLLMENT = { REQUIRED | OPTIONAL }
ユーザーが多要素認証に登録する必要があるかどうかを変更します。
REQUIRED
ユーザーに MFA への登録を強制します。この値を使用する場合、
CLIENT_TYPES
パラメータには、SNOWFLAKE_UI
を含める必要があります。なぜなら、 Snowsight は、ユーザーが 多要素認証(MFA)に登録できる唯一の場所だからです。OPTIONAL
ユーザーは、 MFA に登録するかどうかを選択できます。
デフォルト:
REQUIRED
。MFA_POLICY= ( ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } [ , { 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) )
ユーザーが第2認証要素として使用できる多要素認証(MFA)方法を指定します。複数のメソッドを指定できます。
ALL
ユーザーはパスキー、認証コードアプリ、またはDuoを第2認証要素として使用できます。
PASSKEY
ユーザーはパスキーを第2認証要素として使用できます。
TOTP
ユーザーは認証コードアプリを第2認証要素として使用できます。
DUO
ユーザーはDuoを第2認証要素として使用できます。
CLIENT_TYPES = ( 'string_literal' [ , 'string_literal' , ... ] )
Snowflakeで認証できるクライアントを変更します。
クライアントが接続を試みても、そのクライアントが以下にリストされた有効な
CLIENT_TYPES
値のいずれでもない場合、ログインは失敗します。MFA_ENROLLMENT
をREQUIRED
に設定した場合、ユーザーが MFA に登録できるようにするには、CLIENT_TYPES
リストにSNOWFLAKE_UI
を含める必要があります。CLIENT_TYPES
リストからSNOWFLAKE_UI
を除外したい場合は、MFA_ENROLLMENT
をOPTIONAL
に設定する必要があります。The
CLIENT_TYPES
property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary。このプロパティは、以下の値の1つ以上を受け付けます。
ALL
すべてのクライアントの認証を許可します。
SNOWFLAKE_UI
Snowsight または Classic Console。Snowflakeウェブインターフェイス。
注意
If
SNOWFLAKE_UI
is not included in theCLIENT_TYPES
list whileMFA_ENROLLMENT
is set toREQUIRED
, orMFA_ENROLLMENT
is unspecified, MFA enrollment doesn't work。DRIVERS
ドライバーは、 サポートされた言語 で記述されたアプリケーションからSnowflakeへのアクセスを許可します。例: Go、 JDBC、 .NET ドライバー、および Snowpipe Streaming。
注意
DRIVERS
がCLIENT_TYPES
リストに含まれていない場合、自動インジェスチョンは機能しなくなる可能性があります。SNOWFLAKE_CLI
Snowflakeに接続し、開発者中心のワークロードと SQL 運用を管理するための コマンドラインクライアント です。
SNOWSQL
Snowflakeに接続するための コマンドラインクライアント。
クライアントが接続を試みても、そのクライアントが有効な
CLIENT_TYPES
のいずれでもない場合は、ログインの試みに失敗します。CLIENT_TYPES
を設定解除すると、どのクライアントでも接続できます。デフォルト:
ALL
。SECURITY_INTEGRATIONS = ( 'string_literal' [ , 'string_literal' , ... ] )
認証ポリシーが関連付けられているセキュリティ統合を変更します。このパラメーターは、
SAML
またはOAUTH
がAUTHENTICATION_METHODS
リストにない場合には効果がありません。SECURITY_INTEGRATIONS
リストの値はすべてAUTHENTICATION_METHODS
リストの値と互換性のある必要があります。たとえば、SECURITY_INTEGRATIONS
に SAML セキュリティ統合が含まれ、AUTHENTICATION_METHODS
にOAUTH
が含まれる場合は、認証ポリシーを作成できません。ALL
すべてのセキュリティ統合を許可します。
デフォルト:
ALL
。
PAT_POLICY = ( list_of_properties )
プログラムによるアクセストークン のポリシーを指定します。以下の1つ以上のプロパティと値をスペースで区切ったリストにこれを設定します。
DEFAULT_EXPIRY_IN_DAYS = number_of_days
プログラムによるアクセストークンのデフォルトの有効期限(日)を指定します。1から最大時間までの値を指定できます(MAX_EXPIRY_IN_DAYS を設定することで指定できます)。
デフォルトの有効期限は15日間です。
詳細については、 デフォルトの有効期限のセット をご参照ください。
MAX_EXPIRY_IN_DAYS = number_of_days
プログラムによるアクセストークンの有効期限に設定できる最大日数を指定します。1から365までの値を指定できます。
デフォルトの最大有効期限は365日です。
注釈
新しい最大有効期限を超える有効期限のプログラムによるアクセストークンが存在する場合、それらのトークンによる認証は失敗します。
例えば、
my_token
という名前のプログラムによるアクセストークンを7日間の有効期限で生成したとします。後ですべてのトークンの最大有効期限を2日に変更すると、トークンの有効期限が新しい最大有効期限を超えるため、my_token
での認証は失敗します。詳細については、 最大有効期限のセット をご参照ください。
NETWORK_POLICY_EVALUATION = { ENFORCED_REQUIRED | ENFORCED_NOT_REQUIRED | NOT_ENFORCED }
プログラムによるアクセストークンに対するネットワークポリシー要件の処理方法を指定します。
デフォルトでは、ユーザーがプログラムによるアクセストークンを生成または使用するには、1つ以上の ネットワークルール を持つ ネットワークポリシー に従う必要があります。
サービスユーザー(TYPE=SERVICE)は、プログラムによるアクセストークンを生成し、使用するためにネットワークポリシーに従う必要があります。
人間ユーザー(TYPE=PERSON)は、プログラムによるアクセストークンを使用するためのネットワークポリシーに従う必要があります。
この動作をオーバーライドするには、このプロパティを以下の値のいずれかに設定します。
ENFORCED_REQUIRED
(デフォルトの動作)ユーザーは、プログラムによるアクセストークンを生成および使用するためのネットワークポリシーに従う必要があります。
ユーザーがネットワークポリシーの対象である場合、認証時にネットワークポリシーが適用されます。
ENFORCED_NOT_REQUIRED
ユーザーは、プログラムによるアクセストークンを生成・使用するためにネットワークポリシーに従う必要は ありません。
ユーザーがネットワークポリシーの対象である場合、認証時にネットワークポリシーが適用されます。
NOT_ENFORCED
ユーザーは、プログラムによるアクセストークンを生成・使用するためにネットワークポリシーに従う必要は ありません。
ユーザーがネットワークポリシーの対象である場合、認証時にネットワークポリシーは適用 されません。
例:
PAT_POLICY=( DEFAULT_EXPIRY_IN_DAYS=30 MAX_EXPIRY_IN_DAYS=365 NETWORK_POLICY_EVALUATION = ENFORCED_NOT_REQUIRED );
COMMENT = 'string_literal'
認証ポリシーのコメントを変更します。
UNSET ...
認証ポリシーの設定を解除するプロパティを指定します。これにより、設定はデフォルトにリセットされます。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
---|---|---|
OWNERSHIP |
認証ポリシー |
Only the SECURITYADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. |
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
既存の認証ポリシーを更新し、ポリシーの定義を確認する必要がある場合は、 DESCRIBE AUTHENTICATION POLICY コマンドまたは GET_DDL 関数を実行します。
例¶
認証ポリシーで許可されるクライアントのリストを変更します。
ALTER AUTHENTICATION POLICY restrict_client_types_policy SET CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL');