ALTER SECURITY INTEGRATION
ALTER SECURITY INTEGRATION (OIDC)
기존 OIDC 보안 통합의 속성을 수정하는 명령이에요.
출처: 문서
본문
Preview Feature — 공개. 모든 계정에서 사용할 수 있어요.
다른 유형의 보안 통합(예: SAML2)을 수정하는 방법은 ALTER SECURITY INTEGRATION을 참고하세요. 개념 정보는 OpenID Connect (OIDC) 페더레이션 인증 구성을 참고하세요.
관련 명령: CREATE SECURITY INTEGRATION (OIDC), DROP INTEGRATION, SHOW INTEGRATIONS, DESCRIBE INTEGRATION
구문 (Syntax)
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET
[ ENABLED = { TRUE | FALSE } ]
[ OIDC_CLIENT_SECRET = '<string_literal>' ]
[ OIDC_SCOPES = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ OIDC_USERINFO_ENDPOINT = '<string_literal>' ]
[ OIDC_ENABLE_SSO_LOGIN_PAGE = { TRUE | FALSE } ]
[ OIDC_LOGIN_PAGE_LABEL = '<string_literal>' ]
[ OIDC_TOKEN_USER_MAPPING_CLAIM = '<string_literal>' ]
[ OIDC_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME' | 'EMAIL_ADDRESS' } ]
[ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ OIDC_ALLOWED_GOOGLE_HOSTED_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ OIDC_ALLOWED_MSFT_TENANTS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ALLOWED_EMAIL_PATTERNS |
ALLOWED_USER_DOMAINS |
COMMENT |
ENABLED |
OIDC_ENABLE_SSO_LOGIN_PAGE |
OIDC_LOGIN_PAGE_LABEL |
OIDC_SCOPES |
OIDC_USERINFO_ENDPOINT |
[ , ... ]
}
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 ... — 공백, 콤마 또는 줄바꿈으로 구분해 통합에 설정할 하나 이상의 속성이나 매개변수를 지정해요:
ENABLED = { TRUE | FALSE } — 통합의 작동을 시작할지 일시 중지할지 지정해요.
TRUE— 통합이 통합 정의에 지정된 매개변수를 기반으로 실행되도록 허용해요.FALSE— 유지 관리를 위해 통합을 일시 중지해요. Snowflake와 서드파티 서비스 간의 모든 통합이 작동하지 않아요.
OIDC_CLIENT_SECRET = 'string_literal' — IdP에 등록된 OAuth 2.0 클라이언트 비밀을 업데이트해요. 사용자 정의 프로바이더 전용.
OIDC_SCOPES = ( 'string_literal' [ , 'string_literal' , ... ] ) — 요청할 OAuth 스코프예요. openid를 포함해야 해요. 사용자 정의 프로바이더 전용.
OIDC_USERINFO_ENDPOINT = 'string_literal' — IdP UserInfo 엔드포인트 URL이에요. 향후 호환성을 위해 예약되어 있으며 로그인 시에는 사용되지 않아요. 사용자 해석 동작에 대해서는 CREATE SECURITY INTEGRATION (OIDC)의 OIDC_USERINFO_ENDPOINT를 참고하세요. DESC INTEGRATION은 설정되거나 발견된 경우에만 반환해요. 사용자 정의 프로바이더 전용.
OIDC_ENABLE_SSO_LOGIN_PAGE = { TRUE | FALSE } — 이 통합을 Snowflake 로그인 페이지에 표시할지 여부예요. FALSE이면 통합이 존재하고 활성화되지만 Sign in with X 버튼으로 렌더링되지 않아요.
OIDC_LOGIN_PAGE_LABEL = 'string_literal' — 이 IdP에 대해 Snowflake 로그인 페이지에 표시되는 라벨이에요. 사용자 정의 프로바이더 전용. 관리형 프로바이더(GOOGLE, MICROSOFT)의 경우 Snowflake가 공식 프로바이더 로고와 기본 라벨을 표시해요. 관리형 통합에서 이 매개변수를 설정하거나 해제하면 실패해요.
OIDC_TOKEN_USER_MAPPING_CLAIM = 'string_literal' — Snowflake 사용자를 식별하는 데 사용되는 ID 토큰 클레임이에요. 단일 클레임 이름(예: 'email')이나 클레임 이름의 순서 있는 목록(예: ('email', 'sub'))을 지정해요. 목록을 지정하면 Snowflake는 나열된 클레임에서 비어 있지 않은 모든 값을 순서대로 추출한 다음, 각 값으로 OIDC_SNOWFLAKE_USER_MAPPING_ATTRIBUTE에 대해 사용자 검색을 시도해 첫 번째로 성공한 일치를 사용해요. 클레임이 ID 토큰에 없으면 Snowflake는 건너뛰고 다음을 시도해요. 문자열 값 클레임만 지원돼요. 사용자 정의 프로바이더 전용.
OIDC_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME' | 'EMAIL_ADDRESS' } — 토큰 클레임 값과 일치시킬 Snowflake 사용자 속성이에요.
ALLOWED_USER_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] ) — 이메일 도메인이 지정된 도메인 중 하나와 정확히 일치하는 사용자로 인증을 제한해요. 일치는 대소문자를 구분하지 않으며 정확해요: mycompany.com은 [email protected]과 일치하지만 [email protected]과는 일치하지 않아요. 이 매개변수를 사용해 여러 IdP를 사용하는 구성에서 사용자를 IdP와 연결할 수 있어요. 자세한 내용은 페더레이션 인증에 여러 ID 공급자 사용을 참고하세요.
ALLOWED_EMAIL_PATTERNS = ( 'string_literal' [ , 'string_literal' , ... ] ) — 이메일이 지정된 regex 패턴 중 하나와 일치하는 사용자로 인증을 제한해요. ENABLE_IDENTIFIER_FIRST_LOGIN 계정 매개변수가 활성화되어 있어야 해요. 이 매개변수를 사용해 여러 IdP를 사용하는 구성에서 사용자를 IdP와 연결할 수 있어요. 자세한 내용은 페더레이션 인증에 여러 ID 공급자 사용을 참고하세요.
OIDC_ALLOWED_GOOGLE_HOSTED_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] ) — 이 통합을 통해 로그인할 수 있는 Google Workspace 호스팅 도메인으로, ID 토큰의 hd 클레임과 대조해 확인해요. 이 옵션을 설정하면 기존 목록을 교체하므로 유지할 모든 항목을 포함해야 해요. OIDC_PROVIDER='GOOGLE' 전용. 항목 형식은 CREATE SECURITY INTEGRATION (OIDC)을 참고하세요.
OIDC_ALLOWED_MSFT_TENANTS = ( 'string_literal' [ , 'string_literal' , ... ] ) — 이 통합을 통해 로그인할 수 있는 Microsoft Entra ID 테넌트로, ID 토큰의 tid 클레임과 대조해 확인해요. 이 옵션을 설정하면 기존 목록을 교체하므로 유지할 모든 항목을 포함해야 해요. OIDC_PROVIDER='MICROSOFT' 전용. 항목 형식은 CREATE SECURITY INTEGRATION (OIDC)을 참고하세요.
COMMENT = 'string_literal' — 통합의 주석을 추가하거나 기존 주석을 덮어써요. 기본값: 값 없음
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] — 태그 이름과 태그 문자열 값을 지정해요. 태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.
UNSET ... — 보안 통합에서 해제할 하나 이상의 속성이나 매개변수를 지정해 기본값으로 되돌려요:
ALLOWED_EMAIL_PATTERNSALLOWED_USER_DOMAINSCOMMENTENABLEDOIDC_ENABLE_SSO_LOGIN_PAGEOIDC_LOGIN_PAGE_LABELOIDC_SCOPESOIDC_USERINFO_ENDPOINTTAG tag_name [ , tag_name ... ]
사용 메모 (Usage notes)
- 다음 속성은 ALTER로 수정할 수 없어요. 어느 것을 변경하려면 통합을 삭제하고 다시 만들어야 해요:
OIDC_PROVIDER,OIDC_ISSUER,OIDC_CLIENT_ID,OIDC_AUTHORIZATION_ENDPOINT,OIDC_TOKEN_ENDPOINT,OIDC_JWKS_URI. 읽기 전용인OIDC_REDIRECT_URIS속성은 Snowflake가 생성하며 설정할 수 없어요. - IdP에서 실제 클라이언트 ID를 검색하기 전에 자리 표시자 자격 증명으로 통합을 만들고 실제 클라이언트 ID가 자리 표시자와 일치하지 않으면, 통합을 삭제하고 실제 값으로 다시 만들어야 해요.
- 활성 OIDC 통합을 삭제하면 즉시 모든 사용자가 해당 IdP로 인증할 수 없게 돼요. 인증 정책이
SECURITY_INTEGRATIONS목록에서 통합을 명시적으로 참조하면 정책이 업데이트될 때까지 삭제가 거부돼요. DROP INTEGRATION을 참고하세요. - DESC INTEGRATION이 반환하는 OIDC 속성 목록은 CREATE SECURITY INTEGRATION (OIDC)을 참고하세요.
- 관리형 프로바이더(
OIDC_PROVIDER='GOOGLE'또는OIDC_PROVIDER='MICROSOFT')의 경우OIDC_LOGIN_PAGE_LABEL,OIDC_CLIENT_SECRET,OIDC_SCOPES,OIDC_USERINFO_ENDPOINT또는 사용자 매핑 매개변수(OIDC_TOKEN_USER_MAPPING_CLAIM,OIDC_SNOWFLAKE_USER_MAPPING_ATTRIBUTE)를 설정하거나 해제할 수 없어요. Snowflake가 관리형 프로바이더에 대해 이러한 값을 관리해요. - 관리형 프로바이더 허용 목록(
GOOGLE의OIDC_ALLOWED_GOOGLE_HOSTED_DOMAINS,MICROSOFT의OIDC_ALLOWED_MSFT_TENANTS)은 생성 시 필수이며 여기서는 선택이에요. 다른 프로바이더의 통합에 어느 옵션이든 설정하면 실패해요.
예시 (Examples)
- 다음 예시는 통합을 비활성화해요.
ALTER SECURITY INTEGRATION my_okta_oidc
SET ENABLED = FALSE;
- 다음 예시는 클라이언트 비밀을 업데이트해요.
ALTER SECURITY INTEGRATION my_okta_oidc
SET OIDC_CLIENT_SECRET = '<new_client_secret>';
- 다음 예시는 사용자 매핑 클레임을 변경해요.
ALTER SECURITY INTEGRATION my_okta_oidc
SET OIDC_TOKEN_USER_MAPPING_CLAIM = 'preferred_username',
OIDC_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME';
- 다음 예시는 도메인별로 인증을 제한해요.
ALTER SECURITY INTEGRATION my_okta_oidc
SET ALLOWED_USER_DOMAINS = ('mycompany.com', 'subsidiary.com');
- 다음 예시는 이메일 패턴 제한을 제거해요.
ALTER SECURITY INTEGRATION my_okta_oidc
UNSET ALLOWED_EMAIL_PATTERNS;
- 다음 예시는 허용된 Google Workspace 호스팅 도메인을 교체해요.
ALTER SECURITY INTEGRATION my_google_oidc
SET OIDC_ALLOWED_GOOGLE_HOSTED_DOMAINS = ('mycompany.com', 'subsidiary.com');
- 다음 예시는 회사 테넌트와 함께 개인 Microsoft 계정을 허용해요.
ALTER SECURITY INTEGRATION my_microsoft_oidc
SET OIDC_ALLOWED_MSFT_TENANTS = ('a1b2c3d4-e5f6-4789-a012-3456789abcde', 'personal');
더 알아보기 (Learn more)
- CREATE SECURITY INTEGRATION (OIDC) — 만들기
- SHOW INTEGRATIONS — 통합 나열
- DESCRIBE INTEGRATION — 통합 설명