다음 Atlas 기능을 사용하여 컴플라이언스 요구 사항을 주소 .
인증 및 규정 준수
MongoDB Atlas는 보안, 컴플라이언스 및 개인정보 보호 요건을 충족할 수 있도록 최고 수준의 표준 및 컴플라이언스를 목표로 합니다.
Atlas 데이터 플랫폼은 보안, 개인정보 보호 및 조직 제어를 검증하기 위해 제삼자의 엄격한 독립 감사를 받습니다. 이러한 감사는 플랫폼이 컴플라이언스 및 법적 요구 사항을 충족하는지 확인하는 데 도움이 되며, 특히 규제가 엄격한 산업에 특화된 요구 사항을 포함합니다.
Atlas는 ISO/IEC 27001, SOC2 Type II, PCI DSS 및 Atlas 보안 센터에 나열된 기타 프레임워크를 포함한 컴플라이언스 프레임워크를 준수합니다. 당사의 고객 신뢰 포털에서 증명서, 컴플라이언스 보고서 및 기타 컴플라이언스 문서를 열람하고 다운로드하실 수 있습니다.
미국 정부 기관 위한 MongoDB Atlas
MongoDB Atlas for Government는 FedRAMP® Moderate에서 승인된 최초의 완전 관리형 멀티 클라우드 개발자 데이터 플랫폼으로, 다음과 같은 특징을 갖습니다.
- 안전한 관리형 FedRAMP® 인증 전용 환경 사용 
- 미국 정부의 고유한 요구 사항과 임무 지원 
- 레거시 애플리케이션을 현대화하기 위해 필요한 기능 세트와 확장성 제공 
Atlas 리소스 정책
Atlas 리소스 정책은 컴플라이언스 요구 사항을 지원하기 위해 보안, 컴플라이언스 및 운영 권장사항에 따라 Atlas 리소스를 구성하고 관리하기 위한 조직 전반의 제어 기능을 제공합니다. 조직 소유자는 클러스터, 네트워크 구성 및 프로젝트 설정과 같은 리소스를 만들거나 수정할 때 사용자 조치에 적용되는 규칙을 정의할 수 있습니다. 조직을 만들 때 회사 표준에 따라 리소스 정책을 설정하는 것이 좋습니다.
Atlas 리소스 정책은 다음과 같은 기능을 통해 컴플라이언스 목표를 지원합니다.
- 최소 TLS 버전 시행: 모든 Atlas 배포서버에서 최신 TLS 프로토콜 사용을 의무화하여 보안을 강화하고, 보안이 취약한 이전 버전과 관련된 위험을 줄입니다. 이를 통해 전송 중인 모든 데이터에 대한 최신 암호화 표준을 준수할 수 있습니다. 
- 기본값 TLS 암호 사용자 지정: 허용되는 특정 TLS 암호 집합을 선택해 운영 요구 사항에 따라 보안을 최적화하는 동시에, 레거시 암호화 방법과 관련된 취약성을 제거합니다. 이를 통해 암호화 프로토콜을 세밀하게 조정해 특정 컴플라이언스 요구 사항을 충족할 수 있습니다. 
- VPC 피어링 수정 제한: 기존 VPC 피어링 연결을 통해 안전한 크로스 네트워크 통신을 활성화하면서 구성 변경을 방지합니다. 현재 프로젝트 수준의 피어링은 기존 라우팅 테이블 및 보안 프로토콜과 함께 활성 상태로 유지되므로, 고객은 이러한 일대일 VPC 관계 및 관련 네트워크 제어 메커니즘을 볼 수는 있지만 변경할 수는 없습니다. 
- 비공개 엔드포인트 수정 제한: 읽기 전용 액세스 권한이 있는 기존 비공개 엔드포인트 구성을 통해 안전한 서비스 연결을 유지합니다. 프로젝트 수준 연결은 현재 비공개 IP 주소 체계로 계속 작동하며, 고객은 VPC 내에서 이러한 전용 서비스 연결 지점을 볼 수 있지만 수정할 수는 없습니다. 
- IP 액세스 목록 제어: IP 액세스 목록의 무단 수정을 방지하고, 데이터베이스에 대한 일관적인 네트워크 액세스를 보장합니다. 이를 통해 신중하게 정의된 네트워크 경계를 유지하고 우발적인 구성 변경을 방지하여 데이터베이스 보안을 강화합니다. 
- 클러스터 계층 한도 설정: 개발자가 리소스를 프로비저닝할 때 준수해야 하는 최대 및 최소 클러스터 크기 한도를 설정하여 배포서버 가드레일을 정의합니다. 이 경계 설정 접근 방식은 팀이 조직에서 승인한 매개변수 내에서 적절한 크기의 환경을 배포할 수 있도록 하여 인프라 활용을 최적화하고 모든 프로젝트 워크로드에 일관적인 리소스 할당 정책을 시행합니다. 
- 유지 관리 기간 요건 설정: 모든 프로젝트에 유지 관리 기간을 설정해 플랫폼 안정성을 강화합니다. 이러한 거버넌스 제어를 통해 조직은 특정 기간을 지정하지 않고도 예측 가능한 업데이트 기간을 설정하여 운영 요구 사항에 따라 일관적인 시스템 유지 관리를 지원할 수 있습니다. 
- 클라우드 공급자 및 리전 설정: 클라우드 공급자를 설정하고 여러 리전과 제공자에 클러스터를 분산하여 데이터 상주 요구 사항을 충족하고 고가용성을 보장합니다. 
- 와일드카드 IP 주소 사용 차단: IP 액세스 목록 또는 방화벽 규칙에 와일드카드 IP 주소를 포함하지 않도록 하여 명시적으로 허용된 IP 주소에서만 클러스터에 액세스할 수 있도록 합니다. 와일드카드 IP 주소는 0.0.0.0/0이며 어디서나 액세스를 허용합니다. 
자세한 내용은 Atlas 리소스 정책에서 확인하세요.
다음 리소스 정책 예시를 사용해 AWS에서 클러스터를 생성할 수 있습니다.
{   "name": "Only Allow Clusters on AWS",   "policies": [     {       "body": "forbid ( principal, action == cloud::Action::\"cluster.createEdit\", resource) unless { context.cluster.cloudProviders   == [cloud::cloudProvider::\"aws\"] };"     }   ] } 
다음 예시는 애플리케이션에서 리소스 정책을 구현하는 데 사용할 수 있는 Terraform 리소스 정책 파일을 생성합니다. 파일은 다음 정책을 시행합니다.
- 클러스터 수정을 특정 클라우드 공급자로만 제한 
- 와일드카드 IP 주소의 클러스터 접근 금지 
- 최소 및 최대 클러스터 크기 지정 
- 비공개 엔드포인트 수정 방지 
resource "mongodbatlas_resource_policy" "restrict_cloud_provider" {   org_id = var.org_id   name   = "restrict-cloud-provider"   policies = [     {       body = <<EOF         forbid (             principal,             action == ResourcePolicy::Action::"cluster.modify",             resource         )         unless           { context.cluster.cloudProviders == [ResourcePolicy::CloudProvider::"<cloud provider name>"] };       EOF     },   ] } resource "mongodbatlas_resource_policy" "forbid_project_access_anywhere" {   org_id = var.org_id   name   = "forbid-project-access-anywhere"   policies = [     {       body = <<EOF         forbid (             principal,             action == ResourcePolicy::Action::"project.ipAccessList.modify",             resource         )         when {context.project.ipAccessList.contains(ip("0.0.0.0/0"))};     EOF     },   ] } resource "mongodbatlas_resource_policy" "restrict_cluster_size: {     org_id = var.org_id     name   = "restrict-cluster-size"     policies = [         {             // restrict cluster size to a minimum of M30 and a maximum of M60             body = <<EOF                forbid (                    principal,                    action == ResourcePolicy::Action::"cluster.modify",                    resource                )                when {                    (context.cluster has minGeneralClassInstanceSizeValue && context.cluster.minGeneralClassInstanceSizeValue < 30)                    || (context.cluster has maxGeneralClassInstanceSizeValue && context.cluster.maxGeneralClassInstanceSize > 60)                };             EOF         },     ] } resource "mongodbatlas_resource_policy" "prevent-modifications-private-endpoints" {   org_id = var.org_id   name   = "prevent-modifications-private-endpoints"   policies = [     {       body = <<EOF         forbid (             principal,             action == ResourcePolicy::Action::"privateEndpoint.modify",             resource         )         when {context.project.privateEndpoints == [                 \"aws:<VPC_ENDPOINT_ID>",                 \"azure:<PRIVATE_ENDPOINT_RESOURCE_ID>:<PRIVATE_ENDPOINT_IP_ADDRESS>",                 \"gcp:<GCP_PROJECT_ID>:<VPC_NAME>"             ]};         EOF     },   ] } 
암호화 (Encryption)
암호화 구현 데이터 처리의 모든 단계에서 데이터 보안 및 컴플라이언스 보장할 수 있습니다. 암호화는 특정 표준의 규정 컴플라이언스 보장하기 위한 가장 일반적인 요구 사항 중 하나이며, Atlas 요구 사항을 충족하기 위해 강력한 암호화 옵션 설정하다 를 제공합니다.
- 기본적으로 Atlas는 전송 중 데이터를 암호화합니다. Atlas는 데이터 프라이버시 및 컴플라이언스를 보장하기 위해 데이터베이스 연결을 암호화할 때 TLS/SSL을 요구합니다. 
- 기본값 으로 Atlas cloud 제공자 디스크 암호화 사용하여 모든 미사용 데이터 암호화합니다. Atlas 클라우드 백업 사용하는 경우, Atlas AES-256 암호화 사용하여 Atlas cluster의 S3 버킷에 저장된 모든 데이터를 암호화합니다. 또한 Atlas Amazon Web Services KMS, AKV 및 GCP 사용하여 저장 엔진과 cloud 제공자 백업을 암호화할 수 있도록 지원합니다. 자세한 학습 은 키 관리를 사용한 미사용 데이터 암호화를 참조하세요. 
- Queryable Encryption을 사용하여 MongoDB에 저장된 문서의 선택된 민감한 필드에 대한 쿼리를 보호할 수 있습니다. 쿼리 가능한 암호화를 사용하면 사용자가 데이터를 쿼리할 때에도 민감한 정보가 보호됩니다. - 잘 연구된 비결정적 암호화 체계를 사용하여 보안과 기능 간의 균형을 유지하세요. - Queryable Encryption 사용하면 다음 작업을 수행할 수 있습니다. - 클라이언트 사이드의 민감한 데이터 필드를 암호화합니다. 
- 민감한 데이터 필드를 데이터베이스 클러스터 사이드에 완전히 무작위로 암호화됨 데이터로 저장하고 Atlas 로 실행 . 
- 암호화된 데이터에 대해 표현식 쿼리를 실행합니다. 
 - MongoDB는 서버가 처리 중인 데이터를 알지 못한 채 이러한 작업을 완료합니다. - Queryable Encryption 사용하면 민감한 데이터는 전송 중, 미사용 데이터, 사용 중, 로그, 백업 등 수명 주기 전반에 걸쳐 암호화됨 됩니다. 사용자만 암호화 키에 액세스 할 수 있으므로 데이터는 클라이언트 사이드 에서만 해독됩니다. - 다음 메커니즘을 사용하여 Queryable Encryption을 설정할 수 있습니다. - 자동 암호화 를 사용하면 필드를 암호화하고 해독하기 위한 명시적인 호출을 추가하지 않고도 암호화됨 읽기 및 쓰기 (write) 작업을 수행할 수 있습니다. 자동 암호화 클라이언트 애플리케이션 작성 프로세스 간소화하므로 대부분의 상황에서 권장됩니다. 자동 암호화 사용하면 MongoDB 읽기 및 쓰기 (write) 작업에서 필드를 자동으로 암호화하고 해독합니다. 
- 명시적 암호화 를 사용하면 MongoDB 드라이버의 암호화 라이브러리를 통해 암호화됨 읽기 및 쓰기 (write) 작업을 수행할 수 있습니다. 이 라이브러리를 사용하여 애플리케이션 전체에서 암호화 로직을 지정해야 합니다. 명시적 암호화 MongoDB 드라이버에 대한 컬렉션을 구성하고 코드를 작성할 때 복잡성이 증가 비용 대신 보안에 대한 세분화된 제어를 제공합니다. 명시적 암호화 사용하면 데이터베이스 에서 수행하는 각 작업에 대해 문서 의 필드를 암호화하는 방법을 지정하고 이 논리를 애플리케이션 전체에 포함할 수 있습니다. - 자세히 알아보려면 명시적 암호화 사용을 참조하세요. 
 
Data Sovereignty
Atlas는 AWS, Azure, GCP에서 110개 이상의 리전을 지원합니다. 지원되는 위치가 전 세계적에 분포되어 있어 데이터 주권 및 컴플라이언스 요건을 준수하는 클러스터를 프로비저닝하고 데이터를 저장할 수 있습니다. Atlas를 기반으로 구축되는 모든 애플리케이션에 대한 데이터 주권 요구 사항을 이해해야 올바른 거버넌스를 준수할 수 있습니다.
Atlas 클러스터를 여러 리전에 배포해 데이터 주권 컴플라이언스를 간소화할 수 있습니다. 멀티 리전 배포서버 패러다임을 배포할 때, 데이터를 분할해 서로 다른 지리적 리전에 위치한 개별 리전에 위치시킬 수 있습니다. 예를 들어 유럽 고객 데이터는 유럽에 저장하고 미국 고객 데이터는 미국에 저장할 수 있습니다. 이를 통해 데이터 주권 규정을 준수하고 각 리전에서 데이터를 액세스하는 사용자의 지연 시간을 줄일 수 있습니다.
백업 스냅샷 배포
여러 리전에 백업 스냅샷과 oplog 데이터를 배포할 수 있습니다. 예를 들어, 컴플라이언스 요건을 충족하기 위해 백업을 서로 다른 지리적 위치에 저장하면 지역적으로 장애가 발생할 때에도 재해 복구를 보장할 수 있습니다. 자세한 내용을 보려면 스냅샷 배포를 참조하세요.
백업 컴플라이언스 정책
Atlas 에서 백업 컴플라이언스 정책을 사용하여 비즈니스 크리티컬 데이터를 보호할 수 있습니다. Atlas 역할 에 관계없이 모든 사용자가 Atlas 에 저장된 모든 백업 스냅샷과 oplog 데이터를 사전 정의된 보존 기간 동안 수정하거나 삭제하지 못하도록 할 수 있습니다.
이를 통해 백업이 WORM(Write Once Read Many) 규격을 완벽하게 보장할 수 있습니다. 지정된 권한이 있는 사용자만 MongoDB 지원 및 법무팀과의 확인 절차를 완료한 후 이 보호 기능을 해제할 수 있습니다. 이렇게 하면 필수 수동 지연 및 쿨다운 기간이 추가되어 공격자가 백업 정책을 변경하고 데이터를 내보낼 수 없습니다. 자세히 알아보려면 백업 컴플라이언스 정책 구성을 참조하세요.