문서 메뉴

문서 홈MongoDB 실행 및 관리MongoDB Atlas

Google Cloud KMS로 고객 키 관리하기

이 페이지의 내용

  • Google Cloud KMS로 고객 관리형 키 활성화
  • 예제
  • 필요한 액세스 권한
  • 전제 조건
  • 프로젝트에서 고객 관리형 키 비활성화하기
  • Atlas 클러스터에 대한 고객 키 관리 활성화
  • 알림
  • GCP 키 버전 리소스 ID 회전
  • MongoDB 마스터 키 - MongoDB의 책임
  • 사용자의 Google Cloud CMK - 사용자의 책임
  • 전제 조건
  • 절차
  • 알림
  • 관련 주제

참고

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

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

Google Cloud KMS의 고객 관리형 키(CMK)를 사용하여 Atlas에 있는 미사용 데이터를 추가로 암호화할 수 있습니다.

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

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

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

Atlas의 고객 키 관리는 엔벨로프 암호화 라는 프로세스를 따릅니다. . 이 프로세스는 한 키를 다른 키로 암호화하여 여러 암호화 계층을 생성합니다. 고객 키 관리를 활성화하기 위해 Atlas는 다음 암호화 키를 사용합니다.

Customer-Managed Key (CMK)

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

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

MongoDB Master Key

Atlas cluster의 각 노드는 MongoDB 마스터 키를 생성합니다. MongoDB 마스터 키는 MongoDB Server가 WiredTiger 스토리지 엔진 을 통해 파일을 암호화하는 데 사용하는 암호화 키입니다. Atlas는 암호화된 키 사본을 로컬에 저장합니다.

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

Per-Database Encryption Key

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

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

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

참고

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

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

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

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

MongoDB 프로젝트에 대해 Google Cloud KMS에서 고객 관리형 키를 사용하려면 다음이 필요합니다:

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

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

  • Google Cloud 서비스 계정 키.

  • Google Cloud KMS의 대칭 암호화 키.

  • Google Cloud KMS 암호화 키와 연결된 키 버전 리소스 ID.

  • 서비스 계정 키에 지정된 자격 증명이 있는 Google Cloud 서비스 계정으로서 다음을 수행할 수 있는 충분한 권한이 있어야 합니다.

    • Google Cloud KMS 암호화 키 버전을 가져옵니다.

    • Google Cloud KMS 암호화 키 버전으로 데이터를 암호화합니다.

    • Google Cloud KMS 암호화 키로 데이터를 해독합니다.

    참고

    키 버전이 아닌 키가 암호 해독을 처리합니다.

  • Google Cloud KMS 구성에 필요한 경우 GCP의 액세스 가능 서비스를 사용하세요. Atlas가 KMS 와 통신할 수 있도록 Atlas IP 주소 및 클러스터 노드의 공용 IP 주소 또는 DNS 호스트 이름에서 노드 IP 주소가 변경 되는 경우 연결이 중단되지 않도록 구성을 업데이트해야 합니다.

다음도 참조하세요.

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

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

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

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

2
3
4

Service Account Key의 형식은 JSON 객체로 지정해야 합니다. 여기에는 GCP 서비스 계정에 대한 암호화 자격 증명이 포함됩니다.

5

키 버전 리소스 ID는 CryptoKeyVersion의 정규화된 리소스 이름입니다.

6

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

참고

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

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

기존 클러스터의 경우:

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

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

  3. Database Deployments 페이지가 아직 표시되지 않은 경우 사이드바에서 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을 클릭하여 클러스터를 업데이트합니다.

프로젝트에 대한 고객 키 관리를 구성하면 Atlas가 자동으로 encryption key rotation alert 를 생성합니다. GCP 키 버전 리소스 ID를 교체하여 언제든지 이 경고를 재설정할 수 있습니다.

참고

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

Atlas는 Google Cloud 키 관리에 사용되는 키 버전 리소스 ID를 자동으로 교체하지 않습니다.

Atlas 프로젝트에 대해 alert 미사용 데이터 암호화를 사용 하도록 설정하면 Atlas는 기본적으로 90 일마다 GCP 키 버전 리소스 ID를 순환하도록 알려주는 를 생성하는 것이 좋습니다. 이 경고의 기간을 구성할 수 있습니다.

다음을 회전 할 있습니다. 직접 Google Cloud CMK 를 설치하거나 Google Cloud KMS 인스턴스를 자동으로 로테이션 하도록 구성합니다. CMK . 자동 Google Cloud CMK 로테이션을 구성하는 경우 기본 로테이션 기간은 약 365 일입니다.

Google Cloud에서 이미 자동 CMK 교체를 설정했고 90일마다 CMK를 교체하라는 Atlas 알림을 수신하지 않으려는 경우 기본 알림 기간을 365일 이상으로 수정할 수 있습니다.

Atlas 프로젝트와 연결된 Google Cloud 계정에서 새 서비스 계정 키를 만들어야 합니다.

다음 절차에서는 Atlas에서 새 키 버전 리소스 ID를 지정해 Atlas 프로젝트 키 식별자를 교체하는 방법을 설명합니다.

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

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

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

2
3
  1. Google Cloud KMS 탭이 아직 활성화되지 않은 경우 Google Cloud KMS를 클릭합니다.

  2. Encryption Key Credentials 대화 상자가 아직 표시되지 않은 경우 Encryption Key Credentials을 확장합니다.

  3. Key Identifier 항목에 GCP 키 버전 리소스 ID를 입력합니다.

    CryptoKeyVersion에 대한 정규화된 리소스 이름을 포함합니다.

    예제

    projects/my-project-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1

    암호화 키는 Atlas 프로젝트에 대해 구성된 Google Cloud 서비스 계정 키에 반드시 속해야 합니다. 프로젝트에 대해 현재 구성된 서비스 계정 키를 보려면 Service Account Key 섹션을 클릭하세요.

  4. Update Credentials를 클릭합니다.

키 식별자 교체 프로세스 중에는 Atlas 콘솔에 배너가 표시됩니다.

경고

변경 사항이 배포될 때까지 원래 키 버전 리소스 ID를 삭제하거나 비활성화하지 마세요.

클러스터에서 데이터베이스 배포 백업을 사용하는 경우, 암호화에 해당 키를 사용하는 스냅샷이 없는지 확인할 때까지 원래 키 버전 리소스 ID를 삭제하거나 비활성화하지 마세요.

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

← Azure Key Vault로 고객 키 관리