다음을 통해 공유


Azure Database for MySQL – 유연한 서버에 대한 고객 관리형 키를 사용하는 데이터 암호화

Azure Database for MySQL 유연한 서버에 대한 고객 관리형 키를 사용하여 데이터 암호화를 사용하면 미사용 데이터 보호를 위해 BYOK(사용자 고유의 키)를 가져오고 키와 데이터를 관리하기 위한 업무 분리를 구현할 수 있습니다. CMK(고객 관리형 키)를 통해 고객은 키 수명 주기 관리(키 만들기, 업로드, 회전, 삭제), 키 사용 권한 및 키에 대한 감사 작업을 책임지고 궁극적으로 제어합니다.

참고 항목

Azure Key Vault 관리되는 HSM(하드웨어 보안 모듈)은 현재 Azure Database for MySQL 유연한 서버에 대한 고객 관리형 키에 대해 지원됩니다.

이점

Azure Database for MySQL 유연한 서버에 대한 고객 관리형 키를 사용한 데이터 암호화는 다음과 같은 이점을 제공합니다.

  • 키를 제거하고 데이터베이스에 액세스할 수 없게 만드는 기능으로 데이터 액세스를 완전히 제어합니다.
  • 회사 정책에 맞게 키를 회전하는 기능을 포함하여 키 수명 주기를 완벽하게 제어
  • Azure Key Vault 또는 관리되는 HSM의 키를 중앙에서 관리 및 구성
  • 보안 책임자, DBA 및 시스템 관리자의 책임을 분리하는 기능

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

Microsoft Entra ID의 관리 ID는 AKV(Azure Key Vault)와 같이 Microsoft Entra 인증을 지원하는 서비스에 인증하는 데 사용할 수 있는 자동 할당 ID를 프로비전하여 자격 증명을 코드에 저장하는 대신 Azure 서비스를 제공합니다. Azure Database for MySQL 유연한 서버는 현재 UMI(사용자 할당 관리 ID)만 지원합니다. 자세한 내용은 Azure의 관리 ID 유형을 참조하세요.

Azure Database for MySQL 유연한 서버에 대한 CMK를 구성하려면 UMI를 서버에 연결하고 사용할 Azure Key Vault 및 키를 지정해야 합니다.

UMI에는 다음과 같은 키 자격 증명 모음에 대한 액세스 권한이 있어야 합니다.

  • 가져오기: 키 자격 증명 모음에서 키의 공개 부분 및 속성을 검색합니다.
  • 나열: Key Vault에 저장된 키 버전을 나열합니다.
  • 키 래핑: DEK를 암호화할 수 있습니다. 암호화된 DEK는 Azure Database for MySQL 유연한 서버 인스턴스에 저장됩니다.
  • 키 래핑 해제: DEK를 암호 해독할 수 있습니다. Azure Database for MySQL 유연한 서버에는 데이터를 암호화/암호 해독하기 위해 해독된 DEK가 필요합니다.

RBAC가 사용하도록 설정된 경우 UMI에도 다음 역할을 할당해야 합니다.

  • 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 암호화 사용자 역할을 할당합니다.

용어 및 설명

DEK(데이터 암호화 키): 파티션이나 데이터 블록을 암호화하는 데 사용되는 대칭 AES256 키입니다. 서로 다른 키로 각 데이터 블록을 암호화하면 암호 분석 공격이 더욱 어려워집니다. DEK에 대한 액세스는 리소스 공급자 또는 특정 블록을 암호화하고 해독하는 애플리케이션 인스턴스에 필요합니다. DEK를 새 키로 바꾸면 연결된 블록의 데이터만 새 키로 다시 암호화해야 합니다.

KEK(키 암호화 키): DEK를 암호화하는 데 사용되는 암호화 키입니다. Key Vault를 절대 벗어나지 않는 KEK를 사용하면 DEK 자체를 암호화하고 제어할 수 있습니다. KEK에 액세스할 수 있는 엔터티와 DEK가 필요한 엔터티가 서로 다를 수 있습니다. KEK는 DEK를 암호 해독하는 데 필요하므로 KEK는 실질적으로 KEK를 삭제함으로써 DEK를 효과적으로 삭제할 수 있는 단일 지점이 됩니다. KEK로 암호화된 DEK는 별도로 저장됩니다. KEK에 대한 액세스 권한이 있는 엔터티만 이러한 DEK를 암호 해독할 수 있습니다. 자세한 내용은 미사용 암호화 보안을 참조하세요.

