고객 관리형 키로 데이터 암호화

적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)

Azure Cosmos DB for PostgreSQL 클러스터에 저장된 데이터는 Microsoft에서 관리하는 키로 자동으로 원활하게 암호화됩니다. 이러한 키를 서비스 관리형 키라고 합니다. Azure Cosmos DB for PostgreSQL은 Azure Storage 암호화를 사용하여 기본적으로 서비스 관리형 키를 사용하여 미사용 데이터를 암호화합니다. 필요에 따라 고객 관리형 키를 사용하여 암호화를 사용하도록 설정하여 추가 보안 계층을 추가하도록 선택할 수 있습니다.

서비스 관리형 키

Azure Cosmos DB for PostgreSQL 서비스는 미사용 데이터의 스토리지 암호화를 위해 FIPS 140-2 유효성 검사 암호화 모듈을 사용합니다. 쿼리를 실행하는 동안 생성된 백업 및 임시 파일을 포함한 모든 데이터는 디스크에 암호화됩니다. 서비스는 Azure 스토리지 암호화에 포함된 AES 256비트 암호화를 사용하며, 키는 시스템에서 관리됩니다. 스토리지 암호화는 항상 켜져 있고 해제할 수 없습니다.

고객 관리형 키

많은 조직에서는 CMK(고객 관리형 키)를 사용하여 데이터에 대한 액세스를 완전히 제어해야 합니다. Azure Cosmos DB for PostgreSQL에 대한 고객 관리형 키를 사용한 데이터 암호화를 사용하면 미사용 데이터를 보호하기 위해 사용자 고유의 키를 가져올 수 있습니다. 또한 조직이 키 및 데이터 관리에서 업무 분리를 구현할 수도 있습니다. 고객 관리 암호화를 사용하여 키 수명 주기, 사용 권한 및 작업 감사를 책임지고 완벽하게 제어할 수 있습니다.

Azure Cosmos DB for PostgreSQL에 대한 고객 관리형 키를 사용한 데이터 암호화는 서버 수준에서 설정됩니다. 백업을 포함한 데이터가 디스크에서 암호화됩니다. 이 암호화에는 쿼리를 실행하는 동안 생성된 임시 파일이 포함됩니다. 지정된 클러스터의 경우 KEK(키 암호화 키)라는 고객 관리형 키를 사용하여 서비스의 DEK(데이터 암호화 키)를 암호화합니다. KEK는 고객이 소유하고 관리하는 Azure Key Vault 인스턴스에 저장되는 비대칭 키입니다.

설명
DEK(데이터 암호화 키) 데이터 암호화 키는 데이터의 파티션이나 블록을 암호화하는 데 사용되는 대칭 AES256 키입니다. 서로 다른 키로 각 데이터 블록을 암호화하면 암호 분석 공격이 더욱 어려워집니다. 특정 블록을 암호화하고 암호 해독하는 리소스 공급자 또는 애플리케이션에는 DEK에 대한 액세스가 필요합니다. DEK를 새 키로 바꾸면 연결된 블록의 데이터만 새 키로 다시 암호화해야 합니다.
KEK(키 암호화 키) 키 암호화 키는 DEK를 암호화하는 데 사용되는 암호화 키입니다. 키 자격 증명 모음을 벗어나지 않는 KEK를 사용하면 DEK 자체를 암호화하고 제어할 수 있습니다. KEK에 액세스할 수 있는 엔터티와 DEK가 필요한 엔터티가 서로 다를 수 있습니다. DEK를 암호 해독하려면 KEK가 필요하므로 KEK는 사실상 단일 지점이며 KEK를 삭제하면 DEK도 효과적으로 삭제됩니다.

참고 항목

Azure Key Vault는 클라우드 기반 키 관리 시스템입니다. 고가용성이며, 선택적으로 FIPS 140의 검증된 HSM(하드웨어 보안 모듈)에서 지원되는 RSA 암호화 키에 대한 확장성 있고 안전한 스토리지를 제공합니다. 키 자격 증명 모음은 저장된 키에 대한 직접 액세스를 허용하지 않지만 인증된 엔터티에 암호화 및 암호 해독 서비스를 제공합니다. 키 자격 증명 모음은 키를 생성하거나 가져오거나 온-프레미스 HSM 장치에서 전송할 수 있습니다.

KEK로 암호화된 DEK는 별도로 저장됩니다. KEK에 대한 액세스 권한이 있는 엔터티만 이러한 DEK를 암호 해독할 수 있습니다. 자세한 내용은 미사용 데이터 암호화의 보안을 참조하세요.

고객 관리형 키를 사용하는 데이터 암호화의 작동 방식

클러스터가 DEK 암호화를 위해 Key Vault에 저장된 고객 관리형 키를 사용하도록 Key Vault 관리자는 서버에 다음과 같은 액세스 권한을 부여합니다.

설명
get 키 자격 증명 모음에서 키의 공개 파트 및 속성을 검색할 수 있습니다.
wrapKey DEK의 암호화를 사용하도록 설정합니다. 암호화된 DEK는 Azure Cosmos DB for PostgreSQL에 저장됩니다.
unwrapKey DEK의 암호 해독을 사용하도록 설정합니다. Azure Cosmos DB for PostgreSQL은 데이터를 암호화/암호 해독하기 위해 암호 해독된 DEK가 필요합니다.

또한 키 자격 증명 모음 관리자는 Key Vault 감사 이벤트 로깅을 사용하도록 설정하여 나중에 감사할 수도 있습니다. Azure Cosmos DB for PostgreSQL 클러스터가 키 자격 증명 모음에 저장된 고객 관리형 키를 사용하도록 구성된 경우 클러스터는 암호화를 위해 DEK를 키 자격 증명 모음으로 보냅니다. Key Vault는 암호화된 DEK를 반환하고, 암호화된 DEK는 사용자 데이터베이스에 저장됩니다. 마찬가지로, 서버는 암호화된 DEK를 암호 해독해야 하는 상황이 되면 암호화된 DEK를 키 자격 증명 모음으로 보냅니다. 로깅 기능이 사용되는 경우 감사자는 Azure Monitor를 사용하여 Key Vault 감사 이벤트 로그를 검토할 수 있습니다.

Screenshot of architecture of data enrcryption with customer-managed keys.

이점

Azure Cosmos DB for PostgreSQL에 대한 고객 관리형 키를 사용한 데이터 암호화는 다음과 같은 이점을 제공합니다.

  • 키를 제거하고 데이터베이스에 액세스할 수 없게 만드는 기능으로 데이터 액세스를 완벽하게 제어합니다.
  • 특정 회사 정책에 맞춰 키를 회전하는 기능을 포함하여 키 수명 주기를 완벽하게 제어합니다.
  • Azure Key Vault의 키를 중앙에서 관리 및 구성
  • 보안 책임자, 데이터베이스 관리자 및 시스템 관리자 간의 업무 분리를 구현하는 기능.
  • 암호화를 사용하도록 설정해도 고객 관리형 키의 사용 여부에 관계없이 추가 성능 효과가 없습니다. Azure Cosmos DB for PostgreSQL은 고객 관리형 및 서비스 관리형 키 시나리오 모두에서 데이터 암호화를 위해 Azure Storage를 사용합니다.

다음 단계