Azure Database for PostgreSQL - 유연한 서버에서 고객 관리형 키를 사용한 데이터 암호화
적용 대상: Azure Database for PostgreSQL - 유연한 서버
Azure Database for PostgreSQL 유연한 서버에서는 Azure Storage 암호화를 통해 기본적으로 Microsoft 관리형 키로 미사용 데이터를 암호화합니다. Azure Database for PostgreSQL 유연한 서버 사용자의 경우 이는 SQL Server와 같은 다른 데이터베이스의 투명한 데이터 암호화와 유사합니다.
많은 조직에서는 CMK(고객 관리형 키)를 사용하여 데이터에 대한 액세스를 완전히 제어해야 합니다. Azure Database for PostgreSQL 유연한 서버용 CMK를 사용한 데이터 암호화를 통해 미사용 데이터 보호를 위해 BYOK(Bring Your Own Key)를 사용할 수 있습니다. 또한 조직이 키 및 데이터 관리에서 업무 분리를 구현할 수도 있습니다. CMK 암호화를 사용하면 키 수명 주기, 키 사용 권한 및 키 작업 감사를 책임지고 완전히 제어할 수 있습니다.
Azure Database for PostgreSQL 유연한 서버에 대한 CMK를 사용한 데이터 암호화는 서버 수준에서 설정됩니다. 특정 서버의 경우 KEK(키 암호화 키)라는 CMK 형식을 사용하여 서비스의 DEK(데이터 암호화 키)를 암호화합니다. KEK는 고객이 소유하고 관리하는 Azure Key Vault 인스턴스에 저장되는 비대칭 키입니다. KEK 및 DEK에 대해서는 이 문서의 뒷부분에서 자세히 설명합니다.
Key Vault는 클라우드 기반의 외부 키 관리 시스템입니다. 가용성이 우수하며 RSA 암호화 키에 대한 안전하고 확장성 있는 스토리지를 제공합니다. FIPS 140 유효성 검사를 통과한 HSM(하드웨어 보안 모듈)을 선택 사항으로 지원합니다. 저장된 키에 대한 직접 액세스를 허용하지 않지만 인증된 엔터티에 암호화 및 암호 해독 서비스를 제공합니다. Key Vault는 키를 생성하고, 가져오고, 온-프레미스 HSM 디바이스에서 전송되도록 할 수 있습니다.
이점
Azure Database for PostgreSQL 유연한 서버용 CMK를 사용한 데이터 암호화는 다음과 같은 이점을 제공합니다.
데이터 액세스를 완전히 제어할 수 있습니다. 키를 제거하여 데이터베이스에 액세스할 수 없게 만들 수 있습니다.
회사 정책에 맞춰 키를 회전하는 등 키의 수명 주기를 완전히 제어할 수 있습니다.
Key Vault에서 키를 중앙에서 관리하고 구성할 수 있습니다.
PostgreSQL은 두 시나리오 모두에서 데이터 암호화를 위해 Azure Storage 계층을 사용하므로 암호화를 켜도 CMK 유무에 관계없이 성능에 영향을 주지 않습니다. 유일한 차이점은 CMK를 사용할 때 Azure Storage 암호화 키(실제 데이터 암호화를 수행함)가 암호화된다는 것입니다.
보안 담당자, 데이터베이스 관리자 및 시스템 관리자 간의 업무 분리를 구현할 수 있습니다.
용어
DEK(데이터 암호화 키): 파티션 또는 데이터 블록을 암호화하는 데 사용되는 대칭 AES 256 키입니다. 서로 다른 키로 각 데이터 블록을 암호화하면 암호 분석 공격이 더욱 어려워집니다. 특정 블록을 암호화하고 해독하는 리소스 공급자 또는 애플리케이션 인스턴스는 DEK에 액세스해야 합니다. DEK를 새 키로 바꾸면 연결된 블록의 데이터만 새 키로 다시 암호화해야 합니다.
KEK(키 암호화 키): DEK를 암호화하는 데 사용되는 암호화 키입니다. Key Vault를 절대 벗어나지 않는 KEK를 사용하면 DEK 자체를 암호화하고 제어할 수 있습니다. KEK에 액세스할 수 있는 엔터티는 DEK가 필요한 엔터티와 다를 수 있습니다. DEK를 해독하려면 KEK가 필요하므로 KEK는 실질적으로 KEK를 삭제함으로써 DEK를 삭제할 수 있는 단일 지점입니다.
KEK로 암호화된 DEK는 별도로 저장됩니다. KEK에 액세스할 수 있는 엔터티만 이러한 DEK를 해독할 수 있습니다. 자세한 내용은 저장 데이터 암호화의 보안을 참조하세요.
CMK를 사용한 데이터 암호화 작동 방식
Microsoft Entra 사용자 할당 관리 ID는 CMK를 연결하고 검색하는 데 사용됩니다. ID를 만들려면 이 자습서을 따릅니다.
PostgreSQL 서버가 DEK 암호화를 위해 Key Vault에 저장된 CMK를 사용하도록 Key Vault 관리자는 만들어진 관리 ID에 다음과 같은 액세스 권한을 부여합니다.
get: Key Vault에서 키의 공용 부분과 속성을 검색합니다.
list: Key Vault의 키를 나열하고 반복하는 데 사용됩니다.
wrapKey: DEK 암호화용입니다. 암호화된 DEK는 Azure Database for PostgreSQL에 저장됩니다.
unwrapKey: DEK를 복호화하는 데 사용됩니다. Azure Database for PostgreSQL에서 데이터를 암호화 및 암호 해독하려면 암호 해독된 DEK가 필요합니다.
또한 Key Vault 관리자는 Key Vault 감사 이벤트 로깅을 사용하도록 설정하여 나중에 감사할 수도 있습니다.
위에서 설명한 대로 액세스 권한 할당 대신 Key Vault 암호화 서비스 암호화 사용자 역할을 사용하여 새 Azure RBAC 역할 할당을 만들 수 있습니다.
Important
Key Vault에 액세스하기 위해 관리 ID에 대한 이전 액세스 권한 또는 RBAC 할당을 제공하지 않으면 암호화 키를 가져오지 못하고 CMK 기능을 설정하지 못할 수 있습니다.
Key Vault에 저장된 CMK를 사용하도록 서버를 구성하면 서버는 암호화를 위해 DEK를 Key Vault로 보냅니다. Key Vault는 사용자 데이터베이스에 저장된 암호화된 DEK를 반환합니다. 필요한 경우 서버는 암호 해독을 위해 보호된 DEK를 Key Vault로 보냅니다. 로깅이 켜져 있는 경우 감사자는 Azure Monitor를 사용하여 Key Vault 감사 이벤트 로그를 검토할 수 있습니다.
Azure Database for PostgreSQL 유연한 서버에 대한 데이터 암호화를 구성하기 위한 요구 사항
Key Vault를 구성하기 위한 요구 사항은 다음과 같습니다.
Key Vault 및 Azure Database for PostgreSQL 유연한 서버는 동일한 Microsoft Entra 테넌트에 속해 있어야 합니다. 테넌트 간 Key Vault 및 서버 상호 작용은 지원되지 않습니다. 나중에 Key Vault 리소스를 이동하려면 데이터 암호화를 다시 구성해야 합니다.
Key Vault의 삭제된 자격 증명 모음 보존 일수 설정은 90이어야 합니다. 기존 Key Vault 인스턴스를 더 낮은 숫자로 구성한 경우 인스턴스를 만든 후에는 수정할 수 없으므로 새 Key Vault 인스턴스를 만들어야 합니다.
Key Vault의 삭제된 자격 증명 모음 보존 일수 구성을 90일로 설정하는 것이 좋습니다. 기존 Key Vault 인스턴스를 더 낮은 숫자로 구성한 경우에도 여전히 유효합니다. 그러나 이 설정을 수정하고 값을 늘리려면 새 Key Vault 인스턴스를 만들어야 합니다. 인스턴스가 만들어지면 해당 구성을 수정할 수 없습니다.
키 또는 Key Vault 인스턴스가 실수로 삭제된 경우 데이터 손실을 방지하려면 Key Vault에서 일시 삭제 기능을 사용하도록 설정합니다. Key Vault는 사용자가 그 동안 리소스를 복구하거나 제거하지 않는 한 일시 삭제된 리소스를 90일 동안 보존합니다. 복구 및 제거 작업에는 키 자격 증명 모음 액세스 정책과 연결된 고유 권한이 있습니다.
일시 삭제 기능은 기본적으로 꺼져 있지만 PowerShell 또는 Azure CLI를 통해 켤 수 있습니다. Azure Portal을 통해 켤 수 없습니다.
보호 제거를 사용 설정하여 삭제된 자격 증명 모음 및 자격 증명 모음 개체에 필수 보존 기간을 적용합니다.
고유한 관리 ID를 사용하여 get, list, wrapKey 및 unwrapKey 권한을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에 키 자격 증명 모음에 대한 액세스 권한을 부여합니다. 또는 관리 ID에 대한 Key Vault 암호화 서비스 암호화 사용자 역할을 사용하여 새 Azure RBAC 역할 할당을 만듭니다.
Azure Database for PostgreSQL 유연한 서버에서 CMK를 구성하기 위한 요구 사항은 다음과 같습니다.
DEK 암호화에 사용되는 CMK는 비대칭, RSA 또는 RSA-HSM일 수 있습니다. 키 크기로는 2,048, 3,072 및 4,096을 지원합니다.
키 활성화 날짜 및 시간(설정된 경우)은 과거여야 합니다. 만료 날짜 및 시간(설정된 경우)은 미래여야 합니다.
키가
*Enabled-
상태여야 합니다.기존 키를 Key Vault로 가져오는 경우 지원되는 파일 형식(
.pfx
,.byok
또는.backup
)으로 제공합니다.
권장 사항
데이터 암호화에 CMK를 사용하는 경우 Key Vault 구성에 대한 권장 사항은 다음과 같습니다.
Key Vault에 리소스 잠금을 설정하여 이 중요한 리소스를 삭제할 수 있는 사용자를 제어하고 실수로 삭제되거나 무단으로 삭제되는 것을 방지합니다.
모든 암호화 키에서 감사 및 보고를 사용합니다. Key Vault는 다른 SIEM(보안 정보 및 이벤트 관리) 도구에 쉽게 삽입되는 로그를 제공합니다. Azure Monitor 로그는 이미 통합된 서비스의 한 예입니다.
공용 액세스 사용 안 함 및 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 무시하도록 허용을 선택하여 Key Vault를 잠급니다.
참고 항목
공용 액세스 사용 중지 및 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 무시하도록 허용을 선택한 후, 포털을 통해 Key Vault를 관리하기 위해 공용 액세스를 사용하려고 하면 다음과 유사한 오류가 발생할 수 있습니다. "네트워크 액세스 제어를 사용하도록 설정했습니다. 허용된 네트워크만 이 키 자격 증명 모음에 액세스할 수 있습니다." 이 오류는 CMK 설정 중에 키를 제공하거나 서버 작업 중에 Key Vault에서 키를 가져오는 기능을 배제하지 않습니다.
CMK 구성에 대한 권장 사항은 다음과 같습니다.
CMK 복사본을 안전한 곳에 보관하거나 에스크로 서비스에 에스크로합니다.
Key Vault가 키를 만드는 경우 키를 처음 사용하기 전에 키 백업을 만듭니다. 백업을 Key Vault로 복원하는 것만 가능합니다.
Key Vault에서 실수로 인한 키 액세스 해지
Key Vault에 대한 충분한 액세스 권한이 있는 사용자는 다음과 같은 방법으로 실수로 키에 대한 서버 액세스 권한을 해제할 수 있습니다.
Key Vault에서 키를 검색하는 데 사용되는 ID에서 list, get, wrapKey 및 unwrapKey 권한을 취소합니다.
키를 삭제합니다.
Key Vault 인스턴스를 삭제합니다.
Key Vault 방화벽 규칙을 변경합니다.
Microsoft Entra ID에서 서버의 관리 ID를 삭제합니다.
Key Vault에서 CMK 모니터링
데이터베이스 상태를 모니터링하고 투명한 데이터 암호화 보호기에 대한 액세스 손실에 대한 경고를 켜려면 다음 Azure 기능을 구성합니다.
- 리소스 상태: CMK에 대한 액세스가 손실된 데이터베이스는 데이터베이스에 대한 첫 번째 연결이 거부된 후 액세스할 수 없음으로 표시됩니다.
- 활동 로그: 고객 관리 Key Vault 인스턴스에서 CMK에 대한 액세스가 실패하면 활동 로그에 항목이 추가됩니다. 이러한 이벤트에 대한 경고를 생성하면 최대한 신속하게 액세스를 복구할 수 있습니다.
- 작업 그룹: 기본 설정에 따라 알림 및 경고를 받도록 이 그룹을 정의합니다.
Key Vault에서 고객의 관리형 키로 복원
Azure Database for PostgreSQL - 유연한 서버가 Key Vault에 저장된 고객의 관리형 키로 암호화되면 그 이후 새로 만들어진 모든 서버 복사본도 암호화됩니다. PITR(특정 시점 복원) 작업이나 읽기 복제본을 통해 이 새 복사본을 만들 수 있습니다.
읽기 복제본을 복원하거나 만드는 동안 고객 관리되는 데이터 암호화를 설정하는 경우 기본 서버와 복원/복제 서버에서 다음 단계를 수행하여 문제를 방지할 수 있습니다.
기본 Azure Database for PostgreSQL 유연한 서버 인스턴스에서 복원 프로세스 또는 읽기 복제본을 만드는 프로세스를 시작합니다.
복원된 서버 또는 복제 서버의 데이터 암호화 설정에서 Key Vault에 액세스하는 데 사용되는 CMK 및/또는 Microsoft Entra ID를 변경할 수 있습니다. 새로 만들어진 서버에 Key Vault에 저장된 키에 대한 list, wrap 및 unwrap 권한이 있는지 확인합니다.
복원 후 원래 키를 철회하지 마세요. 현재로서는 CMK 지원 서버를 다른 서버로 복원한 후 키 해지를 지원하지 않습니다.
관리형 HSM
HSM(하드웨어 보안 모듈)은 데이터 암호화, 데이터 암호 해독, 디지털 서명 만들기 및 디지털 인증서 만들기에 사용되는 키를 만들기, 보안 및 관리하여 암호화 프로세스를 보호하는 변조 방지 하드웨어 디바이스입니다. HSM은 FIPS 140 및 공통 조건을 비롯한 최고 보안 표준으로 테스트하고 유효성 검사하여 인증됩니다.
Azure Key Vault 관리되는 HSM은 완전 관리형, 고가용성, 단일 테넌트, 표준 규격 클라우드 서비스입니다. 이를 사용하면 FIPS 140-3 인증 HSM을 통해 클라우드 애플리케이션의 암호화 키를 보호할 수 있습니다.
CMK 기능을 사용하여 Azure Portal에서 새로운 Azure Database for PostgreSQL 유연한 서버 인스턴스를 만드는 경우, Azure Key Vault 대신 Azure Key Vault 관리되는 HSM을 키 저장소로 선택할 수 있습니다. 사용자 정의 ID 및 권한 측면에서 전제 사용 약관은 Azure Key Vault와 동일합니다(이 문서 앞부분에 나열됨). 관리되는 HSM 인스턴스를 만드는 방법, 공유 Key Vault 기반 인증서 저장소와의 장점과 차이점, 관리되는 HSM으로 키를 가져오는 방법에 대한 자세한 내용은 Azure Key Vault 관리되는 HSM이란?을 참조하세요.
액세스할 수 없는 CMK 조건
Key Vault에서 CMK를 사용하는 데이터 암호화를 구성하는 경우 서버에서 온라인 상태를 유지하려면 이 키에 지속적으로 액세스해야 합니다. 서버가 Key Vault의 CMK에 대한 액세스를 잃으면 서버는 10분 이내에 모든 연결을 거부하기 시작합니다. 서버에서 해당 오류 메시지를 발행하고, 서버 상태를 액세스할 수 없음으로 변경합니다.
서버 상태가 액세스할 수 없음이 되는 몇 가지 이유는 다음과 같습니다.
- Key Vault 인스턴스를 삭제하면 Azure Database for PostgreSQL 유연한 서버 인스턴스가 키에 액세스할 수 없으며 액세스할 수 없음 상태로 전환됩니다. 서버를 사용 가능하게 만들려면 Key Vault 인스턴스를 복구하고 데이터 암호화를 다시 유효성 검사합니다.
- Key Vault에서 키를 삭제하면 Azure Database for PostgreSQL 유연한 서버 인스턴스가 키에 액세스할 수 없으며 액세스할 수 없음 상태로 전환됩니다. 서버를 사용 가능 상태로 만들려면 키를 복구하고 데이터 암호화의 유효성을 다시 검사하세요.
- Key Vault에서 키를 검색하는 데 사용되는 관리 ID를 Microsoft Entra ID에서 삭제하거나 Key Vault 암호화 서비스 암호화 사용자 역할로 Azure RBAC 역할 할당을 삭제하는 경우 . Azure Database for PostgreSQL 유연한 서버 인스턴스는 키에 액세스할 수 없으며 액세스할 수 없음 상태로 전환됩니다. 서버를 사용 가능하게 만들려면 ID를 복구하고 데이터 암호화의 유효성을 다시 검사합니다.
- 관리 ID에서 Key Vault list, get, wrapKey 및 unwrapKey 액세스 정책을 철회하는 경우 Key Vault에서 키를 검색하는 데 사용되는 Azure Database for PostgreSQL 유연한 서버 인스턴스는 키에 액세스할 수 없으며 액세스할 수 없음 상태로 전환됩니다. Key Vault의 ID에 필수 액세스 정책을 추가합니다.
- 지나치게 제한적인 Key Vault 방화벽 규칙을 설정하면 Azure Database for PostgreSQL 유연한 서버가 Key Vault와 통신하여 키를 검색할 수 없습니다. Key Vault 방화벽을 구성할 때 신뢰할 수 있는 Microsoft 서비스가 방화벽을 무시하도록 허용하는 옵션을 선택해야 합니다.
참고 항목
키가 사용하지 않도록 설정되거나, 삭제되거나, 만료되거나, 연결할 수 없는 경우, 앞서 설명한 대로 해당 키를 통해 데이터가 암호화된 서버는 액세스할 수 없게 됩니다. 키를 다시 사용하도록 설정하거나 새 키를 할당할 때까지 서버를 사용할 수 없습니다.
일반적으로 키가 사용 중지, 삭제, 만료되거나 연결할 수 없게 된 후 60분 이내에 서버에 액세스할 수 없게 됩니다. 키를 사용할 수 있게 된 후 서버가 다시 액세스 가능으로 될 때까지 최대 60분이 걸릴 수 있습니다.
관리 ID 삭제에서 복구
드문 경우지만, CMK가 AKV(Azure Key Vault)에서 키를 검색하는 데 사용하는 Entra ID 관리 ID가 Microsoft Entra ID에서 삭제되는 경우 다음과 같이 복구하는 것이 좋습니다.
- ID 복구 또는 새로운 관리 Entra ID ID 만들기
- 이 ID에 AKV(Azure Key Vault)의 키 작업에 대한 적절한 권한이 있는지 확인합니다. 키 자격 증명 모음의 권한 모델(액세스 정책 또는 Azure RBAC)에 따라 다르지만, 키 자격 증명 모음에 대한 액세스 정책(list, get, wrapKey 및 unwrapKey 액세스 정책)을 만들거나 키 자격 증명 모음 암호화 서비스 암호화 사용자 역할로 새 Azure RBAC(역할 기반 액세스 제어) 역할 할당을 만들어 키 자격 증명 모음 액세스 권한을 부여할 수 있습니다.
- Azure Database for PostgreSQL - 유연한 서버 데이터 암호화 Azure Portal 화면에서 새 ID 또는 복구된 ID를 사용하여 CMK 데이터 암호화의 유효성을 다시 검사합니다.
Important
삭제된 ID와 동일한 이름으로 새 Entra ID ID를 만드는 것만으로는 관리 ID 삭제가 복구되지 않습니다.
CMK 및 지역 중복 비즈니스 연속성 기능과 함께 데이터 암호화 사용
Azure Database for PostgreSQL 유연한 서버는 복제본 및 지역 중복 백업과 같은 고급 데이터 복구 기능을 지원합니다. 다음은 CMK를 사용한 데이터 암호화에 대한 기본 요구 사항 외에 CMK를 사용한 데이터 암호화 설정에 대한 요구 사항과 기능입니다.
- 지역 중복 백업 암호화 키는 지역 중복 백업이 저장된 지역의 Key Vault 인스턴스에서 만들어야 합니다.
- 지역 중복 백업 지원 CMK 서버를 지원하기 위한 Azure Resource Manager REST API 버전은 '2022-11-01-preview'입니다. Azure Resource Manager 템플릿을 사용하여 CMK 암호화와 지역 중복 백업 기능을 모두 사용하는 서버 만들기를 자동화하려면 이 API 버전을 사용합니다.
- 동일한 사용자 관리 ID를 사용하여 주 데이터베이스의 Key Vault 인스턴스와 지역 중복 백업을 위한 암호화 키를 보유하는 Key Vault 인스턴스를 인증할 수 없습니다. 지역 복원력을 유지하려면 지역 중복 백업과 동일한 지역에 사용자 관리 ID를 만드는 것이 좋습니다.
- 만드는 동안 CMK로 암호화되도록 읽기 복제본 데이터베이스를 설정하는 경우 해당 암호화 키는 읽기 복제본 데이터베이스가 있는 지역의 Key Vault 인스턴스에 있어야 합니다. 이 Key Vault 인스턴스에 대해 인증하기 위한 사용자 할당 ID는 동일한 지역에서 만들어져야 합니다.
제한 사항
Azure Database for PostgreSQL 유연한 서버에서 CMK를 구성하기 위한 현재 제한 사항은 다음과 같습니다.
CMK 암호화는 기존 Azure Database for PostgreSQL 유연한 서버 인스턴스에 대한 업데이트가 아닌 새 서버를 만드는 동안에만 구성할 수 있습니다. 대신 CMK 암호화를 사용하여 새 서버에 PITR 백업을 복원할 수 있습니다.
CMK 암호화를 구성한 후에는 제거할 수 없습니다. 이 기능을 제거하려는 경우 유일한 방법은 서버를 CMK가 아닌 서버로 복원하는 것입니다.
Azure Key Vault 관리형 HSM의 인스턴스 또는 암호화 키를 저장하려는 Azure Key Vault 인스턴스는 유연한 서버를 위한 Azure Database 인스턴스가 만들어지는 동일한 지역에 있어야 합니다.
다음 단계
- Microsoft Entra Domain Services에 대해 알아봅니다.