문서 메뉴
문서 홈
/
MongoDB Atlas
/ /

Azure Key Vault로 고객 키 관리

이 페이지의 내용

  • Azure Key Vault를 사용해 고객 관리형 키 활성화하기
  • 예제
  • 필요한 액세스 권한
  • 전제 조건
  • 프로젝트에서 고객 관리형 키 비활성화하기
  • Atlas 클러스터에 대한 고객 키 관리 활성화
  • 프로젝트에서 고객 관리형 키 비활성화하기
  • 암호화 키에 대한 액세스 권한 철회하기
  • 알림
  • Azure 키 식별자 회전하기
  • MongoDB 마스터 키 - MongoDB의 책임
  • Azure 키 ID 교체 - 사용자의 책임
  • 전제 조건
  • 절차
  • 알림
  • 정전 시 Azure Key Vault 페일오버
  • 관련 주제

참고

  • M0 무료 클러스터, M2, M5 클러스터에서는 이 기능을 사용할 수 없습니다. 자세한 내용은 Atlas M0(무료 클러스터), M2, M5 제한 사항을 참조하세요.

  • 이 기능은 현재 서버리스 인스턴스에서 지원되지 않습니다. 자세한 내용은 서버리스 인스턴스 제한사항을 참조하십시오.

AKV(Azure Key Vault)의 고객 관리 키(CMK)를 사용하여 Atlas의 미사용 데이터를 추가로 암호화할 수 있습니다.

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

자체 클라우드 제공자 KMS 를 사용하는 경우 Atlas는 90 일마다 MongoDB 마스터 키를 자동으로 로테이션합니다. 이러한 키는 롤링 방식으로 회전하며 프로세스에서 데이터를 다시 쓸 필요가 없습니다.

이 페이지에서는 Atlas 프로젝트에서 AKV를 사용하여 고객 키 관리를 구성하는 방법을 설명합니다.

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가 WiredTiger 스토리지 엔진 을 통해 파일을 암호화하는 데 사용하는 암호화 키입니다. Atlas는 암호화된 키 사본을 로컬에 저장합니다.

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

Per-Database Encryption Key

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

이 키는 MongoDB 마스터 키로 암호화됩니다.

3노드 복제본 세트에 대한 다음 암호화 계층 구조를 가정해 보겠습니다. Atlas는 Azure Key Vault의 CMK 를 사용하여 클러스터의 각 노드에 대한 고유한 MongoDB 마스터 키를 암호화합니다. 또한 각 노드에는 세 개의 데이터베이스가 포함되어 있으며, 각 데이터베이스는 고유한 데이터베이스별 암호화 키로 암호화됩니다. 클러스터가 시작되면 Atlas는 Azure Key Vault의 CMK 를 사용하여 MongoDB 마스터 키를 해독하고 이를 MongoDB 서버에 제공합니다.

참고

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

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

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

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

MongoDB 프로젝트에 Azure Key Vault를 사용해 고객 관리형 키를 활성화하려면 다음을 수행해야 합니다.

  • M10 이상의 클러스터를 사용해야 합니다.

  • 클라우드 백업을 사용하여 백업 스냅샷을 암호화하세요. 레거시 백업은 지원되지 않습니다.

  • Active 디렉토리 테넌트에 대해 Tenant ID (또는 Directory ID)가 있습니다.

  • Active Directory 테넌트에 연결된 Azure 애플리케이션의 Client ID (또는 Application ID) 및 만료되지 않은 애플리케이션 Password이 있어야 합니다.

  • 키 볼트를 포함하는 Azure Resource GroupResource Group 이름이 있습니다.

  • Active Directory ApplicationAzure key Vault Reader 역할을 할당합니다.

  • Azure Key Vault의 Subscription IDKey Vault Name가 있어야 합니다. 키 볼트 리소스 그룹이 Resource Group에 지정된 리소스 그룹 이름과 일치하는지 확인합니다.

    키 보관소에는 다음과 같은 액세스 정책이 있어야 합니다.

    • 키 관리 운영

      • GET

    • 암호화 운영

      • ENCRYPT

      • DECRYPT

  • 지정된 Azure 키 볼트의 키에 대한 Key Identifier이(가) 있어야 합니다.

    Atlas는 Atlas 프로젝트의 cluster에 대해 미사용 데이터 암호화를 활성화할 때 이 같은 리소스를 사용합니다. 특히 Atlas 프로젝트에 사용할 때는 Azure 애플리케이션과 리소스 그룹 및 Key Vault를 생성하는 것이 좋습니다.

    참조된 Azure 구성 요소를 구성하는 방법을 알아보려면 Azure 설명서를 참조하세요.

  • 사용자가 를 쉽클러스터게 만들거나 변경할 수 있도록 키에 대한 공개 액세스를 허용할 수 있습니다. 키 범위를 좁히고 위험을 줄이려면 TLS 및 인증과 같은 제어 기능을 사용하세요.

  • 정의된 IP 범위에 대한 액세스를 제한하려면액세스를 허용합니다 . Atlas IP 주소 와 클러스터 노드의 공용 IP 주소에서.

    • Atlas가 Key Vault와 통신할 수 있는지 확인하세요. 연결이 중단되는 것을 방지하려면 노드 IP 주소가 변경될 때마다 구성을 업데이트하세요. 예를 들어 인바운드 액세스 규칙을 업데이트해야 할 수 있습니다.

    • Key Vault에 대한 액세스를 제한하면 IP 주소가 변경될 때마다 복잡성이 늘어납니다. 예를 들어 cluster를 생성하거나 업데이트하는 경우 Azure Key Vault에서 새 IP 주소에 대한 액세스 권한을 부여해야 합니다. cluster를 삭제하거나 노드를 제거할 때 IP 주소와 키를 제거하는 프로세스를 구현해야 합니다.

