Docs Menu

Azure Key Vault로 고객 키 관리

참고

다음 배포에서는 이 기능 사용할 수 없습니다.

  • 서버리스 인스턴스(지원 중단됨)

  • M0 클러스터

  • M2/M5 클러스터(지원 중단됨)

  • Flex 클러스터

자세한 학습 제한 사항을 참조하세요.

AKV( Azure Key Vault )의 고객 관리형 키( CMK )를 사용하여 Atlas 에 있는 미사용 미사용 데이터 를 추가로 암호화할 수 있습니다. AKV 에 대한 모든 트래픽이 Azure Private Link 를 사용하도록 구성할 수도 있습니다.

Atlas 는 Azure Key Vault CMK 를 사용하여 MongoDB 마스터 키를 암호화하고 해독합니다. 이러한 MongoDB 마스터 키는 클러스터 데이터베이스 파일과 cloud 제공자 스냅샷 을 암호화하는 데 사용됩니다. Atlas 가 암호화 에 CMK를 사용하는 방법에 학습 보려면 Azure Key Vault 를 사용한 고객 관리 키 정보를 참조하세요.

자체 cloud 제공자 KMS 를 사용하는 경우 Atlas 는 최소 90 일마다 MongoDB 마스터 키를 자동으로 로테이션합니다. 유지 관리 기간이 구성되어 있는 경우 유지 관리 기간 기간 동안 키 로테이션이 시작됩니다. 유지 관리(수동 또는 자동)를 연기하면 키가 90일 표시를 지날 수 있습니다. 키는 롤링 방식으로 회전하며 프로세스 에서 데이터를 다시 쓸 필요가 없습니다.

중요

AzureCMK의 클라이언트 시크릿 수명을 2년으로 제한합니다. 클라이언트 시크릿이 만료되면 Atlas 에서 CMK 에 액세스 할 수 없습니다. 따라서 클러스터 가용성이 손실되지 않도록 만료되기 전에 클라이언트 시크릿을 로테이션하세요.

이 페이지에서는 Atlas 프로젝트 에서 AKV 를 사용하여 고객 키 관리 를 구성하는 방법을 설명합니다. 또한 Atlas 관리 API 를 사용하여 AKV 에서 Azure Private Link 를 자동으로 설정하다 하여 Atlas 와 AKV 간의 모든 트래픽이 Azure의 비공개 네트워크 인터페이스를 통해 발생하도록 할 수도 있습니다.

Atlas 프로젝트의 클러스터에서 활성화하기 전에 해당 프로젝트에 대한 고객 키 관리를 구성해야 합니다.

Atlas의 고객 키 관리는 봉투 암호화라는 프로세스를 따릅니다. 이 프로세스는 하나의 키를 다른 키로 암호화하여 여러 계층의 암호화를 생성합니다. 고객 키 관리를 활성화하기 위해 Atlas는 다음과 같은 암호화 키를 사용합니다.

Customer-Managed Key (CMK)

고객 관리 키는 Azure Key Vault에서 생성, 소유 및 관리하는 암호화 키입니다. Azure Key Vault에서 CMK를 생성하고 프로젝트 수준에서 Atlas에 연결합니다. Azure Key Vault에서 사용되는 CMK에 대해 자세히 알아보려면 Azure 문서를 참조하세요.

Atlas는 이 키를 MongoDB 마스터 키를 암호화하는 데에만 사용합니다.

MongoDB Master Key

Atlas cluster 의 각 노드 는 MongoDB 마스터 키를 생성합니다. MongoDB 마스터 키는 MongoDB Server 가 데이터베이스별 암호화 키를 암호화하는 데 사용하는 암호화 키입니다. Atlas 는 암호화됨 키 사본을 로컬에 저장합니다.

이 키는 CMK로 암호화되며 데이터베이스별 암호화 키를 암호화합니다.

Per-Database Encryption Key

또한 Atlas 클러스터의 각 노드는 클러스터의 데이터베이스별로 암호화 키를 생성합니다. Atlas는 이러한 키를 사용하여 이러한 키를 암호화하고 저장하는 WiredTiger를 통해 데이터를 읽고 씁니다.

이 키는 MongoDB Master Key로 암호화됩니다.

3노드 복제본 세트에 대한 다음 암호화 계층 구조를 고려하세요. Atlas는 Azure Key Vault의 고객 마스터 키를 사용하여 클러스터의 각 노드의 고유한 MongoDB 마스터 키를 암호화합니다. 또한 각 노드에는 데이터베이스가 3개씩 있으며 각 데이터베이스는 고유한 암호화 키로 암호화됩니다. 클러스터가 시작되면 Atlas는 Azure Key Vault의 고객 마스터 키를 사용하여 MongoDB 마스터 키의 암호를 해독하고 이를 MongoDB Server에 제공합니다.

참고

고객 마스터 키의 Atlas의 액세스 권한을 취소하면 Atlas는 클러스터의 노드를 종료하며 고객 마스터 키의 액세스 권한을 복원할 때까지 데이터에 액세스할 수 없습니다.

클릭하여 확대

AKV CMK 사용하도록 Atlas 구성한 후 Azure 키 식별자 순환 정보및 정전 중 Azure Key Vault 페일오버에 대해 자세히 학습 .

참고

다음 배포에서는 이 기능 사용할 수 없습니다.

  • 서버리스 인스턴스(지원 중단됨)

  • M0 클러스터

  • M2/M5 클러스터(지원 중단됨)

  • Flex 클러스터

자세한 학습 제한 사항을 참조하세요.

자체 cloud 제공자 KMS 를 사용하는 경우 Atlas 는 최소 90 일마다 MongoDB 마스터 키를 자동으로 로테이션합니다. 유지 관리 기간이 구성되어 있는 경우 유지 관리 기간 기간 동안 키 로테이션이 시작됩니다. 유지 관리(수동 또는 자동)를 연기하면 키가 90일 표시를 지날 수 있습니다. 키는 롤링 방식으로 회전하며 프로세스 에서 데이터를 다시 쓸 필요가 없습니다.

Atlas는 Azure Key Vault에 사용되는 키 식별자를 자동으로 회전하지 않습니다.

Atlas encryption key rotation alert 90 프로젝트 에 대해 미사용 데이터 암호화를 활성화 하도록 설정하면 Atlas 는 기본값 일마다 Azure 키 식별자를 순환하도록 알려주는 를 자동으로 생성합니다.

다음을 회전 할 수 있습니다. Azure Key Vault 에 직접 CMK 를 저장하거나 키를 자동으로 회전하도록 Azure Key Vault 를 구성합니다. 자동 회전 을 구성하는 경우 Azure Key Vault 에서 기본값 순환 기간은 약 365 일입니다.

Azure Key Vault에서 자동 순환을 이미 설정했지만 90일마다 Azure 키 식별자를 순환하도록 Atlas 알림을 받지 않으려면 기본 알림 기간을 365일보다 길게 수정할 수 있습니다.

리전 중단 시 AKV 리전 을 사용할 수 없게 될 수 있습니다. If this happens, Azure automatically routes incoming Key Vault requests to a pre-assigned secondary region. 학습 보려면 Azure Key Vault 페일오버 를 참조하세요. 및 리전 페어링.

두 리전이 모두 다운된 경우 페어링된 리전 외부의 리전으로 키를 수동 마이그레이션할 수 있습니다. 자세히 알아보려면 리전 간 Key Vault 이동을 참조하세요.

참고

고객 키 관리를 사용한 미사용 데이터 암호화를 활성화한 경우, 운영 중단 중에도 하나 이상의 노드 를 계속 사용할 수 있는 동안 암호화 및 암호 해독 작업을 수행할 수 있습니다. Atlas 는 클러스터를 종료하지 않습니다.

특정 리전의 경우 Azure 는 자동 페일오버 를 지원 하지 않습니다. 학습 내용은 Azure 설명서를 참조하세요.

고객 키 관리를 구성하려면 프로젝트에 대한 Project Owner 액세스 권한이 있어야 합니다.

2} 액세스 권한이 있는 사용자는 프로젝트에 자신을 으로 추가해야 Organization Owner Project Owner 합니다.

를 사용하여 Atlas AKV에 대한 액세스 부여해야 Permission Model 합니다. 키 볼트 액세스 정책 또는 Azure RBAC를 사용하여 액세스 부여할 수 있습니다.

액세스 정책을 사용하는 경우 Azure UI 에서 다음을 수행하여 AKV에 대한 Atlas 액세스 을 부여합니다.

  1. Access Control (IAM) 설정에서 애플리케이션 에 Microsoft.KeyVault/vaults/read 권한을 부여합니다.

  2. Access Policies 페이지에서 다음 Key Permissions을 사용하여 액세스 정책을 만듭니다.

    이 권한 부여...
    다음으로...

    get

    AKV에 저장된 키에 대한 메타데이터 읽습니다.

    Encrypt

    AKV의 키를 사용하여 데이터를 암호화합니다.

    암호 해독

    AKV의 키를 사용하여 이전에 해당 키로 암호화됨 된 데이터를 해독합니다.

  3. 동일한 앱 주체로 추가하고 액세스 정책을 구성합니다.

AKV가 RBAC를 사용하는 경우 Azure UI 설정에서 다음을 수행하여 Access Control (IAM) AKV에 대한 Atlas 액세스 을 부여해야 합니다.

  1. 애플리케이션 에 다음 actions 권한을 부여합니다.

    이 권한 부여...
    다음으로...

    Microsoft.KeyVault/vaults/read

    키 볼트 속성 읽기

    Microsoft.KeyVault/vaults/keys/read

    AKV에 저장된 키에 대한 메타데이터 읽습니다.

    {
    "permissions": [
    {
    "actions": [
    "Microsoft.KeyVault/vaults/read"
    "Microsoft.KeyVault/vaults/keys/read"
    ]
    }
    ...
    ]
    }
  2. 애플리케이션 에 다음 dataActions 권한을 부여합니다.

    이 권한 부여...
    다음으로...

    Microsoft.KeyVault/vaults/keys/read

    AKV에 저장된 키에 대한 메타데이터 읽습니다.

    Microsoft.KeyVault/vaults/keys/encrypt/action

    AKV의 키를 사용하여 데이터를 암호화합니다.

    Microsoft.KeyVault/vaults/keys/decrypt/action

    AKV의 키를 사용하여 이전에 해당 키로 암호화됨 데이터를 해독합니다.

    {
    "permissions": [
    ...
    {
    "dataActions": [
    "Microsoft.KeyVault/vaults/keys/read",
    "Microsoft.KeyVault/vaults/keys/encrypt/action",
    "Microsoft.KeyVault/vaults/keys/decrypt/action"
    ]
    }
    ]
    }

공용 네트워크 또는 Azure 비공개 엔드포인트를 통해 AKV( Azure Key Vault )의 고객 관리형 키( CMK )를 사용할 수 있습니다. 학습 내용은 다음을 참조하세요.

참고

고객 키 관리를 사용해 미사용 데이터 암호화를 활성화한 경우 장애 시에도 하나 이상의 노드를 계속 사용할 수 있는 동안 암호화 및 복호화 작업을 수행할 수 있습니다.