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 ...인증 정책을 위해 설정할 하나 이상의 속성을 지정합니다(공백, 쉼표 또는 줄 바꿈으로 구분됨).
AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )로그인 중에 허용되는 인증 방법을 변경합니다. 이 매개 변수는 다음 값 중 하나 이상을 허용합니다.
조심
인증 방법으로 제한하면 드라이버 연결 또는 서드 파티 통합 차단 등 의도하지 않은 결과가 발생할 수 있습니다.
ALL모든 인증 방법을 허용합니다.
SAMLSAML2 보안 통합 을 허용합니다.
SAML이 있으면 SSO 로그인 옵션이 나타납니다.SAML이 없으면 SSO 로그인 옵션이 나타나지 않습니다.PASSWORD사용자가 사용자 이름과 비밀번호를 사용하여 인증할 수 있습니다.
OAUTHExternal 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.이 속성은 다음 값 중 하나 이상을 허용합니다.
ALL모든 클라이언트의 인증을 허용합니다.
SNOWFLAKE_UISnowflake 웹 인터페이스인 Snowsight 또는 Classic Console
조심
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_CLI명령줄 클라이언트 를 통해 Snowflake에 연결하고 개발자 중심 워크로드 및 SQL 작업을 관리할 수 있습니다.
SNOWSQLSnowflake에 연결하기 위한 명령줄 클라이언트 입니다.
클라이언트가 연결을 시도하는데 클라이언트가 유효한
CLIENT_TYPES중 하나가 아닌 경우 로그인 시도가 실패합니다.CLIENT_TYPES가 설정 해제된 경우 모든 클라이언트가 연결할 수 있습니다.기본값:
ALL.
CLIENT_POLICY = client_type = ( MINIMUM_VERSION = 'version' )지정된 각 클라이언트 유형에 허용되는 최소 버전을 설정하는 정책을 인증 정책 내에 지정합니다.
CLIENT_TYPES가 비어 있거나, ``ALL``을 포함하거나 ``DRIVERS``를 포함하는 경우 CLIENT_POLICY 매개 변수는 다음 드라이버 클라이언트 중 하나 이상(및 특정 버전 문자열)을 허용합니다. 지정되지 않은 드라이버 클라이언트의 경우 정책은 해당 클라이언트의 모든 버전을 암시적으로 허용합니다.
CLIENT_TYPES에
SNOWFLAKE_CLI등의 다른 값이 포함되어 있으며 ``DRIVERS``는 포함되지 않은 경우 다음 클라이언트 유형 중 하나를 지정하면 오류가 발생합니다. CLIENT_TYPES 및 CLIENT_POLICY 매개 변수가 호환되지 않도록 인증 정책을 만들거나 변경할 수 없습니다.client_type하나 이상의 유효한 클라이언트 유형 값입니다. CLIENT_TYPES 매개 변수가 허용하는 값과는 다른 값 세트입니다. 이러한 값에는 작은따옴표를 사용하지 마세요.
:code:`JDBC_DRIVER`(Snowflake JDBC 드라이버)
:code:`ODBC_DRIVER`(Snowflake ODBC 드라이버)
:code:`PYTHON_DRIVER`(Snowflake Python 드라이버)
:code:`JAVASCRIPT_DRIVER`(Snowflake Javascript 드라이버)
:code:`C_DRIVER`(Libsnowflakeclient C 드라이버)
:code:`GO_DRIVER`(Snowflake Go 드라이버)
:code:`PHP_DRIVER`(Snowflake PHP PDO 드라이버)
:code:`DOTNET_DRIVER`(Snowflake .NET 드라이버)
:code:`SQL_API`(SQL API)
:code:`SNOWPIPE_STREAMING_CLIENT_SDK`(Snowpipe Streaming 클라이언트 SDK)
:code:`PY_CORE`(Snowflake Python 코어 드라이버)
:code:`SPROC_PYTHON`(Snowflake Python 저장 프로시저)
:code:`PYTHON_SNOWPARK`(Snowflake Python Snowpark 드라이버)
:code:`SQL_ALCHEMY`(Snowflake SQLAlchemy)
:code:`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(Single Sign-On) 인증을 사용하는 사용자는 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를 두 번째 인증 요소로 사용할 수 있습니다.
PASSKEY사용자는 패스키를 두 번째 인증 요소로 사용할 수 있습니다.
TOTP사용자는 인증자 앱을 두 번째 인증 요소로 사용할 수 있습니다.
OTPUser can use a one-time passcode as their second factor of authentication. For more information, see break glass 액세스를 위한 관리자 설정하기.
DUO사용자는 Duo를 두 번째 인증 요소로 사용할 수 있습니다.
기본값:
ALL.ENFORCE_MFA_ON_EXTERNAL_AUTHENTICATION = { 'ALL' | 'NONE' }사용자가 SSO(Single Sign-On)로 인증할 때 MFA(다단계 인증)가 필요한지 여부를 지정합니다. MFA를 요구하려면 :code:`ALL`을 지정합니다.
Default:
NONE
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프로그래밍 방식 액세스 토큰의 만료 시간에 대해 설정할 수 있는 최대 일수를 지정합니다. DEFAULT_EXPIRY_IN_DAYS를 설정하여 기본 만료 시간에서 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 );
WORKLOAD_IDENTITY_POLICY = ( list_of_properties )워크로드 ID 페더레이션 에 대한 정책을 지정합니다. 이 정책을 다음 속성 및 값 중 하나 이상을 포함하는 공백으로 구분된 목록으로 설정합니다.
ALLOWED_PROVIDERS = ( { ALL | AWS | AZURE | GCP | OIDC } [ , { AWS | AZURE | GCP | OIDC } ... ] )워크로드 ID 인증 중에 인증 정책에서 허용하는 워크로드 ID 공급자를 지정합니다. 이 매개 변수를 생략하면 모든 워크로드 ID 공급자가 허용됩니다.
ALL사용자를 지원되고 구성된 워크로드 ID 공급자로 인증할 수 있습니다.
AWS사용자는 AWS IAM 역할 또는 사용자로 인증할 수 있습니다.
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 발급자의 토큰만 인증에 사용할 수 있습니다.각 요소는 스키마, 호스트, 그리고 선택적으로 포트 번호와 경로 구성 요소를 포함하지만 쿼리 또는 조각 구성 요소는 포함하지 않는 유효한 HTTPS URL이어야 합니다. URL은 공백을 포함할 수 없으며 길이는 2,048자를 초과할 수 없습니다.
예:
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');