작동 방식

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분이 걸릴 수 있습니다. 여기에는 AKV의 TDE 보호기 액세스 권한 취소가 포함되며, 이 시간 프레임 내의 사용자에게는 여전히 액세스 권한이 있을 수 있습니다.

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 유연한 서버 인스턴스는 동일한 지역에 있어야 합니다.
  • 실수로 키(또는 Key Vault)가 삭제되는 경우 데이터가 손실되지 않도록 방지하기 위해 보존 기간이 90일로 설정된 키 자격 증명 모음에서 일시 삭제 기능을 사용하도록 설정합니다. 복구 및 제거 작업에는 Key Vault 액세스 정책에서 자체 권한이 있습니다. 일시 삭제 기능은 기본적으로 꺼져 있지만 Azure Portal, PowerShell 또는 Azure CLI를 사용하여 사용하도록 설정할 수 있습니다.
  • 키 자격 증명 모음에서 제거 보호 기능을 사용하도록 설정하고 보관 기간을 90일로 설정합니다. 제거 보호를 설정하면 보존 기간이 지나기 전에는 삭제된 상태의 키 자격 증명 모음이나 개체를 제거할 수 없습니다. 일시 삭제를 사용하도록 설정한 후에만 PowerShell 또는 Azure CLI를 사용하여 이 기능을 사용하도록 설정할 수 있습니다.

CMK를 구성하려면 먼저 다음 요구 사항을 해결해야 합니다.

  • DEK를 암호화하는 고객 관리형 키는 오직 비대칭인 RSA\RSA-HSM(프리미엄 SKU가 있는 자격 증명 모음) 2048,3072 또는 4096일 수 있습니다.
  • 키 활성화 날짜(설정된 경우)는 과거의 날짜와 시간이어야 합니다. 만료 날짜는 설정하지 않습니다.
  • 키가 사용 상태여야 합니다.
  • 키에는 보존 기간이 90일로 설정된 일시 삭제가 있어야 합니다. 이는 필요한 키 특성 recoveryLevel을 암시적으로 설정합니다. "복구 가능."
  • 키에 제거 보호를 사용하도록 설정해야 합니다.
  • 기존 키를 키 자격 증명 모음에 가져오는 경우 지원되는 파일 형식(.pfx, .byok, .backup)으로 제공해야 합니다.

참고 항목

Azure Portal을 통해 Azure Database for MySQL 유연한 서버에 대한 날짜 암호화를 구성하는 방법에 대한 자세한 단계별 지침은 Azure Portal을 사용하여 Azure Database for MySQL - 유연한 서버에 대한 데이터 암호화를 참조하세요.

데이터 암호화 구성에 대한 권장 사항

고객 관리형 키를 사용하는 데이터 암호화를 사용하도록 Key Vault 또는 관리되는 HSM을 구성할 때는 다음 권장 사항에 유의하세요.

  • 중요한 리소스를 삭제할 수 있는 사용자를 제어하고 실수로 인한 삭제나 무단 삭제를 방지할 수 있도록 Key Vault에 리소스 잠금을 설정합니다.
  • 모든 암호화 키에서 감사 및 보고를 사용합니다. Key Vault는 다른 보안 정보 및 이벤트 관리 도구에 쉽게 삽입할 수 있는 로그를 제공합니다. Azure Monitor Log Analytics는 이미 통합된 서비스의 한 가지 예입니다.
  • 고객 관리형 키의 복사본을 안전한 장소에 보관하거나 에스크로 서비스로 에스크로합니다.
  • Key Vault에서 키를 생성하면 키를 처음으로 사용하기 전에 키 백업을 만듭니다. 백업을 Key Vault로 복원하는 것만 가능합니다. 백업 명령에 대한 자세한 내용은 Backup-AzKeyVaultKey를 참조하세요.

참고 항목

  • 동일한 지역의 키 자격 증명 모음을 사용하는 것을 권장하지만, 필요한 경우 "키 식별자 입력" 정보를 지정하여 다른 지역의 키 자격 증명 모음을 사용할 수 있습니다. 키 자격 증명 모음 또는 관리되는 HSM은 MySQL 유연한 서버와 같은 지역에 있어야 합니다.

고객 관리형 키에 액세스할 수 없는 조건

