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 ]
[ CLIENT_TYPES ]
[ CLIENT_POLICY ]
[ SECURITY_INTEGRATIONS ]
[ MFA_ENROLLMENT ]
[ MFA_POLICY ]
[ 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' )特定の各クライアントタイプに対して許可される最小バージョンを設定する認証ポリシー内のポリシーを指定します。
CLIENT_TYPES が空である、
ALLを含む、またはDRIVERSを含む場合、CLIENT_POLICY パラメーターは以下のドライバークライアント(および特定のバージョン文字列)を1つ以上受け入れます。指定されていないドライバークライアントの場合、ポリシーはそのクライアントのすべてのバージョンを暗黙的に許可します。CLIENT_TYPES に、
SNOWFLAKE_CLIなどの別の値が含まれており、DRIVERSは含まれていない場合、次のクライアントタイプのいずれかを指定するとエラーになります。CLIENT_TYPES パラメーターと CLIENT_POLICY パラメーターに互換性がない認証ポリシーを作成(または変更)することはできません。client_type1つ以上の有効なクライアント型の値。これは、CLIENT_TYPES パラメーターが受け入れるものとは別の値のセットです。これらの値には一重引用符を使用しないでください。
JDBC_DRIVER(Snowflake JDBC ドライバー)ODBC_DRIVER(Snowflake ODBC ドライバー)PYTHON_DRIVER(Snowflake Pythonドライバー)JAVASCRIPT_DRIVER(Snowflake Javascriptドライバー)C_DRIVER(Libsnowflakeclient Cドライバー)GO_DRIVER(Snowflake Goドライバー)PHP_DRIVER(Snowflake PHP PDO ドライバー)DOTNET_DRIVER(Snowflake .NETドライバー)SQL_API(SQL API)SNOWPIPE_STREAMING_CLIENT_SDK(Snowpipe Streamingクライアント SDK)PY_CORE(Snowflake Python Coreドライバー)SPROC_PYTHON(Snowflake Pythonストアドプロシージャ)PYTHON_SNOWPARK(Snowflake Python Snowparkドライバー)SQL_ALCHEMY(Snowflake SQLAlchemy)SNOWPARK(Snowpark)SNOWFLAKE_CLIENT(Snowflake Client SDK)
'version'各指定クライアントタイプの最小受け入れバージョン。ピリオドで区切られ、一重引用符で囲まれた3桁のシーケンス。例:
'1.0.0'または'3.14.1'。このポリシーがアカウントまたはユーザーに有効な場合、クライアントバージョンの低い認証試行はブロックされます。
認証ポリシーの CLIENT_POLICY プロパティは、特定のクライアントバージョンに基づいてユーザーログインをブロックするためのベストエフォート方式です。セキュリティ境界を確立するために単独の制御として使用しないでください。
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).REQUIREDパスワードまたはシングルサインオン(SSO)認証を使用する人間ユーザーは、MFA に登録する必要があります。
REQUIRED_PASSWORD_ONLYパスワード認証を使用するすべての人間ユーザーは、使用するクライアントに関係なく、MFA に登録する必要があります。SSO 認証を使用するユーザーは、登録の必要はありません。
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' }ユーザーがシングルサインオン(SSO)で認証する場合に多要素認証(MFA)が必要かどうかを指定します。MFA を必要とするには、
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ユーザーは、プログラムによるアクセストークンを生成・使用するためにネットワークポリシーに従う必要は ありません。
ユーザーがネットワークポリシーの対象である場合、認証時にネットワークポリシーは適用 されません。
REQUIRE_ROLE_RESTRICTION_FOR_SERVICE_USERS = { TRUE | FALSE }If TRUE, when you generate a programmatic access token for a service user, you must restrict the use of that token to a specific role.
If you set this parameter to FALSE, you can generate a programmatic access token for a service user without restricting that token to a specific role.
Changing REQUIRE_ROLE_RESTRICTION_FOR_SERVICE_USERS from FALSE back to TRUE invalidates any programmatic access tokens for service users that were generated without the role restriction.
Default value: TRUE
The following example of the PAT_POLICY clause specifies the following policy:
By default, programmatic access tokens expire in 30 days.
Programmatic access tokens have a maximum expiration time of 365 days.
You can generate a programmatic access token for a user if the user is not subject to a network policy requirement. Any network policy that the user is subject to is still enforced.
When you generate a programmatic access token for a service user, you do not need to restrict to token to use a specific role.
PAT_POLICY=( DEFAULT_EXPIRY_IN_DAYS=30 MAX_EXPIRY_IN_DAYS=365 NETWORK_POLICY_EVALUATION = ENFORCED_NOT_REQUIRED REQUIRE_ROLE_RESTRICTION_FOR_SERVICE_USERS = FALSE );
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. |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
既存の認証ポリシーを更新し、ポリシーの定義を確認する必要がある場合は、 DESCRIBE AUTHENTICATION POLICY コマンドまたは GET_DDL 関数を実行します。
例¶
認証ポリシーで許可されるクライアントのリストを変更します。
ALTER AUTHENTICATION POLICY restrict_client_types_policy
SET CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL');