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 활성화¶
이 프로시저는 Snowflake가 지원하는 Amazon Web Services 및 Microsoft Azure 클라우드 공급자 플랫폼에서 작동합니다. 클라우드 공급자 플랫폼에서 수행한 모든 단계는 해당 클라우드 공급자 설명서를 참조하세요. |tri-secret-secure|로 이미 활성화된 CMK에 대한 비공개 연결을 활성화하려면 활성 CMK에 대한 비공개 연결 엔드포인트 활성화 섹션을 참조하세요.
비공개 연결을 사용하여 |tri-secret-secure|를 활성화하려면 다음 단계를 완료합니다.
클라우드 공급자에서 CMK를 생성합니다.
Snowflake 계정을 호스팅하는 클라우드 플랫폼의 KMS에서 이 단계를 수행합니다.
Snowflake에서 :doc:`/sql-reference/functions/system_provision_privatelink_endpoint_tss`를 호출합니다.
이 시스템 함수는 KMS 및 |tri-secret-secure|와 함께 사용하기 위해 비공개 엔드포인트를 프로비저닝합니다.
클라우드 공급자에서 비공개 엔드포인트를 승인합니다.
Azure Portal에서 Azure API Management 리소스의 소유자로서 이 단계를 수행하거나 Amazon VPC 콘솔에서 수행합니다. 자세한 내용은 `Microsoft Azure<https://learn.microsoft.com/en-us/azure/key-vault/keys/quick-create-portal>`_ 또는 `AWS<https://docs.aws.amazon.com/vpc/latest/privatelink/use-resource-endpoint.html>`_ 설명서를 참조하세요.
Snowflake에서 :doc:`/sql-reference/functions/system_register_cmk_info`를 호출합니다.
이 시스템 함수는 CMK를 Snowflake 계정으로 등록합니다.
Snowflake 계정을 호스팅하는 클라우드 플랫폼에 올바른 시스템 함수 인자인지 다시 확인합니다.
SYSTEM$REGISTER_CMK_INFO 함수를 호출할 때 Snowflake는 검증된 이메일 주소가 있는 계정 관리자에게 이메일 메시지를 보냅니다. 계정 관리자가 ACTIVATE_CMK_INFO를 호출하여 |tri-secret-secure|를 활성화할 수 있게 되면 이를 알리는 메시지가 전송됩니다.
중요
|tri-secret-secure|를 활성화하려면 72시간을 기다려야 합니다(8단계). 이 대기 시간 중에 |tri-secret-secure| 활성화를 시도할 경우 기다리라는 오류 메시지가 표시됩니다.
Snowflake에서 :doc:`/sql-reference/functions/system_get_cmk_info`를 호출합니다.
이 시스템 함수는 사용자가 등록한 CMK의 등록 상태와 세부 정보를 반환합니다.
Snowflake에서 :doc:`/sql-reference/functions/system_get_cmk_config`를 호출합니다.
이 시스템 함수는 클라우드 공급자가 Snowflake가 CMK에 액세스할 수 있도록 허용하는 데 필요한 정보를 생성합니다.
참고
|azure|가 Snowflake 계정을 호스팅하는 경우 함수에
tenant_id값을 전달해야 합니다.Snowflake에서 :doc:`/sql-reference/functions/system_verify_cmk_info`를 호출합니다.
이 시스템 함수는 Snowflake 계정 및 CMK 간의 연결을 확인합니다.
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가 있으며 키 재생성 활동 없이 비공개 연결을 활성화하려면 다음 단계를 완료하세요.
Snowflake에서 :doc:`/sql-reference/functions/system_provision_privatelink_endpoint_tss`를 호출합니다.
이 시스템 함수는 키 관리 서비스(KMS) 및 |tri-secret-secure|와 함께 사용하기 위해 비공개 엔드포인트를 프로비저닝합니다.
클라우드 공급자에서 비공개 엔드포인트를 승인합니다.
Azure Portal에서 Azure API Management 리소스의 소유자로서 이 단계를 수행하거나 Amazon VPC 콘솔에서 수행합니다. 자세한 내용은 `Microsoft Azure<https://learn.microsoft.com/en-us/azure/key-vault/keys/quick-create-portal>`_ 또는 `AWS<https://docs.aws.amazon.com/vpc/latest/privatelink/use-resource-endpoint.html>`_ 설명서를 참조하세요.
Snowflake에서 다음 예와 같이 두 인자를 모두 사용하여 :doc:`/sql-reference/functions/system_register_cmk_info`를 호출합니다.
SELECT SYSTEM$REGISTER_CMK_INFO('<your_cmk_value>', 'true');
이 시스템 함수는 CMK를 Snowflake 계정으로 등록합니다.
Snowflake 계정을 호스팅하는 클라우드 플랫폼에 올바른 시스템 함수 인자인지 다시 확인합니다.
Snowflake에서 다음 예와 같이
UPDATE_PRIVATELINK인자를 제공하여 :doc:`/sql-reference/functions/system_activate_cmk_info`를 호출합니다.SELECT SYSTEM$ACTIVATE_CMK_INFO('UPDATE_PRIVATELINK');
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>`_ 섹션을 참조하세요.