ALTER AUTHENTICATION POLICY

認証ポリシー のプロパティを変更します。

こちらもご参照ください。

CREATE AUTHENTICATION POLICYDESCRIBE AUTHENTICATION POLICYDROP AUTHENTICATION POLICYSHOW 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 ]
Copy

パラメーター

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

ユーザーが プログラムによるアクセストークン で認証できるようにします。

WORKLOAD_IDENTITY

ユーザーが ワークロードIDフェデレーション で認証できるようにします。

デフォルト: ALL

CLIENT_TYPES = ( 'string_literal' [ , 'string_literal' , ... ] )

Snowflakeで認証できるクライアントを変更します。

クライアントが接続を試みても、そのクライアントが以下にリストされた有効な CLIENT_TYPES 値のいずれでもない場合、ログインは失敗します。

MFA_ENROLLMENTREQUIRED に設定した場合、ユーザーが MFA に登録できるようにするには、 CLIENT_TYPES リストに SNOWFLAKE_UI を含める必要があります。

CLIENT_TYPES リストから SNOWFLAKE_UI を除外したい場合は、 MFA_ENROLLMENTOPTIONAL に設定する必要があります。

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. Notably, it does not restrict access to the Snowflake REST APIs.

このプロパティは、以下の値の1つ以上を受け付けます。

ALL

すべてのクライアントの認証を許可します。

SNOWFLAKE_UI

Snowsight または Classic Console。Snowflakeウェブインターフェイス。

注意

If SNOWFLAKE_UI is not included in the CLIENT_TYPES list while MFA_ENROLLMENT is set to REQUIRED, or MFA_ENROLLMENT is unspecified, MFA enrollment doesn't work。

DRIVERS

ドライバーは、 サポートされた言語 で記述されたアプリケーションからSnowflakeへのアクセスを許可します。例: GoJDBC.NET ドライバー、および Snowpipe Streaming

注意

DRIVERSCLIENT_TYPES リストに含まれていない場合、自動インジェスチョンは機能しなくなる可能性があります。

SNOWFLAKE_CLI

Snowflakeに接続し、開発者中心のワークロードと SQL 運用を管理するための コマンドラインクライアント です。

SNOWSQL

Snowflakeに接続するための コマンドラインクライアント

クライアントが接続を試みても、そのクライアントが有効な 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 contains DRIVERS, 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 contain DRIVERS, 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_type

One 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 または OAUTHAUTHENTICATION_METHODS リストにない場合には効果がありません。

SECURITY_INTEGRATIONS リストの値はすべて AUTHENTICATION_METHODS リストの値と互換性のある必要があります。たとえば、 SECURITY_INTEGRATIONS に SAML セキュリティ統合が含まれ、 AUTHENTICATION_METHODSOAUTH が含まれる場合は、認証ポリシーを作成できません。

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_TYPES parameter must include SNOWFLAKE_UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).

REQUIRED

Human users who are using password or single-sign on (SSO) authentication must enroll in MFA.

REQUIRED_PASSWORD_ONLY

All 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認証要素として使用できます。

OTP

User 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
);
Copy
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')
);
Copy
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');
Copy