Snowflake에서의 암호화 키 관리 이해하기¶
이 항목에서는 Snowflake 관리 키, 고객 관리 키, Tri-Secret Secure와 관련된 개념을 제공합니다.
이 항목의 내용:
개요¶
Snowflake는 데이터 암호화 키를 관리하여 고객 데이터를 보호합니다. 이러한 관리는 고객이 개입할 필요 없이 자동으로 이루어집니다.
고객은 Snowflake 계정을 호스팅하는 클라우드 플랫폼에서 키 관리 서비스를 사용하여 자신의 고유한 추가 암호화 키를 유지 관리할 수 있습니다.
활성화 시, Snowflake에서 유지 관리하는 키와 고객이 관리하는 키의 조합으로 Snowflake 데이터 보호를 위한 복합적인 마스터 키 가 생성됩니다. 이를 Tri-Secret Secure라고 합니다.
Snowflake 관리 키¶
모든 Snowflake 고객 데이터는 기본적으로 최신 보안 표준 및 모범 사례를 사용하여 암호화됩니다. Snowflake는 하드웨어 보안 모듈 기반 계층적 키 모델과 함께 강력한 AES 256비트 암호화를 사용합니다.
키는 Snowflake 서비스에 의해 정기적으로 자동 순환되며 데이터는 정기적으로 자동으로 다시 암호화(“키 재생성됨”)될 수 있습니다. 데이터 암호화 및 키 관리는 완전히 투명하며 구성이나 관리가 필요하지 않습니다.
계층적 키 모델¶
계층적 키 모델은 Snowflake의 암호화 키를 관리하기 위한 프레임워크를 제공합니다. 계층 구조는 키의 각 상위 계층(상위 키)이 하위 계층(하위 키)을 암호화하는 여러 키 계층으로 구성됩니다. 보안 용어로 모든 하위 키를 암호화하는 상위 키를 “래핑”이라고 합니다.
Snowflake의 계층적 키 모델은 다음의 4가지 수준의 키로 구성됩니다.
루트 키
계정 마스터 키
테이블 마스터 키
파일 키
다음 이미지에 표시된 것처럼, 각 고객 계정에는 계정 수준 키, 테이블 수준 키, 파일 수준 키라는 별도의 키 계층 구조가 있습니다.
Snowflake와 같은 다중 tenant 클라우드 서비스에서 계층적 키 모델은 별도의 계정 마스터 키를 사용하여 모든 계정을 분리합니다. 계층적 키 모델은 고객 데이터의 저장을 분리하는 액세스 제어 모델 뿐만 아니라 계정 분리의 또 다른 계층을 제공합니다.
계층적 키 모델은 각 키 계층의 범위를 줄입니다. 예를 들어, 테이블 마스터 키는 단일 테이블을 암호화합니다. 파일 키는 단일 파일을 암호화합니다. 계층적 키 모델은 각 키가 보호하는 데이터의 양과 사용할 수 있는 기간을 제한합니다.
암호화 키 순환¶
모든 Snowflake 관리 키는 30일이 경과하면 Snowflake에 의해 자동으로 교체됩니다. 활성 키는 폐기되며 새 키가 생성됩니다. Snowflake가 폐기된 키가 더 이상 필요하지 않다고 판단하면 키는 자동으로 폐기됩니다. 활성화되면 키를 사용하여 데이터를 암호화할 수 있으며 고객이 사용할 수 있습니다. 폐기되면, 키는 데이터 암호 해독에만 사용되며 데이터 액세스에만 사용할 수 있습니다.
키 계층 구조에서 하위 키 래핑 또는 테이블에 데이터를 삽입하는 경우에는 현재 활성 키만 데이터를 암호화하기 위한 용도로 사용됩니다. 키가 파괴되면 암호화 또는 암호 해독에 사용되지 않습니다. 정기 키 순환은 키의 수명 주기를 제한적인 기간으로 제한합니다.
다음 이미지에서는 3개월 동안 하나의 테이블 마스터 키(TMK)에 대한 키 순환을 보여줍니다.
TMK 순환은 다음과 같이 이루어집니다.
TMK의 버전 1은 4월에 활성화됩니다. 4월에 이 테이블에 삽입된 데이터는 TMK v1을 사용하여 보호됩니다.
5월에는 이 TMK가 순환되어, TMK v1은 폐기되고 완전히 임의의 새로운 키인 TMK v2가 생성됩니다. TMK v1은 이제 4월 데이터의 암호를 해독하기 위한 용도로만 사용됩니다. 테이블에 삽입된 새 데이터는 TMK v2를 사용하여 암호화됩니다.
6월에 TMK가 다시 순환되어, TMK v2는 폐기되고 새로운 TMK v3이 생성됩니다. TMK v1은 4월 데이터의 암호를 해독하기 위해, TMK v2는 5월 데이터의 암호를 해독하기 위해, TMK v3는 6월에 테이블에 새로 삽입된 데이터를 암호화 및 암호를 해독하기 위한 용도로 사용됩니다.
앞에서 설명한 바와 같이, 키 순환은 키를 사용하여 데이터의 암호를 해독하기 위해 사용되는 기간을 제한합니다. 계층적 키 모델과 함께 키 순환은 키 버전이 보호하는 데이터의 양을 추가적으로 제한합니다. 키의 수명을 제한하는 것은 미국 국가표준기술원(NIST)에서 권장하는 보안 강화 방법입니다.
Periodic Rekeying¶
이 섹션에서는 계속해서 계정 및 테이블 마스터 키 수명 주기에 대한 설명을 제공합니다. 암호화 키 순환 에서는 활성 키를 주기적으로 새 키로 교체하고 이전 키를 폐기하는 키 순환에 대한 설명이 제공되었습니다. 주기적인 데이터 키 재생성으로 수명 주기가 완료됩니다.
키 순환은 키가 활성 상태에서 폐기 상태로 전송되도록 하는 반면 키 재생성은 키가 폐기 상태에서 파괴 중으로 전송됩니다.
주기적 키 재생성이 활성화된 경우에는 테이블의 폐기된 암호화 키가 1년을 경과한 경우 Snowflake는 자동으로 새 암호화 키를 생성하고 새 키를 사용하여 폐기된 키로 이전에 보호했던 모든 데이터를 다시 암호화합니다. 새 키는 향후에 테이블 데이터의 암호를 해독하기 위해 사용됩니다.
참고
Enterprise Edition 계정의 경우 ACCOUNTADMIN 역할이 있는 사용자(즉, 계정 관리자)는 ALTER ACCOUNT 및 PERIODIC_DATA_REKEYING 매개 변수를 사용하여 키 재생성을 활성화할 수 있습니다.
ALTER ACCOUNT SET PERIODIC_DATA_REKEYING = true;
다음 이미지는 단일 테이블에 대한 TMK의 주기적 키 재생성을 보여줍니다.
주기적 키 재생성은 다음과 같이 작동합니다.
다음 해 4월에 TMK v1이 1년이 경과하여 폐기된 후 완전히 새로운 임의 키를 사용하여 키가 재생성됩니다(2세대).
TMK v1 1세대에 의해 보호된 데이터 파일은 TMK v1 2세대를 사용하여 암호 해독 및 재암호화됩니다. 더 이상 목적이 없으므로 TMK v1 1세대는 파괴됩니다.
5월에 Snowflake는 TMK v2로 보호되는 테이블 데이터에 대해 동일한 키 재생성 프로세스를 수행합니다.
이후에도 같은 방식으로 작동합니다.
이 예에서 키의 수명 주기는 총 1년으로 제한됩니다.
키 재생성은 NIST 권장 사항에 따라 수신자가 사용하기 위해 키가 사용되는 총 기간을 제한합니다. 또한, 데이터 키를 재생성할 때 Snowflake는 암호화 키의 크기를 증가시키고 이전 키 세대가 생성된 후 표준화가 가능한 향상된 암호화 알고리즘을 활용할 수 있습니다.
그러므로 키 재생성을 통해 신규 및 기존의 모든 고객 데이터가 최신 보안 기술로 암호화됩니다.
Snowflake는 현재 실행 중인 고객 워크로드에 영향을 주지 않고 백그라운드에서 데이터 파일의 키를 온라인에서 재생성합니다. 키가 재생성 중인 데이터는 항상 고객이 사용할 수 있습니다. 데이터 키를 재생성하기 위한 서비스 다운타임이 필요하지 않으며 워크로드에 성능에 영향을 주지 않습니다. 이러한 이점은 저장소와 컴퓨팅 리소스를 분리하는 Snowflake 아키텍처를 통해 직접적으로 제공되는 것입니다.
참고
Snowflake 계정이 주기적인 키 재생성 을 사용하도록 활성화된 경우에는 하이브리드 테이블 을 사용할 수 없습니다. 계정에서 주기적 키 재생성이 활성화되어 있고 하이브리드 테이블을 사용하려는 경우 ALTER ACCOUNT 명령을 사용하여 PERIODIC_DATA_REKEYING 매개 변수를 FALSE
로 설정해야 합니다.
Time Travel 및 Fail-safe에 대한 키 재생성의 영향¶
Time Travel 및 Fail-safe 보존 기간은 키 재생성으로 인해 영향을 받지 않습니다. 키 재생성은 두 기능 모두에 투명합니다. 그러나 Fail-safe에서 데이터의 키를 재생성하는 것은 추가 저장소 요금과 관련이 있습니다(다음 섹션 참조).
저장소 사용에 대한 키 재생성의 영향¶
Snowflake 고객에게는 키가 재생성된 데이터 파일에 대한 Fail-safe 보호와 관련하여 추가 저장소 요금이 부과됩니다. 이러한 파일의 경우 7일의 Fail-safe 보호 요금이 부과됩니다.
즉, 예를 들어 Amazon S3에 기존 키가 있는 데이터 파일은 이미 Fail-safe로 보호되고 Amazon S3에 새 키가 있는 데이터 파일도 Fail-safe에 추가되어, 두 번째 요금이 부과되지만 이 기간은 7일로 제한됩니다.
하드웨어 보안 모듈¶
Snowflake는 클라우드 호스팅 하드웨어 보안 모듈(HSM)을 사용하여 안전하게 키를 저장하고 사용하도록 보장합니다. 각 클라우드 플랫폼에는 서로 다른 HSM 서비스가 있으며 이는 Snowflake가 각 플랫폼에서 HSM 서비스를 사용하는 방식에 영향을 미칩니다.
AWS 및 Azure에서 Snowflake는 HSM을 사용하여 루트 키를 생성하고 저장합니다.
Google Cloud에서 HSM 서비스는 Google CloudKMS(키 관리 서비스) API를 통해 제공됩니다. Snowflake는 Google Cloud KMS를 사용하여 멀티 테넌트 HSM 파티션에 루트 키를 만들고 저장합니다.
모든 클라우드 플랫폼과 키 계층 구조의 모든 키에 대해 HSM에 저장된 키는 계층 구조의 키를 래핑 해제하는 데 사용됩니다. 예를 들어 테이블 마스터 키의 암호를 해독하기 위해 HSM의 키는 계정 마스터 키를 래핑 해제합니다. 이 프로세스는 HSM에서 발생합니다. 이 프로세스가 완료되면 소프트웨어 작업을 통해 계정 마스터 키를 사용하여 테이블 마스터 키를 해독합니다.
다음 이미지는 HSM, 계정 마스터 키, 테이블 마스터 키, 파일 키 사이의 관계를 보여줍니다.
고객 관리 키¶
고객 관리 키는 Snowflake 계정을 호스팅하는 클라우드 공급자의 키 관리 서비스에서 고객이 유지 관리히는 마스터 암호화 키입니다. 각 플랫폼의 키 관리 서비스는 다음과 같습니다.
Google Cloud: Cloud Key Management Service (Cloud KMS)
Microsoft Azure: Azure Key Vault
그런 다음, 고객 관리 키를 Snowflake 관리 키와 결합하여 복합 마스터 키를 만들 수 있습니다. 이런 경우, Snowflake는 이를 Tri-Secret Secure (이 항목에서)라고 합니다.
Snowflake 계정에서 다음 시스템 함수를 호출하여 키에 대한 정보를 얻을 수 있습니다.
Microsoft Azure: SYSTEM$GET_CMK_AKV_CONSENT_URL
Google Cloud: SYSTEM$GET_GCP_KMS_CMK_GRANT_ACCESS_CMD
중요
Snowflake는 고객이 관리하는 키에 대한 키 순환을 지원하지 않으며 고객이 관리하는 키에 대한 자동 키 순환 정책을 구현하지 않는 것이 좋습니다.
이렇게 권장하는 이유는 Snowflake가 데이터를 암호 해독할 수 없어 순환된 키가 삭제되면 키 순환이 데이터 손실로 이어질 수 있기 때문입니다. 자세한 내용은 이 항목의 Tri-Secret Secure시크릿 를 참조하십시오.
고객 관리 키의 이점¶
고객 관리 키의 이점은 다음과 같습니다.
- 데이터 액세스 제어:
키 관리 서비스에서 마스터 키를 완벽하게 제어할 수 있으므로 Snowflake의 데이터도 완벽하게 제어할 수 있습니다. 이 키를 해제하지 않고는 Snowflake 계정에 저장된 데이터의 암호를 해독할 수 없습니다.
- 데이터 위반 시 액세스 비활성화:
보안 위반이 발생하는 경우 키에 대한 액세스를 비활성화하고 Snowflake 계정에서 실행 중인 모든 데이터 작업을 중지할 수 있습니다.
- 데이터 수명 주기 소유권:
고객 관리 키를 사용하여 데이터 보호 요구 사항을 비즈니스 프로세스에 따라 조정할 수 있습니다. 키에 대한 명시적 제어를 통해 생성에서 삭제에 이르는 전체 데이터 수명 주기 동안 보호가 가능합니다.
고객 관리 키에 대한 중요 요구 사항¶
고객 관리 키는 상당한 보안 이점을 제공하지만, 마스터 키를 보호하기 위해 지속적으로 준수해야 하는 중요하고 기본적인 요구 사항도 있습니다.
- 기밀성:
키를 항상 안전하게 기밀로 유지해야 합니다.
- 무결성:
부적절한 수정 또는 삭제로부터 키를 보호해야 합니다.
- 가용성:
쿼리를 실행하고 데이터에 액세스하려면 Snowflake에서 키를 계속 사용할 수 있는지 확인해야 합니다.
설계상 유효하지 않거나 사용할 수 없는 키가 있으면 Snowflake에서 유효한 키를 다시 사용할 수 있을 때까지 Snowflake 데이터 작업이 중단됩니다.
그러나 Snowflake는 네트워크 통신 장애와 같은 일반적인 문제로 인해 발생하는 일시적인 가용성 문제(최대 10분)를 처리하도록 설계되었습니다. 10분 이후에도 키를 계속 사용할 수 없으면 Snowflake 계정의 모든 데이터 작업이 완전히 중지됩니다. 키에 대한 액세스가 복원되면 데이터 작업을 다시 시작할 수 있습니다.
이러한 요구 사항을 준수하지 않으면 데이터의 일시적 액세스 불가에서부터 영구적 비활성화에 이르기까지 데이터 무결성이 크게 저하될 수 있습니다. 또한, Snowflake는 고객의 키를 유지 관리하는 과정에서 고객 조직에서 발생하는 서드 파티 문제 또는 관리상의 문제와 관련해서는 책임을 지지 않습니다.
예를 들어, 키 관리 서비스 문제로 인해 키를 사용할 수 없는 경우에는 데이터 작업에 영향을 미칩니다. 이러한 문제는 키 관리 서비스에 대해 고객와 지원 팀 사이에서 해결되어야 합니다. 유사하게, 키가 변조되거나 파괴되면 Snowflake 계정의 모든 기존 데이터는 키를 복원할 때까지 읽을 수 없습니다.
Tri-Secret Secure¶
Tri-Secret Secure는 Snowflake 데이터 보호를 위한 복합 마스터 키를 생성하기 위해 Snowflake 계정을 호스팅하는 클라우드 공급자 플랫폼에 있는 Snowflake 관리 키와 고객 관리 키를 조합입니다. 복합 마스터 키는 계정 마스터 키 역할을 하며 계층 구조의 모든 키를 래핑하지만, 복합 마스터 키는 결코 원시 데이터를 암호화하지 않습니다.
복합 마스터 키 계층 구조의 고객 관리 키가 해제되면 Snowflake가 데이터의 암호를 더 이상 해독할 수 없으므로 Snowflake의 표준 암호화보다 높은 수준의 보안 및 제어가 제공됩니다. 이러한 이중 키 암호화 모델을 통해 Snowflake의 기본 제공 사용자 인증과 함께 Tri-Secret Secure가 제공하는 3가지 수준의 데이터 보호가 가능합니다.
주의
사용자의 계정에 Tri-Secret Secure를 활성화하기 위해 Snowflake에 개입하기 전, 사용자는 이 항목의 고객이 관리하는 키 섹션에 언급된 바와 같이 키 보호에 대한 본인의 책임을 신중하게 고려해야 합니다. 질문이나 우려 사항이 있는 경우 언제라도 당사에 문의해 주십시오.
Snowflake도 자체적으로 유지 관리하는 키에 대해 동일한 책임을 진다는 점에 유의하십시오. 서비스의 모든 보안 관련 측면과 마찬가지로, Snowflake는 이러한 책임과 관련하여 최대한 주의하고 경계합니다.
Snowflake의 모든 키는 최고의 보안 인증을 획득할 수 있도록 SOC 2 타입 II, PCI-DSS, HIPAA 및 HITRUST CSF 등과 같은 엄격한 정책에 따라 유지됩니다.
기능 호환성¶
다음 기능은 Tri-Secret Secure와 호환되지 않습니다.
-
Snowflake 계정이 Tri-Secret Secure 을 사용하도록 활성화된 경우 하이브리드 테이블 을 사용할 수 없습니다. 하이브리드 테이블을 사용하기 전에 Snowflake 지원 에 문의하여 Snowflake 계정이 Tri-Secret Secure를 사용하도록 활성화되었는지 확인하십시오.
Tri-Secret Secure 활성화하기¶
Business Critical 이상의 계정에서 Snowflake Tri-Secret Secure를 활성화하려면 Snowflake 지원 에 문의하십시오.