Azure Cosmos DB for MongoDB vCore의 데이터베이스 보안 개요
적용 대상: MongoDB vCore
이 문서에서는 데이터베이스 보안 모범 사례 및 데이터베이스 위반을 차단, 검색 및 대응하기 위해 Azure Cosmos DB for MongoDB vCore에서 제공하는 주요 기능에 대해 설명합니다.
Azure Cosmos DB for MongoDB vCore 보안의 새로운 기능
이제 휴지 상태의 암호화를 대부분의 Azure 지역에서 Azure Cosmos DB for MongoDB vCore에 저장된 문서 및 백업에 대해 사용할 수 있습니다. 이러한 영역의 신규 및 기존 고객에 대해 미사용 데이터의 암호화가 자동으로 적용됩니다. 아무것도 구성할 필요가 없습니다. 이전과 동일한 대기 시간, 처리량, 가용성, 기능과 함께 미사용 데이터를 암호화해 안전하게 보호하는 이점을 얻을 수 있습니다. Azure Cosmos DB for MongoDB vCore 클러스터에 저장된 데이터는 서비스 관리형 키를 사용하여 Microsoft에서 관리하는 키로 자동으로 원활하게 암호화됩니다.
내 데이터베이스를 보호하는 방법
데이터 보안은 사용자, 고객 그리고 데이터베이스 공급자 간의 공동 책임입니다. 선택한 데이터베이스 공급자에 따라 담당하는 책임의 양이 달라질 수 있습니다. 온-프레미스 솔루션을 선택한 경우 끝점 보호부터 하드웨어의 물리적 보안까지 모든 항목을 제공해야 하며 이것은 쉬운 작업이 아닙니다. Azure Cosmos DB와 같은 PaaS 클라우드 데이터베이스 공급자를 선택할 경우 관여해야 하는 부분이 상당히 줄어듭니다. 다음 그림은 Microsoft의 클라우드 컴퓨팅에 대한 공유 책임 백서를 인용한 것으로 Azure Cosmos DB와 같은 PaaS 공급자를 사용할 경우 사용자가 작업할 부분이 어떻게 줄어드는지를 보여 줍니다.
이전 다이어그램은 대략적인 클라우드 보안 구성 요소를 보여주지만 데이터베이스 솔루션에 대해 특히 고려해야 하는 항목은 무엇일까요? 또한 솔루션을 서로 어떻게 비교해볼 수 있나요?
데이터베이스 시스템을 비교하는 데 다음 요구 사항 검사 목록을 사용하는 것이 좋습니다.
- 네트워크 보안 및 방화벽 설정
- 사용자 인증 및 세분화된 사용자 제어
- 지역별 오류에 대해 전역으로 데이터를 복제하는 기능
- 데이터 센터 간의 장애 조치(failover) 기능
- 데이터 센터 내에서 로컬 데이터 복제
- 자동 데이터 백업
- 백업에서 삭제된 데이터 복원
- 중요한 데이터 보호 및 격리
- 공격 모니터링
- 공격에 대응
- 지오-펜스 데이터가 데이터 관리 제한을 준수하는 기능
- 보호된 데이터 센터에서 서버의 물리적 보호
- 인증
명백해 보일지 모르지만, 최근의 대규모 데이터베이스 침해는 다음과 같은 요구 사항의 간단하지만 민감한 중요성을 상기시켜 줍니다.
- 최신 상태로 유지되는 패치된 서버
- HTTPS(기본값)/TLS 암호화
- 강력한 암호를 사용하는 관리 계정
Azure Cosmos DB에서 내 데이터베이스를 보호하는 방법
Azure Cosmos DB for MongoDB vCore는 이러한 모든 보안 요구 사항을 원활하게 충족합니다.
구체적으로 자세히 살펴보겠습니다.
보안 요구 사항 | Azure Cosmos DB의 보안 접근 방식 |
---|---|
네트워크 보안 | 완성도 높은 Private Link 기술을 통해 구현된 프라이빗 액세스를 통해 Azure VNet의 리소스에 대한 클러스터에 대한 액세스를 제공할 수 있습니다. 공용 액세스를 사용하면 정의된 공용 IP 주소 집합에 대한 클러스터를 열 수 있습니다. 프라이빗 및 퍼블릭 액세스는 언제든지 결합 및 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본 구성: MongoDB용 Azure Cosmos DB vCore 클러스터는 기본적으로 잠겨 있습니다. 클러스터에 대한 액세스를 제공하려면 클러스터를 만드는 동안 또는 클러스터 이후에 클러스터에 대한 프라이빗 및/또는 공용 액세스를 사용하도록 네트워킹 설정을 업데이트해야 합니다. 프라이빗 액세스: 프라이빗 액세스를 사용하도록 설정하면 Azure 가상 네트워크 내에서 프라이빗 클러스터에 액세스하기 위해 프라이빗 엔드포인트를 만들 수 있습니다. 프라이빗 엔드포인트는 지정된 VNet의 서브넷에 만들어집니다. 완료되면 로컬 및 글로벌 가상 네트워크 피어링, 프라이빗 온-프레미스 환경에 대한 액세스, 네트워크 트래픽 필터링 및 라우팅 등을 비롯한 모든 Azure 가상 네트워크 기능을 클러스터에서 사용할 수 있습니다. 공용 액세스: IP 방화벽을 사용하는 것은 데이터베이스를 보호하는 첫 번째 보호 계층입니다. Azure Cosmos DB for MongoDB vCore는 인바운드 방화벽 지원을 위해 정책 중심 IP 기반 액세스 제어를 지원합니다. IP 기반 액세스 제어는 기존 데이터베이스 시스템에서 사용하는 방화벽 규칙과 유사합니다. 단, 승인된 컴퓨터 또는 클라우드 서비스 집합에서만 Azure Cosmos DB for MongoDB vCore 클러스터에 액세스할 수 있도록 확장되었습니다. 이 허용된 목록 이외의 컴퓨터에서 보내는 모든 요청은 Azure Cosmos DB for MongoDB vCore에서 차단됩니다. 승인된 컴퓨터 및 클라우드 서비스에서 보내는 요청은 리소스에 대한 액세스 제어를 부여 받기 위해 인증 과정을 완료해야 합니다. |
로컬 복제 | 단일 지역 내에서도 Azure Cosmos DB for MongoDB vCore는 스토리지 수준에서 데이터를 복제하여 각 실제 분할된 데이터베이스의 동기 복제본 3개는 항상 투명하게 유지 관리합니다. HA 지원 클러스터에는 각 기본 및 대기 물리적 분할된 데이터베이스 쌍 간에 다른 복제 계층이 있습니다. 고가용성 복제는 동기적이며 장애 조치(failover)에 대한 데이터 손실이 0이 되므로 단일 지역 설정에 대해 99.99%의 월간 가용성 SLA를 보장합니다. |
글로벌 복제 | Azure Cosmos DB for MongoDB vCore는 다른 Azure 지역에 데이터를 복제할 수 있는 지역 간 복제를 제공합니다. 글로벌 복제를 통해 전역적으로 크기를 조정하고 전 세계 데이터에 짧은 대기 시간으로 액세스할 수 있습니다. 보안 컨텍스트에서 전역 복제는 드문 지역 중단에 대한 데이터 보호를 보장합니다. 지역 간 복제본 클러스터를 사용하면 데이터의 복사본이 항상 다른 지역에 존재합니다. 고가용성과 결합된 다른 지역의 복제본은 다중 지역 설정에 대해 매월 99.995%의 가용성 SLA를 제공합니다. |
데이터베이스 격리 | MongoDB용 Azure Cosmos DB vCore 데이터베이스는 자체 전용 리소스에서 호스트됩니다. 즉, 각 클러스터는 물리적 분할된 데이터베이스라고 하는 자체 전용 노드를 가져오거나 다중 분할된 데이터베이스 구성에서 몇 개의 전용 노드를 가져옵니다. 각 실제 분할된 데이터베이스에는 자체 컴퓨팅 및 원격 스토리지가 연결되어 있습니다. 데이터베이스에 대한 물리적 및 논리적 격리의 추가 계층을 제공하는 클러스터 간에 인프라 공유는 없습니다. |
자동화된 클러스터 백업 | Azure Cosmos DB for MongoDB vCore 클러스터에 대한 백업은 클러스터를 만들 때 사용하도록 설정되고, 완전히 자동화되며, 사용하지 않도록 설정할 수 없습니다. 복원 은 35일 백업 보존 기간 내에 모든 타임스탬프에 제공됩니다. |
삭제된 데이터 복원 | 자동화된 온라인 백업을 사용하여 이벤트 후 최대 7일까지 실수로 삭제한 클러스터에서 데이터를 복구할 수 있습니다. |
HTTPS/SSL/TLS 암호화 | Azure Cosmos DB for MongoDB vCore 클러스터와의 모든 네트워크 통신은 암호화됩니다. MongoDB 클라이언트를 통한 연결만 허용되며 암호화는 항상 적용됩니다. 데이터가 Azure Cosmos DB for MongoDB vCore에 기록될 때마다 데이터는 전송 중에 암호화됩니다. 데이터 암호화는 최대 1.3(포함)의 TLS 수준을 지원합니다. |
미사용 데이터 암호화 | 모든 백업을 포함한 MongoDB용 Azure Cosmos DB vCore 데이터는 임시 파일을 포함하여 디스크에서 암호화됩니다. 서비스는 Azure 스토리지 암호화에 포함된 AES 256비트 암호화를 사용하며, 키는 시스템에서 관리됩니다. 스토리지 암호화는 항상 켜져 있고 해제할 수 없습니다. |
공격 모니터 | 감사 로깅 및 활동 로그를 사용하여 데이터베이스에서 정상 및 비정상적인 활동을 모니터링할 수 있습니다. 리소스에 대해 수행된 작업을 볼 수 있습니다. 이 데이터에는 작업을 시작한 사람, 작업이 발생한 시기, 작업 상태 등이 포함됩니다. |
공격에 대응 | Azure 지원 연락하여 잠재적인 공격을 보고하면 5단계 인시던트 대응 프로세스가 시작됩니다. 5단계 프로세스의 목표는 정상적인 서비스 보안 및 작업을 복원하는 것입니다. 5단계 프로세스는 문제가 검색되어 조사가 시작된 후 가능한 한 빨리 서비스를 복원합니다. 클라우드의 공유 책임에 대해 자세히 알아보세요. |
보호된 기능 | Azure Cosmos DB for MongoDB vCore의 데이터는 Azure의 보호된 데이터 센터에 저장됩니다. Microsoft 글로벌 데이터 센터에 대한 자세한 정보 |
패치된 서버 | Azure Cosmos DB for MongoDB vCore는 자동으로 수행되는 소프트웨어 업데이트 및 패치 클러스터를 관리할 필요가 없습니다. |
강력한 암호를 사용하는 관리 계정 | 이 요구 사항은 당연하게 여겨질 수 있지만, 일부 경쟁업체와 달리 Azure Cosmos DB for MongoDB vCore에서는 관리 계정에 반드시 암호가 있어야 합니다. 암호는 8자 이상이어야 하며 영어 대문자와 소문자, 숫자 및 영숫자가 아닌 문자를 포함해야 합니다. TLS 암호 기반 인증을 통한 보안이 기본적으로 반영됩니다. |
보조 계정 | 더 세분화된 액세스를 위해 클러스터의 데이터베이스에 대한 읽기-쓰기 또는 읽기 전용 권한이 있는 클러스터에서 보조 사용자 계정을 만들 수 있습니다. |
보안 및 데이터 보호 인증서 | 최신 인증 목록을 보려면 Azure 규정 준수와 Azure Cosmos DB를 비롯한 모든 Azure 인증에 대한 최신 Azure 규정 준수 문서를 참조하세요. |
다음 스크린샷은 감사 로깅 및 활동 로그를 사용하여 계정을 어떻게 모니터링할 수 있는지 보여 줍니다.
네트워크 보안 옵션
이 섹션에서는 클러스터에 대해 구성할 수 있는 다양한 네트워크 보안 옵션에 대해 설명합니다. 클러스터에서 공용 및 프라이빗 액세스 옵션을 결합할 수 있습니다. 언제든지 네트워크 구성 설정을 변경할 수 있습니다.
권한 없음
공용 또는 프라이빗 액세스를 위해 클러스터를 프로비전하는 동안 방화벽 규칙이나 프라이빗 엔드포인트가 생성되지 않은 경우 새로 만든 클러스터에 대한 기본 옵션은 No Access 입니다. 이 경우 Azure 내부 또는 외부에 관계없이 어떤 컴퓨터도 데이터베이스 노드에 연결할 수 없습니다.
방화벽을 사용한 공용 IP 액세스
공용 액세스 옵션에서 공용 IP 주소는 클러스터에 할당되고 클러스터에 대한 액세스는 방화벽으로 보호됩니다. 공용 IP 주소가 클러스터의 방화벽 규칙 중 하나에 지정되지 않은 경우 해당 IP 주소의 요청은 방화벽에서 거부되고 데이터베이스에 도달하지 않습니다.
프라이빗 액세스
프라이빗 액세스 옵션에서 클러스터에 대한 프라이빗 엔드포인트가 만들어집니다. 이 프라이빗 엔드포인트는 Azure VNet(가상 네트워크) 및 해당 VNet 내의 서브넷과 연결됩니다. 프라이빗 엔드포인트를 사용하면 연결된 가상 네트워크 및 피어된 가상 네트워크의 호스트가 MongoDB용 Azure Cosmos DB vCore 클러스터에 액세스할 수 있습니다.
방화벽 개요
Azure Cosmos DB for MongoDB vCore는 클러스터 수준 방화벽을 사용하여 권한이 있는 컴퓨터(IP 주소)를 지정할 때까지 클러스터에 대한 모든 액세스를 방지합니다. 방화벽은 각 요청이 시작된 IP 주소의 서버에 대한 액세스를 허용합니다. 방화벽 을 구성하려면 허용 가능한 IP 주소 범위를 지정하는 방화벽 규칙을 만듭니다.
방화벽 규칙을 사용하면 클라이언트가 클러스터와 그 안에 있는 모든 데이터베이스에 액세스할 수 있습니다. 클러스터 수준 방화벽 규칙은 Azure Portal을 사용하거나 Azure CLI와 같은 Azure 도구를 사용하여 프로그래밍 방식으로 구성할 수 있습니다.
기본적으로 방화벽은 클러스터에 대한 모든 액세스를 차단합니다. 다른 컴퓨터에서 클러스터 사용을 시작하려면 클러스터에 액세스할 수 있도록 하나 이상의 클러스터 수준 방화벽 규칙을 지정해야 합니다. 방화벽 규칙을 사용하여 허용할 인터넷에서의 IP 주소 범위를 지정합니다. 방화벽 규칙은 Azure Portal 웹 사이트 자체에 대한 액세스에 영향을 주지 않습니다. 인터넷 및 Azure에서의 연결 시도는 먼저 방화벽을 통과해야 데이터베이스에 연결할 수 있습니다.