Azure Database for MySQL에서 고객 관리 키를 사용한 데이터 암호화를 활용하면 저장된 데이터를 보호하기 위해 자체 키(BYOK)를 사용하여 키와 데이터 관리의 책임 분리를 구현할 수 있습니다. CMK(고객 관리형 키)를 사용하는 경우 다음을 제어합니다.
- 키 만들기, 업로드, 회전 및 삭제를 포함한 주요 수명 주기 관리
- 키 사용 권한
- 키에 대한 검사 작업
CMK(고객 관리형 키)의 이점
고객 관리형 키를 사용한 Azure Database for MySQL 데이터 암호화는 다음과 같은 이점을 제공합니다.
- 키를 제거하고 데이터베이스에 액세스할 수 없게 하여 데이터 액세스를 완전히 제어할 수 있습니다.
- 회사 정책에 맞게 키 회전을 포함하여 키 수명 주기를 완전히 제어할 수 있습니다.
- Azure Key Vault 또는 관리형 HSM에서 키를 중앙에서 관리하고 구성할 수 있습니다.
- 보안 책임자, DBA 및 시스템 관리자 간에 업무 분리를 구현할 수 있습니다.
고객 관리형 키를 사용하는 데이터 암호화의 작동 방식
Microsoft Entra ID의 관리 ID는 서비스에 클라이언트를 인증하는 보다 안전한 방법을 제공합니다. CMK 암호화는 Azure Database for MySQL 서버의 관리 ID를 사용하여 CMK를 저장하는 Azure Key Vault에 연결합니다. Azure Database for MySQL 현재 Key Vault 액세스하기 위해 UAMI(사용자 할당 관리 ID)만 지원합니다. 자세한 내용은 Azure의 관리 ID 유형을 참조하세요.
Azure Database for MySQL CMK를 구성하려면 UAMI를 서버에 연결하고 사용할 Azure Key Vault 및 키를 지정합니다.
UAMI는 키 자격 증명 모음에 다음 액세스 권한이 필요합니다.
- 가져오기: 키 자격 증명 모음에서 키의 공개 부분 및 속성을 검색합니다.
- 목록: Key Vault 저장된 키의 버전을 나열합니다.
- 래핑 키: DEK를 암호화합니다. 암호화된 DEK는 Azure Database for MySQL 유연한 서버 인스턴스에 저장됩니다.
- 래프 해제 키: DEK의 암호를 해독합니다. Azure Database for MySQL 데이터를 암호화하거나 암호 해독하기 위해 해독된 DEK가 필요합니다.
Azure RBAC를 사용하는 경우 개별 액세스 대신 UAMI에 역할을 할당합니다.
-
Key Vault Crypto Service 암호화 사용자 또는 다음 권한이 있는 역할.
- Microsoft.KeyVault/vaults/keys/wrap/action
- Microsoft.KeyVault/vaults/keys/unwrap/action
- Microsoft.KeyVault/vaults/keys/read(예: "Key Vault Crypto Service Encryption User")
- 관리되는 HSM의 경우 관리되는 HSM Crypto Service 암호화 사용자 역할을 할당합니다.
서버 수준에서 CMK를 사용하여 데이터 암호화를 설정합니다. 지정된 서버의 경우 KEK(키 암호화 키)라는 CMK를 사용하여 서비스의 DEK(데이터 암호화 키)를 암호화합니다. KEK는 고객이 소유하고 관리하는 Azure Key Vault 인스턴스에 저장되는 비대칭 키입니다. Key Vault는 가용성이 우수하며 RSA 암호화 키에 대해 안전하고 확장성 있는 스토리지입니다. FIPS 140 유효성 검사를 통과한 HSM(하드웨어 보안 모듈)을 선택 사항으로 지원합니다. Key Vault 저장된 키에 대한 직접 액세스를 허용하지 않고, 대신 인증된 엔터티에 키를 사용하여 암호화 및 암호 해독 서비스를 제공합니다. 키 자격 증명 모음은 키를 생성하거나 온-프레미스 HSM 장치에서 키 자격 증명 모음으로 키를 전송할 수 있습니다.
키 자격 증명 모음에 저장된 CMK를 사용하도록 유연한 서버를 구성하면 해당 서버에서 암호화를 위해 DEK를 키 자격 증명 모음에 보냅니다. Key Vault는 사용자 데이터베이스에 저장된 암호화된 DEK를 반환합니다. 마찬가지로 유연한 서버는 필요할 때 암호 해독을 위해 보호된 DEK를 키 자격 증명 모음에 보냅니다.
로깅을 사용하도록 설정하면 감사자가 Azure Monitor 사용하여 Key Vault 감사 이벤트 로그를 검토할 수 있습니다. Key Vault 감사 이벤트 로깅을 사용하도록 설정하려면 Key Vault 인사이트를 사용하여 키 자격 증명 모음 서비스 모니터링을 참조하세요.
메모
권한 변경이 키 자격 증명 모음에 영향을 미치는 데 최대 10분이 걸릴 수 있습니다.
Azure Database for MySQL 데이터 암호화를 구성하기 위한 요구 사항
Key Vault 또는 관리되는 HSM을 구성하려면 먼저 다음 요구 사항을 해결해야 합니다.
- Key Vault 및 Azure Database for MySQL 유연한 서버 인스턴스는 동일한 Microsoft Entra 테넌트에 속해야 합니다. 테넌트 간 Key Vault 및 유연한 서버 상호 작용이 지원되어야 합니다. 구성을 수행한 후 Key Vault 리소스를 이동하는 경우 데이터 암호화를 다시 구성해야 합니다.
- Key Vault 및 Azure Database for MySQL 유연한 서버 인스턴스는 동일한 지역에 있어야 합니다.
- 키 관리 시스템에서 소프트 삭제 기능을 활성화하세요.
- 삭제 방지를 활성화하세요.
- 보존 기간을 90일로 설정합니다.
- 복구 및 제거 작업에는 Key Vault 액세스 정책에서 자체 권한이 있습니다.
- 일시 삭제 기능은 기본적으로 해제되어 있습니다.
CMK를 구성하려면 먼저 다음 요구 사항을 해결해야 합니다.
- DEK를 암호화하는 데 사용되는 고객 관리 키는 비대칭 키인 RSA\RSA-HSM(프리미엄 SKU가 포함된 자격 증명 모음) 2048, 3072 또는 4096만 사용할 수 있습니다.
- 키 활성화 날짜(설정된 경우)는 과거의 날짜와 시간이어야 합니다. 만료 날짜가 설정되지 않았습니다.
- 키가 사용 상태여야 합니다.
- 키에는 보존 기간이 90일로 설정된 일시 삭제가 있어야 합니다. 이 설정은 필요한 키 특성을
recoveryLevelRecoverable암시적으로 설정합니다. - 키에 제거 보호를 사용하도록 설정해야 합니다.
-
기존 키를 키 자격 증명 모음으로 가져올 때, 지원되는 파일 형식(
.pfx,.byok,.backup)으로 제공해야 합니다.
메모
데이터 암호화를 구성하는 방법에 대한 자세한 단계별 지침은 Azure Portal을 사용하여 Azure Database for MySQL에 대한 데이터 암호화 또는 Azure CLI를 사용하는 Azure Database for MySQL - 유연한 서버에 대한 데이터 암호화를 참조하세요.
데이터 암호화 구성에 대한 권장 사항
고객 관리형 키로 데이터 암호화를 사용하도록 Key Vault 또는 관리형 HSM을 구성하는 경우 다음 권장 사항을 염두에 두세요.
- 중요한 리소스를 삭제할 수 있는 사용자를 제어하고 실수로 인한 삭제나 무단 삭제를 방지할 수 있도록 Key Vault에 리소스 잠금을 설정합니다.
- 모든 암호화 키에서 감사 및 보고를 사용합니다. Key Vault는 다른 보안 정보 및 이벤트 관리 도구에 쉽게 삽입할 수 있는 로그를 제공합니다.
- 고객 관리형 키의 복사본을 안전한 장소에 보관하거나 에스크로 서비스로 에스크로합니다.
- Key Vault에서 키를 생성하면 키를 처음으로 사용하기 전에 키 백업을 만듭니다. 백업을 Key Vault로 복원하는 것만 가능합니다. 백업 명령에 대한 자세한 내용은 Backup-AzKeyVaultKey를 참조하세요.
메모
사용하는 키 자격 증명 저장소는 데이터베이스 서버와 동일한 지역에 있어야 합니다.
고객 관리형 키에 액세스할 수 없는 조건
Key Vault CMK를 사용하여 데이터 암호화를 구성하는 경우 서버는 온라인 상태를 유지하기 위해 이 키에 지속적으로 액세스해야 합니다. 유연한 서버에서 Key Vault의 고객 관리형 키에 대한 액세스 권한을 상실하면 해당 서버에서 10분 이내에 모든 연결을 거부하기 시작합니다. 유연한 서버에서 해당 오류 메시지를 발급하고, 서버 상태를 '액세스할 수 없음'으로 변경합니다. 서버는 여러 가지 이유로 이 상태에 도달할 수 있습니다.
키 자격 증명 모음을 삭제하면 Azure Database for MySQL 플렉시블 서버 인스턴스가 키에 액세스할 수 없게 되며 Inaccessible 상태로 전환됩니다. 서버 인스턴스 Available를 만들려면:
- 키 자격 증명 모음을 복구합니다.
- 데이터 암호화의 유효성을 다시 검사합니다.
키 자격 증명 모음에서 키를 삭제하면 Azure Database for MySQL 플렉시블 서버 인스턴스가 해당 키에 액세스할 수 없게 되고 Inaccessible 상태로 이동합니다. 서버 인스턴스 Available를 만들려면:
- 키를 복구 합니다.
- 데이터 암호화의 유효성을 다시 검사합니다.
메모
키가 만료되더라도 서버는 가동 중지 시간을 방지하기 위해 의도적으로 액세스할 수 있습니다.
Key Vault에서 실수로 인한 키 액세스 해지
Key Vault 충분한 액세스 권한이 있는 사용자는 다음을 수행하여 실수로 키에 대한 유연한 서버 액세스를 사용하지 않도록 설정할 수 있습니다.
- 서버에서 키 자격 증명 모음 키 가져오기, 목록, 래핑 키 및 키 래핑 해제 권한 취소
- 키 삭제
- 키 자격 증명 모음 삭제
- 키 자격 증명 모음의 방화벽 규칙 변경
- Microsoft Entra ID에서 고객 관리형 키를 통한 유연한 서버에 대한 암호화에 사용되는 사용자 관리 ID 삭제
Key Vault에서 고객 관리 키를 모니터링하세요.
데이터베이스 상태를 모니터링하고 투명한 데이터 암호화 보호기 액세스 손실에 대한 경고를 사용하도록 설정하려면 다음 Azure 기능을 구성합니다.
- 활동 로그: 고객 관리 Key Vault에서 고객 키에 대한 접근이 실패하면 활동 로그에 항목이 추가됩니다. 이러한 이벤트에 대한 경고를 만들면 액세스를 최대한 빨리 복구할 수 있습니다.
- 작업 그룹: 이 그룹을 정의하여 기본 설정에 따라 알림을 보냅니다.
Key Vault의 고객 관리형 키를 사용하는 복제본
Key Vault 저장된 고객의 관리형 키를 사용하여 Azure Database for MySQL 유연한 서버 인스턴스를 암호화하면 새로 만든 서버 복사본도 암호화됩니다. 이미 복제본이 있는 고객 관리형 키로 Azure Database for MySQL 유연한 서버 인스턴스를 암호화하려고 할 때 관리 ID 및 키를 추가하여 하나 이상의 복제본을 구성합니다. 지리적 이중화 백업을 사용하여 Azure Database for MySQL 유연한 서버 인스턴스를 구성하는 경우, 서버와 지리적으로 연결된 지역에 있는 관리형 신원과 해당 신원에 액세스 권한이 있는 키를 사용하여 복제본을 구성해야 합니다.
Key Vault에서 고객 관리형 키를 사용하여 복원
Azure Database for MySQL 유연한 서버 인스턴스를 복원하는 경우 사용자 관리 ID 및 키를 선택하여 복원 서버를 암호화합니다. Azure Database for MySQL 유연한 서버 인스턴스가 지리적 이중화 백업으로 구성된 경우, 복원 서버를 해당 서버와 지리적으로 연결된 지역에 있는 관리형 신원 및 해당 신원에 액세스 권한이 있는 키로 구성해야 합니다.
복원 또는 읽기 복제본 생성 중에 원본 서버와 복원된 서버 또는 복제본 서버에서 다음 단계를 수행하세요.
- 원본 Azure Database for MySQL 유연한 서버 인스턴스에서 복원 또는 읽기 복제본 만들기 프로세스를 시작합니다.
- 복원된 서버 또는 복제본 서버에서 데이터 암호화 설정에서 CMK의 유효성을 다시 검사하여 키에 대한 UAMI 권한의 유효성을 검사합니다.
메모
복원을 수행할 때 원본 서버와 동일한 ID(UAMI) 및 키를 사용할 필요가 없습니다.