CREATE SECURITY INTEGRATION

CREATE SECURITY INTEGRATION (SAML2)

CREATE SECURITY INTEGRATION (SAML2) 명령은 계정에 새 SAML2 보안 통합을 만들거나 기존 통합을 교체하는 명령이에요. SAML2 보안 통합은 Snowflake와 타사 ID 공급자(IdP) 사이에 인터페이스를 만들어 SSO(단일 로그온) 워크플로우를 제공합니다.

출처: CREATE SECURITY INTEGRATION (SAML2)

본문

계정에 새 SAML2 보안 통합을 만들거나 기존 통합을 교체하는 명령입니다. SAML2 보안 통합은 Snowflake와 타사 ID 공급자(IdP) 사이에 인터페이스를 만들어 SSO 워크플로우를 제공해요.

다른 유형의 보안 통합(예: SCIM) 만들기에 대한 정보는 CREATE SECURITY INTEGRATION 문서를 참고하세요.

관련 명령: ALTER SECURITY INTEGRATION (SAML2), DROP INTEGRATION, SHOW INTEGRATIONS

Syntax

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
    <name>
    TYPE = SAML2
    ENABLED = { TRUE | FALSE }
    { METADATA_URL = '<string_literal>' | <idp_parameters> }
    [ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
    [ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
    [ SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' ]
    [ SAML2_ENABLE_SP_INITIATED = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' ]
    [ SAML2_SIGN_REQUEST = TRUE | FALSE ]
    [ SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' ]
    [ SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>' ]
    [ SAML2_FORCE_AUTHN = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ]
    [ SAML2_SNOWFLAKE_ACS_URL = '<string_literal>' ]
    [ COMMENT = '<string_literal>' ]

Required parameters (필수 파라미터)

  • name — 통합의 식별자(이름)를 지정하는 문자열이에요. 계정 내에서 고유해야 합니다. 또한 식별자는 알파벳 문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예: "My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분합니다. 자세한 내용은 Identifier requirements 문서를 참고하세요.
  • TYPE = SAML2 — 통합 유형을 지정해요.
  • ENABLED = { TRUE | FALSE } — 통합의 작업을 시작할지 일시 중지할지를 지정하는 부울이에요. 값은 대소문자를 구분하지 않습니다. 기본값: TRUE
  • IdP 정보 — 서비스 공급자로서의 Snowflake와 IdP 사이의 관계를 설정하기 위한 IdP 정보를 지정해요. METADATA_URL 파라미터 또는 다른 필수 IdP 파라미터 중 하나를 사용해야 하며, 둘 다는 지정할 수 없습니다.
    • METADATA_URL = '<string_literal>' — IdP의 메타데이터 URL을 지정해요. 메타데이터 URL은 Snowflake가 인증서 업데이트를 포함한 IdP 구성 설정을 동적으로 검색·동기화할 수 있는 엔드포인트예요. 이 파라미터는 Okta와 Microsoft Entra ID에서만 지원됩니다. 메타데이터 URL은 오류 가능성이 적고 Snowflake가 IdP 구성 설정을 동적으로 업데이트할 수 있게 하므로 선호됩니다. 메타데이터 URL을 정의한 후 ALTER SECURITY INTEGRATION REFRESH METADATA_URL 명령으로 Snowflake를 수정된 IdP 구성 설정으로 최신 상태로 유지할 수 있어요.
    • <idp_parameters> — 발급자 식별자와 인증서를 포함한 IdP 정보를 지정하는 파라미터들. METADATA_URL을 지정했다면 설정할 수 없습니다.
      • SAML2_ISSUER = '<string_literal>' — IdP의 EntityID/Issuer를 포함하는 문자열.
      • SAML2_SSO_URL = '<string_literal>' — Snowflake(서비스 공급자)가 SAML AuthnRequest 메시지와 함께 사용자를 리다이렉트해야 하는 IdP SSO URL을 포함하는 문자열.
      • SAML2_PROVIDER = '<string_literal>' — IdP를 설명하는 문자열.
      • SAML2_X509_CERT = '<string_literal>' — IdP 서명 인증서의 Base64 인코딩 값으로, 앞의 -----BEGIN CERTIFICATE-----와 끝의 -----END CERTIFICATE----- 마커 없이 한 줄로.

Optional parameters (선택 파라미터)

  • ALLOWED_USER_DOMAINS = ( ... ) — SAML2 보안 통합으로 인증할 수 있는 이메일 도메인 목록이에요. 예: ALLOWED_USER_DOMAINS = ("example.com", "example2.com", ...). 여러 IdP를 사용하는 구성에서 사용자를 IdP와 연결하는 데 사용할 수 있습니다.
  • ALLOWED_EMAIL_PATTERNS = ( ... ) — SAML2 보안 통합으로 인증하기 위해 이메일 주소가 대해 대조되는 정규식 목록이에요. 예: ALLOWED_EMAIL_PATTERNS = ("^(.+dev)@example.com$", ...).
  • SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' — 로그인 페이지의 "Log In With" 버튼 뒤에 표시할 레이블을 포함하는 문자열.
  • SAML2_ENABLE_SP_INITIATED = TRUE | FALSE — "Log In With" 버튼이 로그인 페이지에 표시될지 여부를 나타내는 부울.
  • SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' — SAML 어서션을 암호화하고 서명된 SAML 요청을 보내는 데 사용되는, Snowflake가 생성한 자체 서명 인증서의 Base64 인코딩 값. 인증서 값에 접근하려면 계정에 (암호화된 SAML 어서션 또는 서명된 SAML 응답 중) 기능이 하나 이상 활성화되어 있어야 해요.
  • SAML2_SIGN_REQUEST = TRUE | FALSE — SAML 요청이 서명되는지 여부를 나타내는 부울.
  • SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' — SAML NameID 형식은 IdP의 SAML 어서션에서 사용자의 식별 속성(즉 SAML Subject) 기대치를 설정해 Snowflake에 유효한 인증을 보장하게 합니다. 값을 지정하지 않으면 Snowflake는 IdP에 인증 요청에서 urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress 값을 보내요. 선택 사항입니다.
  • SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>' — Snowsight에서 Log Out 버튼을 클릭한 후 Snowflake가 사용자를 리다이렉트하는 엔드포인트예요. Snowflake는 지정된 엔드포인트로 리다이렉트할 때 Snowflake 세션을 종료합니다.
  • SAML2_FORCE_AUTHN = TRUE | FALSE — 초기 인증 흐름 중 사용자가 Snowflake에 접근하기 위해 다시 인증하도록 강제되는지 여부를 나타내는 부울. TRUE로 설정하면 Snowflake가 IdP로 가는 나가는 요청에서 SAML ForceAuthn 파라미터를 TRUE로 설정합니다. 기본값: FALSE
  • SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' — Snowflake 서비스 공급자의 EntityID/Issuer를 포함하는 문자열. 잘못된 값을 지정하면 Snowflake가 사용할 수 있는 허용 값이 표시된 오류 메시지를 반환해요. 이 속성의 값은 IdP에 지정된 Snowflake 계정 URL과 일치해야 합니다.
  • SAML2_SNOWFLAKE_ACS_URL = '<string_literal>' — IdP가 SAML 인증 응답을 Snowflake로 다시 보낼 Snowflake Assertion Consumer Service URL을 포함하는 문자열. 이 속성은 Snowflake가 IdP와 SAML SSO 작업을 시작할 때 생성하는 SAML 인증 요청에 설정됩니다. 잘못된 값을 지정하면 Snowflake가 허용 값을 표시하는 오류를 반환해요. 기본값: https://<account_locator>.<region>.snowflakecomputing.com/fed/login
  • COMMENT = '<string_literal>' — 통합에 대한 주석을 지정해요. 기본값: 값 없음

Access control requirements (접근 제어 요구 사항)

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요.

지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 Creating custom roles 문서를, 보안 객체에 대한 SQL 작업의 역할·권한 부여에 대한 일반적인 정보는 Overview of Access Control 문서를 참고하세요.

Usage notes (사용 참고 사항)

Example (예제)

다음 예제는 두 개의 선택 설정이 있는 Microsoft Active Directory Federation Services(AD FS) 보안 통합을 만들어요.

CREATE SECURITY INTEGRATION my_idp
  TYPE = saml2
  ENABLED = true
  METADATA_URL = 'https://integrator-26580.okta.com/app/ex2kbcS30N697/sso/saml/metadata'
  SAML2_SNOWFLAKE_ISSUER_URL = 'https://myorg-acct1.privatelink.snowflakecomputing.com'
  SAML2_SNOWFLAKE_ACS_URL = 'https://myorg-acct1.privatelink.snowflakecomputing.com/fed/login';

DESCRIBE INTEGRATION을 사용해 통합 설정을 봅시다.

DESC SECURITY INTEGRATION my_idp;

더 알아보기 (Learn more)