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
응답은 다음과 같이 표시되어야 합니다.
+------------------------------------------------------------------------------+ | 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';”
여기서:
<이름>
은 보안 통합을 위한 식별자를 지정하며, 계정에 고유해야 합니다.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';”
여기서:
<이름>
은 보안 통합을 위한 식별자를 지정하며, 계정에 고유해야 합니다.<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
명령에 포함해야 합니다.
사용하려는 보안 통합이 활성화되어 있는지 확인하려면 다음 명령을 실행합니다.
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에서 사용자에 대해 지정한 Email.
Okta에서 사용자에 대해 지정한 Username.
<email>
은 사용자의 이메일 주소입니다. Auth0을 사용하는 경우 이 값은 <login-name>과 일치합니다.
예:
snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
사용자를 올바르게 설정했는지 확인하려면 다음 명령을 실행합니다.
snow sql -q "show users;"
응답에서 LOGIN_NAME 열의 값은 Okta에서 Auth0의 Email 또는 Username 과 일치해야 합니다.