ALTER SECURITY INTEGRATION
ALTER SECURITY INTEGRATION (외부 OAuth)
외부 OAuth(External OAuth)용으로 만든 기존 보안 통합의 속성을 수정하는 명령이에요.
출처: 문서
본문
주의: Microsoft Azure Active Directory에 대한 언급은 Microsoft Entra ID를 가리켜요.
다른 유형의 보안 통합(예: Snowflake OAuth)을 수정하는 방법은 ALTER SECURITY INTEGRATION을 참고하세요.
관련 명령: CREATE SECURITY INTEGRATION (외부 OAuth), DROP INTEGRATION, SHOW INTEGRATIONS, DESCRIBE INTEGRATION
구문 (Syntax)
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET
[ TYPE = EXTERNAL_OAUTH ]
[ ENABLED = { TRUE | FALSE } ]
[ EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM } ]
[ EXTERNAL_OAUTH_ISSUER = '<string_literal>' ]
[ EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '<string_literal>' | ('<string_literal>', '<string_literal>' [ , ... ] ) ]
[ EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS' ]
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ] -- For OKTA | PING_FEDERATE | CUSTOM
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' | ('<string_literal>' [ , '<string_literal>' ... ] ) ] -- For Azure
[ EXTERNAL_OAUTH_RSA_PUBLIC_KEY = <public_key1> ]
[ EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = <public_key2> ]
[ EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
[ EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
[ EXTERNAL_OAUTH_AUDIENCE_LIST = ('<string_literal>') ]
[ EXTERNAL_OAUTH_ANY_ROLE_MODE = DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE ]
[ EXTERNAL_OAUTH_SCOPE_DELIMITER = '<string_literal>' ] -- Only for EXTERNAL_OAUTH_TYPE = CUSTOM
[ IS_AGENTIC = { TRUE | FALSE } ]
[ NETWORK_POLICY = '<network_policy>' ]
[ COMMENT = '<string_literal>' ]
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ENABLED |
EXTERNAL_OAUTH_AUDIENCE_LIST |
IS_AGENTIC |
}
[ , ... ]
ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
매개변수 (Parameters)
name — 수정할 통합의 식별자예요. 식별자에 공백이나 특수 문자가 포함되어 있으면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요.
SET ... — 공백, 콤마 또는 줄바꿈으로 구분해 통합에 설정할 하나 이상의 속성/매개변수를 지정해요:
TYPE = EXTERNAL_OAUTH — 외부 OAuth 통합을 Snowflake OAuth 통합과 구분해요.
ENABLED = { TRUE | FALSE } — 통합의 작동을 시작할지 일시 중지할지 지정해요.
TRUE— 통합이 파이프 정의에 지정된 매개변수를 기반으로 실행되도록 허용해요.FALSE— 유지 관리를 위해 통합을 일시 중지해요. Snowflake와 서드파티 서비스 간의 모든 통합이 작동하지 않아요.
EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM } — OAuth 2.0 인가 서버가 Okta, Microsoft Entra ID, Ping Identity PingFederate 또는 사용자 정의 OAuth 2.0 인가 서버임을 지정해요.
EXTERNAL_OAUTH_ISSUER = 'string_literal' — OAuth 2.0 인가 서버를 정의하는 URL을 지정해요.
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = { 'string_literal' | ('string_literal', 'string_literal' [ , ... ] ) } — 액세스 토큰을 Snowflake 사용자 레코드에 매핑하는 데 사용할 수 있는 액세스 토큰 클레임을 지정해요. 클레임의 데이터 타입은 문자열 또는 문자열 목록이어야 해요.
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME | EMAIL_ADDRESS' } — 액세스 토큰을 Snowflake 사용자 레코드에 매핑하는 데 사용할 Snowflake 사용자 레코드 속성을 나타내요.
EXTERNAL_OAUTH_JWS_KEYS_URL = 'string_literal' — 외부 OAuth 액세스 토큰을 검증하기 위해 공개 키나 인증서를 다운로드할 엔드포인트를 지정해요. 이 구문은 EXTERNAL_OAUTH_TYPE = { OKTA | PING_FEDERATE | CUSTOM }인 보안 통합에 적용돼요.
EXTERNAL_OAUTH_JWS_KEYS_URL = { 'string_literal' | ('string_literal' [ , 'string_literal' ... ] ) } — 외부 OAuth 액세스 토큰을 검증하기 위해 공개 키나 인증서를 다운로드할 엔드포인트 또는 엔드포인트 목록을 지정해요. 목록에 지정할 수 있는 최대 URL 수는 3이에요. 이 구문은 EXTERNAL_OAUTH_TYPE = AZURE인 보안 통합에 적용돼요.
EXTERNAL_OAUTH_RSA_PUBLIC_KEY = public_key1 — -----BEGIN PUBLIC KEY-----와 -----END PUBLIC KEY----- 헤더가 없는 Base64 인코딩 RSA 공개 키를 지정해요.
EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = public_key2 — -----BEGIN PUBLIC KEY-----와 -----END PUBLIC KEY----- 헤더가 없는 두 번째 RSA 공개 키를 지정해요. 키 회전에 사용돼요.
EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] ) — 클라이언트가 기본 역할(primary role)로 설정할 수 없는 역할 목록을 지정해요. 이 목록의 역할은 외부 OAuth 인가 서버의 액세스 토큰을 기반으로 Snowflake 세션을 만들 때 사용할 수 없어요. 기본적으로 이 목록에는 ACCOUNTADMIN, ORGADMIN, GLOBALORGADMIN, SECURITYADMIN 역할이 포함돼요. 목록에서 이러한 권한 있는 역할을 제거하려면 ALTER ACCOUNT 명령으로 EXTERNAL_OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST 계정 매개변수를 FALSE로 설정해요.
EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] ) — 클라이언트가 기본 역할로 설정할 수 있는 역할 목록을 지정해요. 이 목록의 역할은 외부 OAuth 인가 서버의 액세스 토큰을 기반으로 Snowflake 세션을 만들 때 사용할 수 있어요.
주의: 이 매개변수는 ACCOUNTADMIN, ORGADMIN, GLOBALORGADMIN, SECURITYADMIN 시스템 역할을 지원해요. 이러한 고권한 역할을 기본 역할로 설정해 Snowflake 세션을 만들 때는 주의해요.
EXTERNAL_OAUTH_AUDIENCE_LIST = ('string_literal') — 고객의 Snowflake 계정 URL(즉 <account_identifier>.snowflakecomputing.com) 사용 위에 액세스 토큰의 대상(audience) 검증에 사용할 수 있는 추가 값을 지정해요. 자세한 내용은 계정 식별자를 참고하세요. Power BI SSO를 사용할 때 이 속성에 대한 자세한 내용은 Power BI SSO 보안 통합을 참고하세요.
현재 외부 OAuth 사용자 정의 클라이언트에 대해서만 여러 대상 URL을 지정할 수 있어요. 각 URL은 단일 따옴표로 묶고 콤마로 구분해야 해요. 예:
external_oauth_audience_list = ('https://example.com/api/v2/', 'https://example.com')
EXTERNAL_OAUTH_ANY_ROLE_MODE = { DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE } — OAuth 클라이언트 또는 사용자가 OAuth 액세스 토큰에 정의되지 않은 역할을 사용할 수 있는지 지정해요. Power BI와 Snowflake 통합의 경우, 이 매개변수가 활성화되어 있어도 PowerBI 사용자는 역할을 전환할 수 없어요.
DISABLE— OAuth 클라이언트나 사용자가 역할을 전환할 수 없게 해요(즉USE ROLE *role*;). 기본값.ENABLE— OAuth 클라이언트나 사용자가 역할을 전환할 수 있게 해요.ENABLE_FOR_PRIVILEGE— USE_ANY_ROLE 권한이 있는 클라이언트나 사용자에 대해서만 역할을 전환할 수 있게 해요. 이 권한은 사용자에게 제공 가능한 하나 이상의 역할에 부여하거나 취소할 수 있어요. 예:
GRANT USE_ANY_ROLE ON INTEGRATION external_oauth_1 TO role1;
REVOKE USE_ANY_ROLE ON INTEGRATION external_oauth_1 FROM role1;
값은 선택적으로 단일 따옴표로 묶을 수 있어요(예: DISABLE 또는 'DISABLE').
EXTERNAL_OAUTH_SCOPE_DELIMITER = 'string_literal' — 인가 토큰의 스코프 구분자를 지정해요. 구분자는 콤마(',')나 공백(' ') 같은 단일 문자일 수 있어요. 기본 콤마 구분자를 재정의하는 데 사용할 수 있는 선택적 보안 통합 속성이에요. 이 속성은 EXTERNAL_OAUTH_TYPE = CUSTOM인 사용자 정의 외부 OAuth 통합에서만 지원돼요. 이 속성을 Snowflake 계정에서 활성화하려면 Snowflake Support에 연락하세요.
IS_AGENTIC = { TRUE | FALSE } — 이 통합을 통해 인증된 세션이 에이전트 세션으로 처리되어야 하는지 지정해요. TRUE로 설정하면 Snowflake는 이 통합을 통해 인증된 모든 세션을 에이전트 세션으로 자동 인식하며, 그 세션에 대해 IS_AGENT_ACTIVATED가 TRUE를 반환해요.
기본값: FALSE
NETWORK_POLICY = 'network_policy' — 기존 네트워크 정책을 지정해요. 이 네트워크 정책은 클라이언트에서 Snowflake로의 네트워크 트래픽을 제어해요. 자세한 내용은 외부 OAuth 네트워크 트래픽 제한을 참고하세요.
COMMENT = 'string_literal' — 통합의 주석을 추가하거나 기존 주석을 덮어써요. 기본값: 값 없음
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] — 태그 이름과 태그 문자열 값을 지정해요. 태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.
UNSET ... — 보안 통합에서 해제할 하나 이상의 속성/매개변수를 지정해 기본값으로 되돌려요:
ENABLEDEXTERNAL_OAUTH_AUDIENCE_LISTIS_AGENTICTAG tag_name [ , tag_name ... ]
사용 메모 (Usage notes)
메타데이터 관련: Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 주의해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고하세요.
예시 (Examples)
다음 예시는 중지된 통합의 작동을 시작해요.
ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;
더 알아보기 (Learn more)
- CREATE SECURITY INTEGRATION (외부 OAuth) — 만들기
- SHOW INTEGRATIONS — 통합 나열
- DESCRIBE INTEGRATION — 통합 설명