Snowflake에서 비공개 연결을 사용한 Tri-Secret Secure 셀프 서비스

Tri-Secret Secure 개요

Snowflake의 기본 제공 사용자 인증과 함께 이중 키 암호화 모델을 사용하면 *Tri-Secret Secure*라고 하는 3단계의 데이터 보호가 가능합니다. Tri-Secret Secure는 Snowflake의 표준 암호화보다 높은 수준의 보안과 제어를 제공합니다.

Snowflake의 이중 키 암호화 모델은 Snowflake에서 유지 관리하는 키와 고객 관리형 키(CMK)를 결합하여 Snowflake 데이터를 보호하는 복합 마스터 키를 생성합니다. 이 모델은 Snowflake 데이터를 보호하는 복합 마스터 키를 생성합니다. 이 복합 마스터 키는 계정 계층 구조의 모든 키를 래핑하여 계정 마스터 키 역할을 합니다. 복합 마스터 키는 원시 데이터를 암호화하는 데 사용되지 않습니다. 예를 들어, 복합 마스터 키는 원시 데이터를 암호화하는 파일 키를 파생하는 데 사용되는 테이블 마스터 키를 래핑합니다.

주의

계정에 Tri-Secret Secure 를 활성화하기 전에 :ref:`label-customer-managed-keys`에 언급된 대로 키 보호에 대한 책임을 신중하게 고려해야 합니다. 복합 마스터 키 계층 구조의 CMK가 취소되면 Snowflake가 더 이상 데이터의 암호를 해독할 수 없습니다.

궁금한 점이나 우려 사항이 있는 경우 `Snowflake 지원`_에 문의하세요.

Snowflake도 자체적으로 유지 관리하는 키에 대해 동일한 책임을 집니다. 서비스의 모든 보안 관련 측면과 마찬가지로, Snowflake는 이러한 책임과 관련하여 최대한 주의하고 경계합니다.

Snowflake의 모든 키는 최고의 보안 인증을 획득할 수 있도록 SOC 2 유형 II, PCI-DSS, HIPAA 및 HITRUST CSF 등과 같은 엄격한 정책에 따라 유지 관리됩니다.

하이브리드 테이블과의 Tri-Secret Secure 호환성

계정에서 하이브리드 테이블을 생성하고자 하며 Tri-Secret Secure 가 이미 활성화되어 있거나 활성화할 예정인 경우 전용 저장소 모드를 활성화해야 합니다. 자세한 내용은 TSS용 하이브리드 테이블 전용 저장소 모드 섹션을 참조하십시오.

비공개 연결을 사용한 Tri-Secret Secure 셀프 서비스 이해

Snowflake 시스템 함수를 사용하여 CMK를 등록하고, 비공개 엔드포인트를 프로비저닝한 다음, 해당 엔드포인트를 통해 Tri-Secret Secure 와 함께 사용할 수 있도록 CMK를 활성화할 수 있습니다. Tri-Secret Secure 와 함께 사용하기 위해 CMK를 교체하기로 결정한 경우 SYSTEM$GET_CMK_INFO 함수는 새 CMK가 등록되고 활성화되었는지 여부를 알려줍니다. 키 재생성 프로세스 중에 계정을 계속 사용할 수 있습니다.

비공개 연결을 사용하는 Tri-Secret Secure 셀프 서비스는 다음과 같은 이점을 제공합니다.

  • Snowflake 계정을 호스팅하는 클라우드 플랫폼에서 키 관리 서비스(KMS)와의 작업을 촉진합니다.

  • CMK의 등록 및 인증 단계를 간소화합니다.

  • CMK 등록 및 Tri-Secret Secure 활성화 상태에 투명성을 제공합니다.

  • Snowflake 계정의 다운타임 없이 Tri-Secret Secure 를 관리할 수 있습니다.

  • 비공개 엔드포인트를 통해 Snowflake 관리형 키와 클라우드 공급자의 키 볼트 간 통신을 가능하게 합니다.

비공개 연결로 Tri-Secret Secure 활성화

This procedure works on all cloud provider platforms that Snowflake supports. See your specific cloud provider documentation for any steps taken on the cloud provider platform. To enable private connectivity for a CMK already activated with Tri-Secret Secure, see 활성 CMK에 대한 비공개 연결 엔드포인트 활성화.