프로젝트의 클러스터에서 먼저 고객 키 관리를 활성화해야 해당 프로젝트의 클러스터에서 고객 키 관리를 활성화할 수 있습니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Advanced를 클릭합니다.

2
3
4
클라이언트 ID
Azure 애플리케이션의 Client ID (또는 Application ID)을 입력합니다.
테넌트 ID
Active Directory 테넌트의 Tenant ID (또는 Directory ID)을 입력합니다.
비밀
애플리케이션의 만료되지 않은 Passwords 중 하나를 입력합니다.
Azure 환경
Active 디렉토리 테넌트가 있는 Azure cloud를 선택합니다.
5
구독 ID
Key Vault의 Subscription ID 을 입력합니다.
리소스 그룹 이름
Key Vault의 Resource Group 을 입력합니다.
Key Vault 이름
Key Vault의 이름을 입력합니다.
6
키 식별자

Key Vault에서 생성한 키의 전체 URL을 입력합니다.

중요

키 식별자는 전체 Azure 일반 형식으로 제공되어야 합니다.

https://{keyvault-name}.vault.azure.net/{object-type}/{object-name}/{object-version}
7

Atlas는 암호화 프로세스 중에 Atlas 콘솔에 배너를 표시합니다.

Enable Customer-Managed Keys for a Project(프로젝트에 고객 관리형 키 활성화)를 활성화한 후에는 암호화하려는 데이터가 포함된 각 Atlas cluster에 대해 고객 키 관리를 활성화해야 합니다.

참고

해당 프로젝트의 클러스터에 대한 고객 키 관리를 사용하려면 Project Owner 역할이 있어야 합니다.

새 클러스터의 경우, 클러스터를 만들 때 자체 암호화 키 관리 설정을 Yes로 전환합니다.

기존 클러스터의 경우:

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Clusters 페이지가 아직 표시되지 않은 경우 사이드바에서 Database를 클릭합니다.

2

키 관리 서비스 구성에 따라 클러스터가 KMS와 통신할 수 있도록 Atlas 클러스터 노드 IP 주소를 클라우드 제공자 KMS 목록에 추가해야 할 수도 있습니다. 클러스터와 KMS 간의 통신을 활성화하려면 다음을 수행합니다.

  1. ipAddresses 엔드포인트에 GET 요청을 보냅니다. API 엔드포인트 는 다음과 같이 기존 클러스터 노드의 IP 주소 목록을 반환합니다.

    {
    "groupId": "xxx", // ObjectId
    "services": {
    "clusters": [
    {
    "clusterName": "Cluster0",
    "inbound": [
    "3.92.113.229",
    "3.208.110.31",
    "107.22.44.69"
    ],
    "outbound": [
    "3.92.113.229",
    "3.208.110.31",
    "107.22.44.69"
    ]
    }
    ]
    }
    }
  2. 반환된 IP 주소를 클라우드 제공자의 IP 액세스 목록에 추가합니다. 자세한 내용은 AWS, AzureGCP 를 사용하여 고객 키를 관리하기 위한 전제 조건을 참조하세요.

3

암호화하려는 데이터가 포함된 클러스터의 경우 줄임표 ...를 클릭한 다음 Edit Configuration 선택합니다.

4
  1. Additional Settings 패널을 펼칩니다.

  2. 0} 설정을 Manage your own encryption keysYes 전환합니다.

