NoSQL용 Azure Cosmos DB에 대한 보안 지침
적용 대상: NoSQL
개요, 개념, 준비, 역할 기반 액세스 제어, 네트워크 및 참조 순서대로 이러한 위치를 포함하는 배포 가이드 시퀀스의 다이어그램 '개요' 위치가 현재 강조 표시되어 있습니다.
NoSQL용 Azure Cosmos DB를 사용하는 경우 의도하지 않거나 무단으로 액세스하지 않도록 하면서 권한 있는 사용자 및 애플리케이션이 데이터에 액세스할 수 있도록 하는 것이 중요합니다.
키 및 리소스 소유자 암호 자격 증명을 사용하는 것이 편리한 옵션처럼 보일 수 있지만 여러 가지 이유로 인해 권장되지 않습니다. 첫째, 이러한 방법은 Microsoft Entra 인증에서 제공하는 견고성과 유연성이 부족합니다. Microsoft Entra는 다단계 인증 및 조건부 액세스 정책과 같은 향상된 보안 기능을 제공하여 무단 액세스의 위험을 크게 줄입니다. Microsoft Entra를 사용하면 애플리케이션의 보안 태세를 크게 향상시키고 잠재적인 위협으로부터 중요한 데이터를 보호할 수 있습니다.
액세스 관리
Microsoft Entra를 사용하는 역할 기반 액세스 제어를 사용하면 데이터에 액세스할 수 있는 사용자, 디바이스 또는 워크로드를 관리하고 해당 데이터에 액세스할 수 있는 범위를 관리할 수 있습니다. 역할 정의에서 세분화된 권한을 사용하면 데이터 액세스를 간단하고 간소화된 개발용으로 유지하면서 "최소 권한"의 보안 주체를 유연하게 적용할 수 있습니다.
프로덕션 환경에서 액세스 권한 부여
프로덕션 애플리케이션에서 Microsoft Entra는 다음을 포함하지만 제한되지 않는 여러 ID 형식을 제공합니다.
- 특정 애플리케이션 워크로드에 대한 워크로드 ID
- Azure 서비스에 네이티브 시스템 할당 관리 ID
- 여러 Azure 서비스 간에 유연하게 재사용할 수 있는 사용자 할당 관리 ID
- 사용자 지정 및 보다 정교한 시나리오에 대한 서비스 주체
- 에지 워크로드에 대한 디바이스 ID
이러한 ID를 사용하면 특정 프로덕션 애플리케이션 또는 워크로드에 Azure Cosmos DB의 리소스 쿼리, 읽기 또는 조작에 대한 세분화된 액세스 권한을 부여할 수 있습니다.
개발에서 액세스 권한 부여
개발에서 Microsoft Entra는 개발자의 인간 ID에 동일한 수준의 유연성을 제공합니다. 동일한 역할 기반 액세스 제어 정의 및 할당 기술을 사용하여 개발자에게 테스트, 스테이징 또는 개발 데이터베이스 계정에 대한 액세스 권한을 부여할 수 있습니다.
보안 팀에는 모든 환경에서 계정에 대한 ID 및 권한을 관리하는 단일 도구 모음이 있습니다.
인증 코드 간소화
Azure SDK를 사용하면 다양한 시나리오에서 프로그래밍 방식으로 Azure Cosmos DB 데이터에 액세스하는 데 사용되는 기술입니다.
- 애플리케이션이 개발 또는 프로덕션에 있는 경우
- 사용자, 워크로드, 관리 또는 디바이스 ID를 사용하는 경우
- 팀에서 Azure CLI, Azure PowerShell, Azure Developer CLI, Visual Studio 또는 Visual Studio Code를 사용하는 것을 선호하는 경우
- 팀에서 Python, JavaScript, TypeScript, .NET, Go 또는 Java를 사용하는 경우
Azure SDK는 많은 플랫폼, 개발 언어 및 인증 기술과 호환되는 ID 라이브러리를 제공합니다. Microsoft Entra 인증을 사용하도록 설정하는 방법을 알아보면 이 기술은 모든 시나리오에서 동일하게 유지됩니다. 각 환경에 대해 고유한 인증 스택을 빌드할 필요가 없습니다.