비공개 연결을 사용하여 Tri-Secret Secure 를 활성화하려면 다음 단계를 완료합니다.

  1. 클라우드 공급자에서 CMK를 생성합니다.

    Snowflake 계정을 호스팅하는 클라우드 플랫폼의 KMS에서 이 단계를 수행합니다.

  2. Snowflake에서 :doc:`/sql-reference/functions/system_provision_privatelink_endpoint_tss`를 호출합니다.

    이 시스템 함수는 KMS 및 Tri-Secret Secure 와 함께 사용하기 위해 비공개 엔드포인트를 프로비저닝합니다.

  3. 클라우드 공급자에서 비공개 엔드포인트를 승인합니다.

    Do this step in the Azure portal as the owner of the Azure API Management resource. For more information, see the Microsoft Azure , AWS, or Google Cloud documentation.

  4. In Snowflake, call SYSTEM$REGISTER_CMK_INFO with both arguments, as shown in the following example:

    SELECT SYSTEM$REGISTER_CMK_INFO('<your_cmk_value>', 'true');
    
    Copy
    • 이 시스템 함수는 CMK를 Snowflake 계정으로 등록합니다.

    • Snowflake 계정을 호스팅하는 클라우드 플랫폼에 올바른 시스템 함수 인자인지 다시 확인합니다.

    • SYSTEM$REGISTER_CMK_INFO 함수를 호출할 때 Snowflake는 검증된 이메일 주소가 있는 계정 관리자에게 이메일 메시지를 보냅니다. 계정 관리자가 ACTIVATE_CMK_INFO를 호출하여 Tri-Secret Secure 를 활성화할 수 있게 되면 이를 알리는 메시지가 전송됩니다.

    중요

    Tri-Secret Secure 를 활성화하려면 72시간을 기다려야 합니다(8단계). 이 대기 시간 중에 Tri-Secret Secure 활성화를 시도할 경우 기다리라는 오류 메시지가 표시됩니다.

  5. Snowflake에서 :doc:`/sql-reference/functions/system_get_cmk_info`를 호출합니다.

    이 시스템 함수는 사용자가 등록한 CMK의 등록 상태와 세부 정보를 반환합니다.

  6. Snowflake에서 :doc:`/sql-reference/functions/system_get_cmk_config`를 호출합니다.

    이 시스템 함수는 클라우드 공급자가 Snowflake가 CMK에 액세스할 수 있도록 허용하는 데 필요한 정보를 생성합니다.

    참고

    Microsoft Azure 가 Snowflake 계정을 호스팅하는 경우 함수에 tenant_id 값을 전달해야 합니다.

  7. 클라우드 공급자 플랫폼에서 SYSTEM$GET_CMK_CONFIG 함수의 출력을 사용하여 CMK에 권한을 부여합니다.

  8. Snowflake에서 :doc:`/sql-reference/functions/system_verify_cmk_info`를 호출합니다.

    이 시스템 함수는 Snowflake 계정 및 CMK 간의 연결을 확인합니다.

  9. Snowflake에서 :doc:`/sql-reference/functions/system_activate_cmk_info`를 호출합니다.

    이 시스템 함수는 Tri-Secret Secure 를 등록된 CMK에서 활성화합니다. 이 시스템 함수는 키 재생성 프로세스를 시작하고 프로세스가 완료되면 시스템 관리자에게 알리는 이메일 메시지를 생성합니다. 키 재생성 프로세스는 1시간 이내에 완료할 수 있지만, 최대 24시간이 걸릴 수 있습니다.

    경고

    Snowflake는 키 재생성 프로세스가 완료될 때까지 이전 CMK를 사용합니다. 키 재생성 프로세스가 완료되었다는 이메일 알림을 받을 때까지 이전 CMK에 대한 액세스 권한을 제거하지 마세요.

CMK 상태 보기

언제든지 :doc:`/sql-reference/functions/system_get_cmk_info`를 호출하여 CMK의 등록 및 활성화 상태를 확인할 수 있습니다.

예를 들어, SYSTEM$GET_CMK_INFO 호출 시점에 따라 이 함수는 다음 출력을 반환합니다.

  • Tri-Secret Secure 활성화 직후 ``…is being activated…``를 반환합니다. 이는 키 재생성이 완료되지 않았음을 의미합니다.

  • Tri-Secret Secure 활성화 프로세스가 완료되면 ``…is activated…``가 포함된 출력이 반환됩니다. 이는 사용자의 Snowflake 계정에서 등록한 CMK와 함께 Tri-Secret Secure 가 사용되고 있음을 의미합니다.

비공개 연결을 활성화한 경우 SYSTEM$GET_CMK_INFO를 호출하면 비공개 연결 엔드포인트의 등록 및 활성화 상태와 Tri-Secret Secure 에 대한 정보를 반환합니다.

Tri-Secret Secure 에 대한 CMK 변경

Snowflake 시스템 함수는 보안 요구 사항에 따라 고객 관리형 키(CMK)를 변경하도록 지원합니다. 초기 CMK 등록에 사용한 단계와 동일한 단계를 사용하여 새 CMK를 등록합니다. 새 키를 사용하여 해당 단계를 다시 완료하면 시스템 함수의 출력이 달라집니다. 자체 등록 중에 호출하는 각 시스템 함수의 출력을 읽고 키가 변경되었는지 확인합니다. 예를 들어, CMK를 변경하고 SYSTEM$GET_CMK_INFO 함수를 호출하면 ``…is being rekeyed…``가 포함된 메시지가 반환됩니다.