5
  1. Review Changes를 클릭합니다.

  2. 변경 사항을 검토한 다음 Apply Changes을 클릭하여 클러스터를 업데이트합니다.

프로젝트의 각 cluster에서 고객 키 관리를 비활성화해야 프로젝트에 대한 기능을 비활성화할 수 있습니다.

중요

Atlas 프로젝트 내에서 고객 키 관리를 비활성화하기 전에는 Atlas 프로젝트의 cluster가 사용하는 AKV 키를 비활성화하거나 삭제하지 마세요. Atlas가 AKV 키에 액세스할 수 없는 경우 해당 키로 암호화된 모든 데이터에 액세스할 수 없게 됩니다.

AKV 내에서는 Atlas의 암호화 키에 대한 액세스 권한을 취소할 수 있습니다. 사용자가 암호화 키에 대한 액세스를 취소하면, AKV IP 액세스 목록에서 Atlas 컨트롤 플레인을 제한하지 않는 한, Atlas는 cluster를 자동으로 일시 중지합니다.

cluster의 자동 일시 중지를 허용하려면 다음 작업 중 하나를 수행해야 합니다.

  • AKV에 대한 IP 액세스 목록을 비활성화합니다.

  • Atlas 컨트롤 플레인에서 AKV에 대한 액세스를 허용합니다.

참고

MongoDB는 시간이 지남에 따라 새로운 Atlas 컨트롤 플레인 IP 주소를 추가합니다.clus AKV에 대한 IP 액세스 목록을 사용하는 동안 자동 cluster 일시 중지를 허용하려면 IP 액세스 목록을 업데이트된 상태로 유지해야 합니다.

암호화 키에 대한 액세스를 해지할 때 AKV의 IP 액세스 목록이 Atlas 컨트롤 플레인으로부터의 액세스를 제한하는 경우, Atlas의 액세스를 해지하려면 클러스터를 수동으로 일시 중지해야 합니다.

프로젝트에 대한 고객 키 관리를 구성하면 Atlas가 자동으로 encryption key rotation alert를 생성합니다.

이 경고를 재설정하려면 Azure 키 식별자 회전하세요.

참고

자체 클라우드 제공자 KMS 를 사용하는 경우 Atlas는 90 일마다 MongoDB 마스터 키를 자동으로 로테이션합니다. 이러한 키는 롤링 방식으로 회전하며 프로세스에서 데이터를 다시 쓸 필요가 없습니다.

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

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

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

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

Atlas 프로젝트와 연결된 Azure Key Vault에서 새 키를 생성해야 합니다.

다음 절차에서는 Atlas에서 새 키 식별자를 지정해 Atlas 프로젝트 Ket Identifier를 회전하는 방법을 설명합니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Advanced를 클릭합니다.

2
3
  1. Azure Key Vault 선택자가 아직 활성화되지 않은 경우 Azure Key Vault 클릭합니다.

  2. Encryption Key 선택자가 아직 활성화되지 않은 경우 Encryption Key 클릭합니다.

  3. Key Identifier 필드에 Azure 키 식별자를 입력합니다.

    새 암호화 키 식별자에 대한 전체 URL을 포함합니다. 예를 들면 다음과 같습니다.

    https://mykeyvault.vault.azure.net/keys/AtlasKMSKey/a241124e3d364e9eb99fbd3e11124b23

    중요

    암호화 키는 반드시 프로젝트에 구성된 Key Vault에 있어야 합니다. Key Vault 섹션을 클릭하면 현재 프로젝트에 구성된 Key Vault를 볼 수 있습니다.

  4. Update Credentials를 클릭합니다.

키 식별자 회전 프로세스 중에는 Atlas UI에 배너가 표시됩니다. 변경 사항이 배포될 때까지 원래 키 식별자를 삭제하거나 비활성하지 마세요.

클러스터가 클러스터 백업 을 사용하는 경우, 암호화에 해당 키를 사용하는 스냅샷이 없는지 확인할 때까지 원래 키 식별자를 삭제하거나 비활성화하지 마세요 .

이 절차가 완료되면 Atlas에서 encryption key rotation alert 경고를 재설정합니다.

리전 중단 시 Azure KMS 리전을 사용할 수 없게 될 수 있습니다. 이 경우 Azure는 들어오는 KMS 요청을 미리 할당된 세컨더리 리전으로 자동 라우팅합니다. 자세히 알아보려면 Azure Key Vault 페일오버 를 참조하세요.및 리전 페어링.

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

참고

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

← AWS KMS로 고객 키 관리