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>' , ... ] ) ]
[ CLIENT_TYPES = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ CLIENT_POLICY = ( <client_type> = ( MINIMUM_VERSION = '<version>' ) [ , ... ] ) ]
[ SECURITY_INTEGRATIONS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_ENROLLMENT = { 'REQUIRED' | 'REQUIRED_PASSWORD_ONLY' } ]
[ MFA_POLICY= ( <list_of_properties> ) ]
[ PAT_POLICY = ( <list_of_properties> ) ]
[ WORKLOAD_IDENTITY_POLICY = ( <list_of_properties> ) ]
[ COMMENT = '<string_literal>' ]
ALTER AUTHENTICATION POLICY [ IF EXISTS ] <name> UNSET
[ AUTHENTICATION_METHODS ]
[ SECURITY_INTEGRATIONS ]
[ MFA_ENROLLMENT ]
[ MFA_POLICY ]
[ CLIENT_TYPES ]
[ CLIENT_POLICY ]
[ SECURITY_INTEGRATIONS ]
[ PAT_POLICY ]
[ WORKLOAD_IDENTITY_POLICY ]
[ COMMENT ]
パラメーター¶
name変更する認証ポリシーの識別子を指定します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
RENAME TO ...既存の認証ポリシーの新しい名前を指定します。
SET ...認証ポリシーに設定する1つ以上のプロパティを指定します(空白、コンマ、または改行で区切り)。
AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )ログイン時に許可する認証方法を変更します。このパラメーターは、以下の値を1つ以上受け付けます。
注意
認証方法で制限すると、ドライバー接続やサードパーティの統合をブロックするなど、意図しない結果を招く可能性があります。
ALLすべての認証方法を許可します。
SAMLSAML2 セキュリティ統合 を許可します。
SAMLがある場合は、 SSO ログインオプションが表示されます。SAMLが存在しない場合は、 SSO ログインオプションは表示されません。PASSWORDユーザー名とパスワードによる認証を許可します。
OAUTH外部 OAuth を許可します。
KEYPAIRキーペア認証 を許可します。
PROGRAMMATIC_ACCESS_TOKENユーザーが プログラムによるアクセストークン で認証できるようにします。
WORKLOAD_IDENTITYユーザーが ワークロードIDフェデレーション で認証できるようにします。
デフォルト:
ALL。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_TYPESproperty 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. Notably, it does not restrict access to the Snowflake REST APIs.このプロパティは、以下の値の1つ以上を受け付けます。
ALLすべてのクライアントの認証を許可します。
SNOWFLAKE_UISnowsight または Classic Console。Snowflakeウェブインターフェイス。
注意
If
SNOWFLAKE_UIis not included in theCLIENT_TYPESlist whileMFA_ENROLLMENTis set toREQUIRED, orMFA_ENROLLMENTis unspecified, MFA enrollment doesn't work。DRIVERSドライバーは、 サポートされた言語 で記述されたアプリケーションからSnowflakeへのアクセスを許可します。例: Go、 JDBC、 .NET ドライバー、および Snowpipe Streaming。
注意
DRIVERSがCLIENT_TYPESリストに含まれていない場合、自動インジェスチョンは機能しなくなる可能性があります。SNOWFLAKE_CLISnowflakeに接続し、開発者中心のワークロードと SQL 運用を管理するための コマンドラインクライアント です。
SNOWSQLSnowflakeに接続するための コマンドラインクライアント。
クライアントが接続を試みても、そのクライアントが有効な
CLIENT_TYPESのいずれでもない場合は、ログインの試みに失敗します。CLIENT_TYPESを設定解除すると、どのクライアントでも接続できます。デフォルト:
ALL。
CLIENT_POLICY = client_type = ( MINIMUM_VERSION = 'version' )Specifies a policy within the authentication policy that sets the minimum version allowed for each specified client type.
If CLIENT_TYPES is empty, contains
ALL, or containsDRIVERS, the CLIENT_POLICY parameter accepts one or more of the following driver clients (and a specific version string). For any driver client that is not specified, the policy implicitly allows any version of that client.If CLIENT_TYPES contains another value, such as
SNOWFLAKE_CLI, and does not also containDRIVERS, specifying any of the following client types results in an error. You can't create (or alter) an authentication policy such that the CLIENT_TYPES and CLIENT_POLICY parameters aren't compatible.client_typeOne or more valid client type values. This is a different set of values from those that the CLIENT_TYPES parameter accepts. Do not use single quotes for these values.
JDBC_DRIVER(Snowflake JDBC Driver)ODBC_DRIVER(Snowflake ODBC Driver)PYTHON_DRIVER(Snowflake Python Driver)JAVASCRIPT_DRIVER(Snowflake Javascript Driver)C_DRIVER(Libsnowflakeclient C Driver)GO_DRIVER(Snowflake Go Driver)PHP_DRIVER(Snowflake PHP PDO Driver)DOTNET_DRIVER(Snowflake .NET Driver)SQL_API(SQL API)SNOWPIPE_STREAMING_CLIENT_SDK(Snowpipe Streaming Client SDK)PY_CORE(Snowflake Python Core Driver)SPROC_PYTHON(Snowflake Python Stored Procedure)PYTHON_SNOWPARK(Snowflake Python Snowpark Driver)SQL_ALCHEMY(Snowflake SQLAlchemy)SNOWPARK(Snowpark)SNOWFLAKE_CLIENT(Snowflake Client SDK)
'version'The minimum accepted version for each specified client type: a sequence of three digits delimited by periods and enclosed by single quotation marks. For example:
'1.0.0'or'3.14.1'. Authentication attempts with lower client versions are blocked when this policy is in effect for an account or a user.
The CLIENT_POLICY property of an authentication policy is a best-effort method to block user logins based on specific client versions. It should not be used as the sole control to establish a security boundary.
SECURITY_INTEGRATIONS = ( 'string_literal' [ , 'string_literal' , ... ] )認証ポリシーが関連付けられているセキュリティ統合を変更します。このパラメーターは、
SAMLまたはOAUTHがAUTHENTICATION_METHODSリストにない場合には効果がありません。SECURITY_INTEGRATIONSリストの値はすべてAUTHENTICATION_METHODSリストの値と互換性のある必要があります。たとえば、SECURITY_INTEGRATIONSに SAML セキュリティ統合が含まれ、AUTHENTICATION_METHODSにOAUTHが含まれる場合は、認証ポリシーを作成できません。ALLすべてのセキュリティ統合を許可します。
デフォルト:
ALL。MFA_ENROLLMENT = { 'REQUIRED' | 'REQUIRED_PASSWORD_ONLY' }Determines whether a user must enroll in multi-factor authentication. If this value is used, then the
CLIENT_TYPESparameter must includeSNOWFLAKE_UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).REQUIREDHuman users who are using password or single-sign on (SSO) authentication must enroll in MFA.
REQUIRED_PASSWORD_ONLYAll human users who are using password authentication must enroll in MFA, regardless of the client they are using. Users using SSO authentication are not required to enroll.
MFA_POLICY= ( list_of_properties )Specifies the policies that affect how multi-factor authentication (MFA) is enforced. Set this to a space-delimited list of one or more of the following properties and values:
ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'OTP' | 'DUO' } [ , { 'PASSKEY' | 'TOTP' | 'OTP' | 'DUO' } ... ] )Specifies the multi-factor authentication (MFA) methods that users can use as a second factor of authentication. You can specify more than one method as a comma-delimited list.
ALLユーザーはパスキー、認証コードアプリ、またはDuoを第2認証要素として使用できます。
PASSKEYユーザーはパスキーを第2認証要素として使用できます。
TOTPユーザーは認証コードアプリを第2認証要素として使用できます。
OTPUser can use a one-time passcode as their second factor of authentication. For more information, see ブレイクグラス アクセス管理者のセットアップ.
DUOユーザーはDuoを第2認証要素として使用できます。
デフォルト:
ALL。ENFORCE_MFA_ON_EXTERNAL_AUTHENTICATION = { 'ALL' | 'NONE' }Specifies whether multi-factor authentication (MFA) is required when users authenticate with single sign-on (SSO). To require MFA, specify
ALL.Default:
NONE
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プログラムのアクセストークンの有効期限に設定できる最大日数を指定します。デフォルトの有効期限(DEFAULT_EXPIRY_IN_DAYS を設定することで指定できます)から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 );
WORKLOAD_IDENTITY_POLICY = ( list_of_properties ):doc:`ワークロードIDフェデレーション </user-guide/workload-identity-federation>`のポリシーを指定します。これを、次のプロパティと値の1つ以上を含むスペース区切りのリストに設定します。
ALLOWED_PROVIDERS = ( { ALL | AWS | AZURE | GCP | OIDC } [ , { AWS | AZURE | GCP | OIDC } ... ] )ワークロードID認証中に認証ポリシーによって許可されるワークロードIDプロバイダーを指定します。このパラメーターを省略すると、すべてのワークロードIDプロバイダーが許可されます。
ALLユーザーは、サポートおよび構成されたワークロードIDプロバイダーで認証できます。
AWSユーザーは AWSIAM ロールまたはユーザーで認証できます。
AZUREユーザーはAzure Entra ID アクセストークンで認証できます。
GCPユーザーはGoogle署名付き ID トークンで認証できます。
OIDCユーザーは構成された OIDC プロバイダーの ID トークンで認証できます。
ALLOWED_AWS_ACCOUNTS = ( 'string_literal' [ , 'string_literal' , ... ] )タイプ
AWSのワークロードID認証中に認証ポリシーによって許可される AWSアカウントIDs のリストを指定します。デフォルトでは、Snowflakeサービスユーザーが
AWS型のWORKLOAD_IDENTITYを持っている場合、ARN は任意の AWS アカウントを参照できます。このパラメーターが設定されている場合、指定された AWSアカウントIDs の ARNs のみが認証することを許可されています。各要素は、AWSアカウントID を表す12桁の文字列である必要があります。
詳細については、`AWSアカウント識別子<https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html>の表示`_をご参照ください。
ALLOWED_AZURE_ISSUERS = ( 'string_literal' [ , 'string_literal' , ... ] )AZURE型のワークロードID認証中に認証ポリシーによって許可されるAzure Entra ID 発行者のリストを指定します。デフォルトでは、Snowflakeサービスユーザーが
AZURE型のWORKLOAD_IDENTITYを持っている場合、発行者はEntra ID テナントである可能性があります。このパラメーターが設定されている場合、指定された発行者のAzureトークンのみが認証することを許可されています。各要素は以下の形式を持つ有効な機関 URL である必要があります。
https://login.microsoftonline.com/tenantId/v2.0
ALLOWED_OIDC_ISSUERS = ( 'string_literal' [ , 'string_literal' , ... ] )OIDC型のワークロードID認証中に認証ポリシーによって許可される OIDC 発行者のリストを指定します。デフォルトでは、Snowflakeサービスユーザーが
OIDC型のWORKLOAD_IDENTITYを持っている場合、発行者は有効なOIDC 発行者である可能性があります。このパラメーターが設定されている場合、指定された OIDC 発行者のトークンのみが認証することを許可されています。各要素は、スキーム、ホスト、さらに任意でポート番号とパスコンポーネントを含み、クエリまたはフラグメントコンポーネントを含まない有効な HTTPSURL である必要があります。URL にはスペースを含めることはできません。また、長さは2048文字を超えてはいけません。
例:
WORKLOAD_IDENTITY_POLICY=( ALLOWED_PROVIDERS = (AWS, AZURE, GCP, OIDC) ALLOWED_AWS_ACCOUNTS = ('123456789012', '210987654321') ALLOWED_AZURE_ISSUERS = ('https://login.microsoftonline.com/8c7832f5-de56-4d9f-ba94-3b2c361abe6b/v2.0', 'https://login.microsoftonline.com/9ebd1ec9-9a78-4429-8f53-5cf870a812d1/v2.0') ALLOWED_OIDC_ISSUERS = ('https://my.custom.oidc.issuer/', 'https://another.custom/oidc/issuer') );
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 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
既存の認証ポリシーを更新し、ポリシーの定義を確認する必要がある場合は、 DESCRIBE AUTHENTICATION POLICY コマンドまたは GET_DDL 関数を実行します。
例¶
認証ポリシーで許可されるクライアントのリストを変更します。
ALTER AUTHENTICATION POLICY restrict_client_types_policy
SET CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL');