SSO를 사용하도록 Snowflake Open Catalog 구성¶
이 항목에서는 SAML 기반 SSO를 사용하도록 Snowflake Open Catalog를 구성하는 방법을 설명합니다.
SSO를 사용하도록 Snowflake Open Catalog를 구성하기 전에, Open Catalog용 IdP를 구성해야 합니다. 구체적인 지침은 다음 항목을 참조하세요.
시작하기 전에¶
SSO용 Snowflake Open Catalog를 설정하려면 전체 Open Catalog 계정 식별자가 필요합니다. 여기에는 Snowflake 조직 이름과 Open Catalog 계정 이름이 포함됩니다(예: <orgname>.<my-snowflake-open-catalog-account-name>
).
Snowflake 조직 이름(
<orgname>
)을 확인하려면계정의 조직 및 계정 이름 찾기<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:/user-guide/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
응답은 다음과 같아야 합니다.
+------------------------------------------------------------------------------+ | 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 | +------------------------------------------------------------------------------+
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>
_ 섹션을 참조하세요.
다음 예시를 따라
myopencatalogconnection
연결을 기본값으로 설정합니다.snow connection set-default myopencatalogconnection
올바른 사용자 및 역할을 사용하고 있는지 확인하려면 다음을 실행합니다.
snow sql -q "Select current_user(); select current_role();"
응답은 귀하의 Open Catalog 사용자 이름을 반환해야 하며, CURRENT ROLE은 POLARIS_ACCOUNT_ADMIN이어야 합니다.
+----------------+ | CURRENT_USER() | |----------------| | JSMITH | +----------------+ select current_role(); +-----------------------+ | CURRENT_ROLE() | |-----------------------| | POLARIS_ACCOUNT_ADMIN | +-----------------------+
보안 통합 만들기¶
보안 통합을 생성하려면 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';”
여기서
<Name>
은 보안 통합의 식별자를 지정하며, 계정에 대해 고유해야 합니다.<Auth0 Domain>
은 Auth0 콘솔에 복사됩니다. 이 값을 찾으려면 Auth0에서 애플리케이션 > 애플리케이션 > Snowflake Open Catalog 애플리케이션 > 설정 > 기본 정보: 도메인 필드로 이동하세요.<SAML Protocol URL>
은 Auth0 콘솔에 복사됩니다. 이 값을 찾으려면 Auth0에서 애플리케이션 > 애플리케이션 > Snowflake Open Catalog 애플리케이션 > 설정 > 고급 설정 > 엔드포인트 탭: SAML 프로토콜 URL 필드로 이동하세요.<Certificate from Auth0>
은 Auth0 콘솔에 복사됩니다. 이 값을 찾으려면 Auth0에서 애플리케이션 > 애플리케이션 > Snowflake Open Catalog 애플리케이션 > 설정 > 고급 설정 > 인증서 탭: 서명 인증서 필드로 이동하세요. <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';”
여기서
<Name>
은 보안 통합의 식별자를 지정하며, 계정에 대해 고유해야 합니다.<ENTITY ID>
는 Okta에서 애플리케이션 생성 시 복사한 엔터티 ID 값입니다.<IDP SSO URL>
은 Okta에서 애플리케이션을 생성할 때 복사한 IDP SSO URL 값입니다.<Authentication Certificate>
은 Okta에서 애플리케이션을 생성할 때 복사한 IDP 인증서 값입니다.<orgname>
은 Snowflake 조직의 이름입니다. 이 이름을 찾으려면 시작하기 전에 섹션을 참조하세요.<my-snowflake-open-catalog-account-name>
은 Snowflake Open Catalog 계정의 이름입니다. 이 이름을 찾으려면 시작하기 전에 섹션을 참조하세요.
보안 통합 확인¶
한 번에 하나의 보안 통합만 사용할 수 있으며, 사용하려는 통합은 활성화되어 있어야 합니다.
참고
설정한 기본 Snowflake CLI 연결에 POLARIS_ACCOUNT_ADMIN 역할이 부여되지 않은 경우, USE ROLE POLARIS_ACCOUNT_ADMIN
문을 명령에 포함해야 합니다.
사용하려는 보안 통합이 활성화되었는지 확인하려면 다음 명령을 실행하세요.
snow sql -q "desc security integration <saml2-security-integration-name>;"
응답에 SAML2_ENABLE_SP_INITIATED=true가 포함된 경우, SAML2 보안 통합이 활성화됩니다.
선택 사항: 응답에 SAML2_ENABLE_SP_INITIATED=false가 포함된 경우, 이를 활성화하려면 다음 명령을 실행하세요.
snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;”
Open Catalog 계정에 사용자 생성¶
SSO가 사용자에 대해 작동하려면, IdP에서 생성한 사용자에 해당하는 Open Catalog 사용자를 생성해야 합니다.
중요
사용자를 생성하려면 Snowflake CLI를 사용해야 합니다.
Open Catalog UI를 사용하여 사용자를 생성하는 경우, 반드시 비밀번호를 지정해야 합니다. 사용자는 이 비밀번호로 SSO를 통해 또는 Open Catalog 자격 증명을 사용하여 로그인할 수 있습니다.
사용자를 생성하려면 다음 명령을 실행하세요.
snow sql -q "CREATE USER \"<login-name>\" EMAIL='<email>';"
여기서
<login-name>
은 다음 중 하나와 일치해야 합니다.Auth0에서 사용자에게 지정한 이메일.
Okta에서 사용자에게 지정한 사용자 이름.
<email>
is the user’s email address. If you’re using Auth0, this value will match <login-name>.
예:
snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
사용자를 올바르게 설정했는지 확인하려면 다음 명령을 실행하세요.
snow sql -q "show users;"
응답에서 LOGIN_NAME 열의 값은 Auth0의 이메일 또는 Okta의 사용자 이름과 일치해야 합니다.