Docs Menu
Docs Home
/
Atlas
/ /

Azure Key Vault로 고객 키 관리

이 페이지의 내용

  • Azure Key Vault 를 사용한 고객 관리 키 정보
  • 예시
  • 알아야 할 사항
  • Azure 키 식별자 순환 정보
  • 운영 중단 중 Azure Key Vault 페일오버 정보
  • 필요한 액세스 권한
  • 다음 단계

참고

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

  • M0 무료 클러스터

  • Flex 클러스터

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

  • M2/M5 공유 클러스터(더 이상 사용되지 않음)

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

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의 CMK 를 사용하여 클러스터의 각 노드에 대한 고유한 MongoDB 마스터 키를 암호화합니다. 또한 각 노드에는 세 개의 데이터베이스가 포함되어 있으며, 각 데이터베이스는 고유한 데이터베이스별 암호화 키로 암호화됩니다. 클러스터가 시작되면Atlas 는 의 MongoDB CMK 를 사용하여 마스터 키를 Azure Key Vault 해독하고 이를 에 MongoDB Server 제공합니다.

참고

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

AKV 및 Atlas를 사용한 CMK 워크플로 다이어그램
클릭하여 확대

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

참고

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

  • M0 무료 클러스터

  • Flex 클러스터

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

  • M2/M5 공유 클러스터(더 이상 사용되지 않음)

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

자체 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 리전 을 사용할 수 없게 될 수 있습니다. 이 경우 Azure 는 들어오는 Key Vault 요청을 미리 할당된 세컨더리 리전 으로 자동 라우팅합니다. 학습 보려면 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 )를 사용할 수 있습니다. 학습 내용은 다음을 참조하세요.

참고

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

돌아가기

비공개 엔드포인트를 통한 액세스 구성