CREATE AUTHENTICATION POLICY¶
새 인증 정책 을 현재 또는 지정된 스키마에 만들거나 기존 인증 정책을 대체합니다. 인증 정책을 사용하여 계정 또는 사용자에 대한 인증 제어 및 보안 요구 사항을 정의할 수 있습니다.
이 명령은 다음 변형을 지원합니다.
CREATE OR ALTER 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>' ]
베리언트 구문¶
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>' ]
필수 매개 변수¶
선택적 매개 변수¶
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_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.이 매개 변수는 다음 값 중 하나 이상을 허용합니다.
ALL
모든 클라이언트의 인증을 허용합니다.
SNOWFLAKE_UI
Snowflake 웹 인터페이스인 Snowsight 또는 Classic Console
조심
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에 연결하기 위한 명령줄 클라이언트 입니다.
기본값:
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 )
프로그래밍 방식 액세스 토큰 에 대한 정책을 지정합니다. 다음 속성 및 값 중 하나 이상의 공백으로 구분된 목록으로 설정합니다.
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 );
COMMENT = 'string_literal'
정책에 대한 설명을 지정합니다.
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
CREATE AUTHENTICATION POLICY |
스키마 |
|
OWNERSHIP |
인증 정책 |
|
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
인증 정책을 생성한 후 Snowflake가 정책을 적용하기 전에 ALTER ACCOUNT 또는 ALTER USER 명령을 사용하여 계정이나 사용자에 이를 설정해야 합니다.
기존 인증 정책을 업데이트하고 정책의 정의를 확인해야 할 경우 DESCRIBE AUTHENTICATION POLICY 명령 또는 GET_DDL 함수를 실행하십시오.
OR REPLACE
및IF 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';
다단계 인증을 설정하고 클라이언트 목록을 업데이트합니다.
CREATE OR ALTER AUTHENTICATION POLICY restrict_client_types_policy
MFA_ENROLLMENT = REQUIRED
MFA_AUTHENTICATION_METHODS = ('PASSWORD', 'SAML')
CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWFLAKE_CLI');
더 많은 예는 인증 정책 섹션을 참조하십시오.