Key Vault에서 CMK를 사용하는 데이터 암호화를 구성하는 경우 서버에서 온라인 상태를 유지하려면 이 키에 지속적으로 액세스해야 합니다. 유연한 서버에서 Key Vault의 고객 관리형 키에 대한 액세스 권한을 상실하면 해당 서버에서 10분 이내에 모든 연결을 거부하기 시작합니다. 유연한 서버에서 해당 오류 메시지를 발급하고, 서버 상태를 '액세스할 수 없음'으로 변경합니다. 서버는 여러 가지 이유로 이 상태에 도달할 수 있습니다.

  • 키 자격 증명 모음을 삭제하면 Azure Database for MySQL 유연한 서버 인스턴스가 키에 액세스할 수 없으며 액세스할 수 없는 상태로 이동합니다. 키 자격 증명 모음을 복구하고 데이터 암호화의 유효성을 다시 검사하여 Azure Database for MySQL 유연한 서버 인스턴스를 사용할 수 있도록 합니다.
  • 키 자격 증명 모음에서 키를 삭제하면 Azure Database for MySQL 유연한 서버 인스턴스가 키에 액세스할 수 없으며 액세스할 수 없는 상태로 이동합니다. 키를 복구하고 데이터 암호화의 유효성을 다시 검사하여 Azure Database for MySQL 유연한 서버 인스턴스를 사용할 수 있도록 합니다.
  • Azure Key Vault에 저장된 키가 만료되면 키가 유효하지 않으며 Azure Database for MySQL 유연한 서버 인스턴스가 액세스할 수 없는 상태로 전환됩니다. CLI를 사용하여 키 만료 날짜를 연장한 다음 데이터 암호화의 유효성을 다시 검사하여 Azure Database for MySQL 유연한 서버 인스턴스를 사용할 수 있도록 합니다.

Key Vault에서 실수로 인한 키 액세스 해지

Key Vault에 대한 충분한 액세스 권한이 있는 사용자가 다음과 같은 방법으로 키에 대한 유연한 서버 액세스 권한을 사용하지 않도록 설정하는 상황이 발생할 수 있습니다.

  • 서버에서 키 자격 증명 모음의 가져오기, 나열, 키 래핑키 래핑 해제 권한 철회
  • 키 삭제
  • 키 자격 증명 모음 삭제
  • 키 자격 증명 모음의 방화벽 규칙 변경
  • Microsoft Entra ID에서 고객 관리형 키를 통한 유연한 서버에 대한 암호화에 사용되는 사용자 관리 ID 삭제

Key Vault에서 고객 관리형 키 모니터링

데이터베이스 상태를 모니터링하고 투명한 데이터 암호화 보호기 액세스 권한 손실을 경고하도록 설정하려면 다음 Azure 기능을 구성합니다.

  • 활동 로그: 고객 관리 Key Vault의 고객 키에 대한 액세스가 실패하면 항목이 활동 로그에 추가됩니다. 이러한 이벤트에 대한 경고를 만들면 액세스를 최대한 빨리 복구할 수 있습니다.
  • 작업 그룹: 이 그룹을 정의하여 기본 설정에 따라 알림을 보냅니다.

Key Vault의 고객 관리형 키를 사용하는 복제본

Azure Database for MySQL 유연한 서버 인스턴스가 Key Vault에 저장된 고객의 관리형 키로 암호화되면 새로 만든 서버 복사본도 암호화됩니다. 이미 복제본이 있는 고객 관리형 키로 Azure Database for MySQL 유연한 서버 인스턴스를 암호화하려는 경우 관리 ID 및 키를 추가하여 복제본을 구성하는 것이 좋습니다. Azure Database for MySQL 유연한 서버 인스턴스가 지역 중복 백업으로 구성되어 있다고 가정합니다. 이 경우 복제본은 ID가 액세스할 수 있고 서버의 지역 쌍을 이루는 지역에 있는 관리 ID 및 키로 구성되어야 합니다.

Key Vault에서 고객 관리형 키를 사용하여 복원

Azure Database for MySQL 유연한 서버 인스턴스를 복원하려고 할 때 사용자 관리 ID 및 키를 선택하여 복원 서버를 암호화할 수 있습니다. Azure Database for MySQL 유연한 서버 인스턴스가 지역 중복 백업으로 구성되어 있다고 가정합니다. 이 경우 ID가 액세스할 수 있고 서버의 지역으로 연결된 지역에 있는 관리 ID 및 키를 사용하여 복원 서버를 구성해야 합니다.

복원 또는 읽기 복제본을 만드는 동안 고객 관리형 데이터 암호화를 설정할 때 문제를 방지하려면 원본 서버와 복원된/복제본 서버에서 다음 단계를 수행해야 합니다.

  • 원본 Azure Database for MySQL 유연한 서버 인스턴스에서 복원 또는 읽기 복제본 만들기 프로세스를 시작합니다.
  • 복원된 서버/복제본 서버에서 데이터 암호화 설정의 고객 관리형 키에 대한 유효성을 다시 검사하여 Key Vault에 저장된 키에 대한 가져오기, 나열, 키 래핑키 래핑 해제 권한이 사용자 관리 ID에 부여되었는지 확인합니다.

참고 항목

복원을 수행할 때 원본 서버에서와 동일한 ID 및 키를 사용해야 하는 것은 아닙니다.