SSO 를 사용하도록 Snowflake Open Catalog 구성하기

이 항목에서는 SAML 기반 SSO 를 사용하도록 Snowflake Open Catalog를 구성하는 방법을 설명합니다.

SSO 를 사용하도록 Snowflake Open Catalog를 구성하기 전에 Open Catalog의 IdP 를 구성해야 합니다. 지침에 대한 내용은 다음 항목을 참조하십시오.

시작하기 전에

Snowflake Open Catalog for SSO 를 설정하려면 Snowflake 조직 이름과 Open Catalog 계정 이름을 포함하는 전체 Open Catalog 계정 식별자가 필요합니다(예: <orgname >.<my-snowflake-open-catalog-account-name>).

  • Snowflake 조직 이름(<조직 이름>)을 찾으려면 계정의 조직 계정 이름 찾기 <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>_ 섹션을 참조하십시오.

  • Snowflake Open Catalog 계정 이름(<my-snowflake-open-catalog-account-name>)을 찾으려면 :doc:/opencatalog/find-account-name 섹션을 참조하십시오.

Open Catalog용 Snowflake CLI 연결 만들기

SSO 를 사용하도록 Snowflake Open Catalog를 구성하려면 Open Catalog용 Snowflake CLI 연결이 필요합니다. 이 연결을 만들려면 다음 단계를 따르십시오. 아직 Snowflake CLI 가 설치되어 있지 않은 경우 Snowflake CLI 설치하기 섹션을 참조하십시오.

중요

이 연결을 만들려면 서비스 관리자 권한이 있는 Open Catalog 사용자여야 합니다. 서비스 관리자 권한에 대한 자세한 내용은 서비스 관리자 역할을 참조하십시오.

Snowflake Open Catalog에 대한 Snowflake CLI 연결 추가하기

SSO 를 사용하도록 설정하려는 Snowflake Open Catalog 계정에 대한 연결을 추가합니다.

  • 다음 값으로 연결을 추가합니다. <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>_ 다른 모든 매개 변수의 경우 Enter 키를 눌러 매개 변수 값 지정을 건너뛰십시오.

    연결 구성 매개 변수

    이 연결의 이름

    연결 이름을 지정합니다(예: myopencatalogconnection).

    계정 이름

    이 형식에 따라 Snowflake 조직 이름과 Open Catalog 계정 이름을 지정합니다.

    <orgname>-<my-snowflake-open-catalog-account-name>.

    예: ABCDEFG-MYACCOUNT1.

    이러한 이름을 찾으려면 시작하기 전에_ 섹션을 참조하십시오.

    사용자 이름

    Open Catalog의 사용자 이름을 지정합니다(예: jsmith).

    비밀번호[선택 사항]

    이 매개 변수는 Open Catalog 연결을 생성할 때 선택 사항이 아닙니다.

    Open Catalog 비밀번호를 입력합니다(예: MyPassword123456789).

    연결의 역할[선택 사항]

    이 매개 변수는 Open Catalog 연결을 생성할 때 선택 사항이 아닙니다.

    POLARIS_ACCOUNT_ADMIN 을 입력해야 합니다.

Snowflake CLI 연결 테스트하기

  • CLI 연결을 테스트하려면 myopencatalogconnection 에 대한 연결을 테스트하는 이 예제를 따르십시오.

    snow connection test -c myopencatalogconnection
    
    Copy

    응답은 다음과 같이 표시되어야 합니다.

    +------------------------------------------------------------------------------+
    | key              | value                                                     |
    |----------------------------+-------------------------------------------------|
    | Connection name  | myopencatalogconnection                                   |
    | Status           | OK                                                        |
    | Host             | ABCDEFG-MYACCOUNT1.snowflakecomputing.com                 |
    | Account          | ABCDEFG-MYACCOUNT1                                        |
    | User             | jsmith                                                    |
    | Role             | POLARIS_ACCOUNT_ADMIN                                     |
    | Database         | not set                                                   |
    | Warehouse        | not set                                                   |
    +------------------------------------------------------------------------------+
    
    Copy

Snowflake Open Catalog에 대해 Snowflake CLI 연결을 기본값으로 설정하기

사용 중인 연결에 항상 요구 사항인 POLARIS_ACCOUNT_ADMIN 역할이 부여되도록 하려면 Open Catalog용으로 생성한 Snowflake CLI 연결을 기본 연결로 설정할 수 있습니다. 기본 연결에 대한 자세한 내용은 기본 연결 설정하기 <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>_ 섹션을 참조하십시오.

  1. myopencatalogconnection 연결을 기본값으로 설정하는 이 예시를 따르십시오.

    snow connection set-default myopencatalogconnection
    
    Copy
  2. 올바른 사용자와 역할을 사용하고 있는지 확인하려면 다음을 실행합니다.

    snow sql -q "Select current_user(); select current_role();"
    
    Copy

    응답은 Open Catalog 사용자 이름을 반환해야 하며 CURRENT ROLE 은 POLARIS_ACCOUNT_ADMIN 이어야 합니다.

    +----------------+
    | CURRENT_USER() |
    |----------------|
    | JSMITH        |
    +----------------+
    select current_role();
    +-----------------------+
    | CURRENT_ROLE()        |
    |-----------------------|
    | POLARIS_ACCOUNT_ADMIN |
    +-----------------------+
    
    Copy

보안 통합 만들기

보안 통합을 만들려면 Snowflake CLI 연결을 사용하여 CREATE SECURITY INTEGRATION 명령을 실행합니다. Auth0 보안 통합 또는 Okta 보안 통합을 만들 수 있습니다.

참고

설정한 기본 Snowflake CLI 연결에 POLARIS_ACCOUNT_ADMIN 역할이 부여되지 않은 경우 다음 문을 USE ROLE POLARIS_ACCOUNT_ADMIN 명령에 포함해야 합니다.

Auth0 보안 통합

  • Auth0에 대한 SAML 보안 통합을 만들려면 Snowflake CLI 에서 다음 명령을 실행합니다.

    snow sql -q “create security integration <Name>
        type = saml2
        enabled = true
        saml2_issuer = 'urn:<Auth0 Domain>'
        saml2_sso_url = '<SAML Protocol URL>'
        saml2_provider = 'Custom'
        saml2_x509_cert='<Certificate from Auth0>'
        saml2_sp_initiated_login_page_label = 'Auth0'
        saml2_enable_sp_initiated = true
        saml2_snowflake_acs_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login'
        saml2_snowflake_issuer_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com'
        saml2_requested_nameid_format = 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress';
    Copy

    여기서:

    • <이름> 은 보안 통합을 위한 식별자를 지정하며, 계정에 고유해야 합니다.

    • Auth0 콘솔에서 <Auth0 도메인> 이 복사됩니다. 이 값을 찾으려면 Auth0에서 Applications > Applications > Snowflake Open Catalog application > Settings > Basic Information: Domain 필드로 이동합니다.

    • Auth0 콘솔에서 <SAML Protocol URL> 이 복사됩니다. 이 값을 찾으려면 Auth0에서 Applications > Applications > Snowflake Open Catalog application > Settings > Advanced settings > Endpoints 탭: SAML Protocol URL 필드로 이동합니다.

    • Auth0 콘솔에서 <Certificate from Auth0> 이 복사됩니다. 이 값을 찾으려면 Auth0에서 Applications > Applications > Snowflake Open Catalog application > Settings > Advanced Settings > Certificate 탭: Signing Certificates 필드로 이동합니다. <BEGIN CERTIFICATE>와 <END CERTIFICATE> 사이의 값을 복사합니다.

    • <orgname> 은 Snowflake 조직의 이름입니다. 이 이름을 찾으려면 시작하기 전에 섹션을 참조하십시오.

    • <my-snowflake-open-catalog-account-name> 은 Snowflake Open Catalog 계정의 이름입니다. 이 이름을 찾으려면 시작하기 전에 섹션을 참조하십시오.

Okta 보안 통합

  • Okta에 대한 SAML 보안 통합을 만들려면 Snowflake CLI 에서 다음 명령을 실행하십시오.

    snow sql -q “CREATE SECURITY INTEGRATION <Name>
        TYPE = SAML2 
        ENABLED = TRUE 
        SAML2_ISSUER = '<ENTITY ID>' 
        SAML2_SSO_URL = '<IDP SSO URL>' 
        SAML2_PROVIDER = 'OKTA' 
        SAML2_X509_CERT='<Authentication Certificate>' 
        SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'OKTA SSO'
        SAML2_ENABLE_SP_INITIATED = TRUE
        SAML2_SNOWFLAKE_ACS_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login'
        SAML2_SNOWFLAKE_ISSUER_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com';
    Copy

    여기서:

    • <이름> 은 보안 통합을 위한 식별자를 지정하며, 계정에 고유해야 합니다.

    • <ENTITY ID>Okta에서 애플리케이션을 만들 때 복사한 Entity ID 값입니다.

    • <IDP SSO URL> 은 Okta에서 애플리케이션을 만들 때 복사한 IDP SSO URL 값입니다.

    • <인증 인증서> 는 Okta에서 애플리케이션을 만들 때 복사한 IDP 인증 인증서 값입니다.

    • <orgname> 은 Snowflake 조직의 이름입니다. 이 이름을 찾으려면 시작하기 전에 섹션을 참조하십시오.

    • <my-snowflake-open-catalog-account-name> 은 Snowflake Open Catalog 계정의 이름입니다. 이 이름을 찾으려면 시작하기 전에 섹션을 참조하십시오.

보안 통합 확인하기

한 번에 하나의 보안 통합만 사용할 수 있으며 사용하려는 통합을 사용하도록 설정해야 합니다.

참고

설정한 기본 Snowflake CLI 연결에 POLARIS_ACCOUNT_ADMIN 역할이 부여되지 않은 경우 다음 문을 USE ROLE POLARIS_ACCOUNT_ADMIN 명령에 포함해야 합니다.

  1. 사용하려는 보안 통합이 활성화되어 있는지 확인하려면 다음 명령을 실행합니다.

    snow sql -q "desc security integration <saml2-security-integration-name>;"
    
    Copy

    응답에 SAML2_ENABLE_SP_INITIATED=true가 포함되어 있으면 SAML2 보안 통합이 활성화된 것입니다.

  2. 선택 사항: 응답에 SAML2_ENABLE_SP_INITIATED=false가 포함된 경우 이를 활성화하려면 다음 명령을 실행합니다.

    snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;
    Copy

Open Catalog 계정에서 사용자 만들기

SSO 가 사용자에 대해 작동하려면 IdP 에서 만든 사용자에 해당하는 Open Catalog 사용자를 만들어야 합니다.

중요

사용자를 생성하려면 Snowflake CLI 를 사용해야 합니다.

Open Catalog UI 를 사용하여 사용자를 생성하는 경우 사용자가 SSO 또는 Open Catalog 자격 증명을 사용하여 로그인할 수 있도록 비밀번호를 지정해야 합니다.

  • 사용자를 만들려면 다음 명령을 실행합니다.

    snow sql -q "CREATE USER \"<login-name>\" EMAIL='<email>';"
    
    Copy

    여기서:

    • <login-name> 은 다음 중 하나와 일치해야 합니다.

      • Auth0에서 사용자에 대해 지정한 Email.

      • Okta에서 사용자에 대해 지정한 Username.

    • <email> 은 사용자의 이메일 주소입니다. Auth0을 사용하는 경우 이 값은 <login-name>과 일치합니다.

    예:

    snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
    
    Copy
  • 사용자를 올바르게 설정했는지 확인하려면 다음 명령을 실행합니다.

    snow sql -q "show users;"
    
    Copy

    응답에서 LOGIN_NAME 열의 값은 Okta에서 Auth0의 Email 또는 Username 과 일치해야 합니다.