CREATE AUTHENTICATION POLICY

인증 정책 을 현재 또는 지정된 스키마에 만들거나 기존 인증 정책을 대체합니다. 인증 정책을 사용하여 계정 또는 사용자에 대한 인증 제어 및 보안 요구 사항을 정의할 수 있습니다.

이 명령은 다음 변형을 지원합니다.

참고 항목:

ALTER AUTHENTICATION POLICY, DESCRIBE AUTHENTICATION POLICY, DROP AUTHENTICATION POLICY, SHOW AUTHENTICATION POLICIES, CREATE OR ALTER <오브젝트>

구문

CREATE [ OR REPLACE ] AUTHENTICATION POLICY [ IF NOT EXISTS ] <name>
  [ 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>' ]
Copy

베리언트 구문

CREATE OR ALTER AUTHENTICATION POLICY

인증 정책이 없는 경우 새 인증 정책을 만들거나 기존 인증 정책을 문에 정의된 인증 정책으로 변경합니다. CREATE OR ALTER AUTHENTICATION POLICY 문은 CREATE AUTHENTICATION POLICY 문의 구문 규칙을 따르며 ALTER AUTHENTICATION POLICY 문과 제한 사항이 동일합니다.

CREATE OR ALTER AUTHENTICATION POLICY <name>
  [ 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' } [ , { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) ) ]
  [ CLIENT_TYPES = ( '<string_literal>' [ , '<string_literal>' , ...  ] ) ]
  [ SECURITY_INTEGRATIONS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
  [ PAT_POLICY = ( {list_of_properties} ) ]
  [ COMMENT = '<string_literal>' ]
Copy

필수 매개 변수

name

인증 정책의 식별자 를 지정합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

선택적 매개 변수

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

조심

인증 방법으로 제한하면 드라이버 연결 또는 서드 파티 통합 차단 등 의도하지 않은 결과가 발생할 수 있습니다.

로그인 중에 허용되는 인증 방법의 목록입니다. 이 매개 변수는 다음 값 중 하나 이상을 허용합니다.

ALL

모든 인증 방법을 허용합니다.

SAML

SAML2 보안 통합 을 허용합니다. SAML 이 있으면 SSO 로그인 옵션이 나타납니다. SAML 이 없으면 SSO 로그인 옵션이 나타나지 않습니다.

PASSWORD

사용자가 사용자 이름과 비밀번호를 사용하여 인증할 수 있습니다.

OAUTH

External OAuth 를 허용합니다.

KEYPAIR

키 페어 인증 을 허용합니다.

PROGRAMMATIC_ACCESS_TOKEN

사용자가 프로그래밍 방식 액세스 토큰 으로 인증할 수 있도록 허용합니다.

기본값: ALL.

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

로그인 중에 다단계 인증(MFA)을 적용하는 인증 방법 목록입니다. 이 매개 변수에 나열되지 않은 인증 방법에서는 다단계 인증을 요구하지 않습니다.

다음 인증 방법은 MFA를 지원합니다.

  • SAML

  • PASSWORD

이 매개 변수는 다음 값 중 하나 이상을 허용합니다.

SAML

사용자가 MFA에 등록되어 있는 경우 SAML2 보안 통합 으로 인증할 때 사용자에게 MFA로 인증하라는 메시지가 표시됩니다.

PASSWORD

사용자가 MFA에 등록되어 있는 경우 사용자 이름과 비밀번호로 인증할 때 사용자에게 MFA로 인증하라는 메시지가 표시됩니다.

기본값: ('PASSWORD').

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' } ... ] ) )

사용자가 인증의 두 번째 요소로 사용할 수 있는 다단계 인증(MFA) 방법을 지정합니다. 둘 이상의 방법을 지정할 수 있습니다.

ALL

사용자는 패스키, 인증자 앱 또는 Duo를 두 번째 인증 요소로 사용할 수 있습니다.

PASSKEY

사용자는 패스키를 두 번째 인증 요소로 사용할 수 있습니다.

TOTP

사용자는 인증자 앱을 두 번째 인증 요소로 사용할 수 있습니다.

DUO

사용자는 Duo를 두 번째 인증 요소로 사용할 수 있습니다.

기본값: 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.

이 매개 변수는 다음 값 중 하나 이상을 허용합니다.

ALL

모든 클라이언트의 인증을 허용합니다.

SNOWFLAKE_UI

Snowflake 웹 인터페이스인 Snowsight 또는 Classic Console

조심

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에 액세스할 수 있습니다. 예를 들어 Go, JDBC, .NET 드라이버 및 Snowpipe Streaming 입니다.

조심

DRIVERSCLIENT_TYPES 목록에 포함되어 있지 않으면 자동 수집이 작동을 멈출 수 있습니다.

SNOWFLAKE_CLI

명령줄 클라이언트 를 통해 Snowflake에 연결하고 개발자 중심 워크로드 및 SQL 작업을 관리할 수 있습니다.

SNOWSQL

Snowflake에 연결하기 위한 명령줄 클라이언트 입니다.

기본값: ALL.

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

인증 정책과 연결된 보안 통합 목록입니다. SAML 또는 OAUTHAUTHENTICATION_METHODS 목록에 없으면 이 매개 변수는 아무런 효과도 없습니다.

SECURITY_INTEGRATIONS 목록의 모든 값은 AUTHENTICATION_METHODS 목록의 값과 호환되어야 합니다. 예를 들어, SECURITY_INTEGRATIONS 에 SAML 보안 통합이 포함되고 AUTHENTICATION_METHODSOAUTH 가 포함된 경우 인증 정책을 만들 수 없습니다.

ALL

모든 보안 통합을 허용합니다.

기본값: ALL.

PAT_POLICY = ( list_of_properties )

프로그래밍 방식 액세스 토큰 에 대한 정책을 지정합니다. 다음 속성 및 값 중 하나 이상의 공백으로 구분된 목록으로 설정합니다.

DEFAULT_EXPIRY_IN_DAYS = number_of_days

프로그래밍 방식 액세스 토큰의 기본 만료 시간(일)을 지정합니다. (MAX_EXPIRY_IN_DAYS 를 설정하여 지정할 수 있는) 1부터 최대 시간까지 값을 지정할 수 있습니다.

기본 만료 시간은 15일입니다.

자세한 내용은 기본 만료 시간 설정하기 섹션을 참조하십시오.

MAX_EXPIRY_IN_DAYS = number_of_days

프로그래밍 방식 액세스 토큰의 만료 시간으로 설정할 수 있는 최대 일수를 지정합니다. 1에서 365 사이의 값을 지정할 수 있습니다.

기본 최대 만료 시간은 365일입니다.

참고

만료 시간이 새로운 최대 만료 시간을 초과하는 기존 프로그래밍 방식 액세스 토큰이 있는 경우 해당 토큰으로 인증하려는 시도는 실패합니다.

예를 들어, 만료 시간이 7일인 my_token 이라는 프로그래밍 방식 액세스 토큰을 생성한다고 가정해 보겠습니다. 나중에 모든 토큰의 최대 만료 시간을 2일로 변경하는 경우 토큰의 만료 시간이 새 최대 만료 시간을 초과하므로 my_token 으로 인증하는 데 실패합니다.

자세한 내용은 최대 만료 시간 설정하기 섹션을 참조하십시오.

NETWORK_POLICY_EVALUATION = { ENFORCED_REQUIRED | ENFORCED_NOT_REQUIRED | NOT_ENFORCED }

프로그래밍 방식 액세스 토큰에 대한 네트워크 정책 요구 사항을 처리하는 방법을 지정합니다.

기본적으로 사용자는 하나 이상의 네트워크 규칙 이 있는 네트워크 정책 에 따라 프로그래밍 방식 액세스 토큰을 생성하거나 사용해야 합니다.

  • 서비스 사용자(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
COMMENT = 'string_literal'

정책에 대한 설명을 지정합니다.

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE AUTHENTICATION POLICY

스키마

OWNERSHIP

인증 정책

  • 스키마에 이미 존재하는 오브젝트와 동일한 이름을 가진 임시 오브젝트를 생성하려면 오브젝트에 대한 OWNERSHIP 권한을 역할에 부여하거나 상속해야 합니다.

  • 기존 인증 정책에 대해 CREATE OR ALTER AUTHENTICATION POLICY 문을 실행하는 데 필요합니다.

스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 인증 정책을 생성한 후 Snowflake가 정책을 적용하기 전에 ALTER ACCOUNT 또는 ALTER USER 명령을 사용하여 계정이나 사용자에 이를 설정해야 합니다.

  • 기존 인증 정책을 업데이트하고 정책의 정의를 확인해야 할 경우 DESCRIBE AUTHENTICATION POLICY 명령 또는 GET_DDL 함수를 실행하십시오.

  • OR REPLACEIF NOT EXISTS 절은 상호 배타적입니다. 두 문자를 같은 문에 함께 사용할 수 없습니다.

  • CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

Snowsight 또는 Classic Console 을 통해서만 액세스를 허용하는 restrict_client_types_policy 라는 인증 정책을 만듭니다.

CREATE AUTHENTICATION POLICY restrict_client_types_policy
  CLIENT_TYPES = ('SNOWFLAKE_UI')
  COMMENT = 'Auth policy that only allows access through the web interface';
Copy

다단계 인증을 설정하고 클라이언트 목록을 업데이트합니다.

CREATE OR ALTER AUTHENTICATION POLICY restrict_client_types_policy
  MFA_ENROLLMENT = REQUIRED
  MFA_AUTHENTICATION_METHODS = ('PASSWORD', 'SAML')
  CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWFLAKE_CLI');
Copy

더 많은 예는 인증 정책 섹션을 참조하십시오.