활성 CMK에 대한 비공개 연결 엔드포인트 활성화

활성 CMK가 있으며 키 재생성 활동 없이 비공개 연결을 활성화하려면 다음 단계를 완료하세요.

  1. Snowflake에서 :doc:`/sql-reference/functions/system_provision_privatelink_endpoint_tss`를 호출합니다.

    이 시스템 함수는 키 관리 서비스(KMS) 및 Tri-Secret Secure 와 함께 사용하기 위해 비공개 엔드포인트를 프로비저닝합니다.

  2. 클라우드 공급자에서 비공개 엔드포인트를 승인합니다.

    Do this step in the Azure portal as the owner of the Azure API Management resource. For more information, see the Microsoft Azure , AWS, or Google Cloud documentation.

  3. Snowflake에서 다음 예와 같이 두 인자를 모두 사용하여 :doc:`/sql-reference/functions/system_register_cmk_info`를 호출합니다.

    SELECT SYSTEM$REGISTER_CMK_INFO('<your_cmk_value>', 'true');
    
    Copy
    • 이 시스템 함수는 CMK를 Snowflake 계정으로 등록합니다.

    • Snowflake 계정을 호스팅하는 클라우드 플랫폼에 올바른 시스템 함수 인자인지 다시 확인합니다.

  4. Snowflake에서 다음 예와 같이 UPDATE_PRIVATELINK 인자를 제공하여 :doc:`/sql-reference/functions/system_activate_cmk_info`를 호출합니다.

    SELECT SYSTEM$ACTIVATE_CMK_INFO('UPDATE_PRIVATELINK');
    
    Copy

    UPDATE_PRIVATELINK 인자를 사용하여 SYSTEM$ACTIVATE_CMK_INFO 함수를 실행할 때 이전 SYSTEM$REGISTER_CMK_INFO 호출의 값을 읽습니다. 키 재생성이 발생하지 않으므로 함수가 빠르게 완료됩니다. 선택적으로, SYSTEM$GET_CMK_INFO 함수를 다시 호출하여 비공개 연결 상태를 확인합니다.

Tri-Secret Secure 에 대한 비공개 연결 엔드포인트 프로비저닝 해제

Snowflake가 비공개 연결을 사용하여 외부 KMS 리소스에 연결하지 못하게 하려면 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT_TSS 함수를 호출합니다.

Tri-Secret Secure 에 대한 비공개 연결 엔드포인트 복원

프로비저닝이 해제된 비공개 연결 엔드포인트를 사용하여 외부 KMS 리소스에 대한 Snowflake 연결을 다시 설정하려면 SYSTEM$RESTORE_PRIVATELINK_ENDPOINT_TSS 함수를 사용합니다.

자동 키 순환을 사용한 Tri-Secret Secure 셀프 서비스 사용

클라우드 공급자의 자동 키 순환 기능을 사용하여 고객 관리형 키(CMKs)의 수명 주기를 유지하는 경우 SYSTEM$ACTIVATE_CMK_INFO 함수를 호출하고 'REKEY_SAME_CMK' 인자를 제공하여 CMK의 최신 버전으로 키를 재생성할 수 있습니다.

자세한 내용은 고객 관리 키 섹션을 참조하십시오.

Tri-Secret Secure 비활성화

계정에서 Tri-Secret Secure 를 비활성화하려면 SYSTEM$DEACTIVATE_CMK_INFO 시스템 함수를 호출합니다.

현재 CMK 등록 취소

한 번에 하나의 CMK만 Tri-Secret Secure 에 등록할 수 있습니다. CMK를 등록할 때 다른 CMK의 존재로 인해 SYSTEM$REGISTER_CMK_INFO 함수가 실패하는 경우 프롬프트에 따라 SYSTEM$DEREGISTER_CMK_INFO 함수를 호출합니다.

Tri-Secret Secure 와 AWS 외부 키 저장소 통합

Snowflake는 Tri-Secret Secure 와 AWS 외부 키 저장소를 통합하여 고객 관리형 키를 AWS 외부에서 안전하게 저장하고 관리할 수 있도록 지원합니다. Snowflake는 Thales HSM(Hardware Security Module) 및 Thales CCKM(CipherTrust Cloud Key Manager) 데이터 암호화 제품만 공식적으로 테스트하고 지원합니다.

Thales 솔루션을 사용하여 Tri-Secret Secure 를 설정하고 구성하는 방법에 대한 자세한 내용은 `AWS Snowflake 계정에서 Tri-Secret Secure에 Thales 외부 키 저장소를 사용하는 방법<https://community.snowflake.com/s/article/thales-xks-for-tss-aws#e3>`_ 섹션을 참조하세요.