Atlas 조직, 프로젝트 및 데이터베이스 수준에서 사용자 권한을 관리하기 위한 시스템을 제공합니다. Atlas Stream Processing 스트림 처리 작업과 관련된 추가 역할 및 권한은 물론 사용자 권한을 특정 stream processing 작업 공간으로 제한하는 기능을 통해 이 시스템을 확장합니다.
조직 및 프로젝트 액세스
사용자는 프로젝트 수준에서 스트림 처리 작업 공간 및 관련 연결 레지스트리를 관리합니다. Atlas Stream Processing은 이러한 목적을 위한 Project Stream Processing Owner 역할을 제공합니다. 이 역할을 가진 사용자는 모든 스트림 처리 작업 공간 또는 연결 레지스트리 관리 작업을 수행하고, 프로젝트 내에서 데이터베이스와 데이터베이스 사용자를 관리할 수 있습니다. 이 역할을 사용자에게 할당하면 최소 권한 원칙에 따라 기능에 불필요한 권한을 부여하지 않고도 Atlas Stream Processing 프로젝트를 구성하는 데 필요한 모든 작업을 수행할 수 있습니다.
필요한 경우 Project Owner 또는 Organization Owner 역할이 있는 사용자로서 Project Stream Processing Owner 역할이 승인한 조치를 수행할 수 있습니다.
Stream Processing 작업 공간 액세스
데이터베이스 사용자는 Atlas 클러스터에 액세스 하는 것과 마찬가지로 기존 스트림 처리 작업 공간에 액세스하고 스트림 프로세서를 관리할 수 있습니다. 데이터베이스 사용자에게 할당된 역할 및 작업은 스트림 처리 작업 공간 내의 스트림 프로세서에서 수행할 수 있는 작업을 결정합니다. Atlas Stream Processing은 다음과 같은 권한 작업을 제공합니다.
processStreamProcessorcreateStreamProcessorstartStreamProcessorstopStreamProcessordropStreamProcessorlistStreamProcessorssampleStreamProcessorstreamProcessorStatslistConnections
필요한 데이터베이스 사용자 또는 사용자 지정 역할 에 이러한 권한 조치를 정확히 할당할 수 있습니다. 또는 atlasAdmin 또는 readWriteAnyDatabase 을(를) 가진 데이터베이스 사용자가 이러한 모든 조치를 수행할 수 있습니다.
Networking
Atlas Stream Processing은 Atlas 클러스터와 외부 스트리밍 데이터 소스(예: Apache Kafka)에 대한 연결을 모두 지원합니다. Atlas 내에서 연결하려면 수동으로 구성할 필요가 없습니다. 외부 스트리밍 데이터 소스 에 연결하려면 외부 스트리밍 데이터 소스의 액세스 목록에 Atlas IP 주소를 추가해야 합니다.
필요한 Atlas IP 주소를 식별하려면 다음 명령을 실행하세요.
curl -H 'Accept: application/vnd.atlas.2023-11-15+json' -s \ 'https://cloud.mongodb.com/api/atlas/v2/unauth/controlPlaneIPAddresses'
그러면 제공자 및 리전별로 그룹화된 사용 가능한 Atlas IP 주소 목록이 반환됩니다. 대상 스트림 처리 작업 공간이 배포된 제공자-리전 쌍의 모든 아웃바운드 IP 주소를 식별하고 이를 외부 데이터 소스의 액세스 목록에 추가합니다. 자세한 내용은 Atlas Control Plane에 대한 액세스 허용을 참조하세요.
외부 스트리밍 데이터 소스에 대한 연결을 구성할 때 공용 IP 주소를 통한 액세스 또는 VPC 피어링 연결을 선택할 수 있습니다. 자세한 내용은 연결 레지스트리에 연결 추가를 참조하세요.
특정 스트림 처리 작업 공간에 대한 액세스 제한
기본적으로 Atlas Stream Processing 권한이 있는 사용자는 모든 스트림 처리 작업 공간에서 관련 작업을 수행할 수 있습니다. 이러한 권한을 특정 스트림 처리 작업 공간으로 제한할 수 있습니다.
AtlasGo Atlas 에서 프로젝트 의 Database & Network Access 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Database & Network Access를 클릭합니다.
데이터베이스 & 네트워크 액세스 페이지가 표시됩니다.
권한을 수정하려는 사용자의 행에서 Edit 를 클릭합니다.
모달 창에서 Restrict Access to Specific Clusters /Federated Database Instances/Stream Processing Workspaces 레이블이 지정된 스위치를 켜기로 전환합니다.
사용자에게 권한을 부여할 스트림 처리 작업 공간의 이름을 찾습니다. 해당 스트림 처리 작업 공간에 대한 사용자 권한을 부여하려면 이름 옆의 확인란을 선택합니다. 해당 스트림 처리 작업 공간에 대한 사용자 권한을 제한하려면 확인란의 선택을 해제합니다.
실행 프로필
Atlas 데이터베이스에 연결할 때 사용하는 데이터베이스 사용자 역할을 $source 또는 $merge 싱크로 구성할 수 있습니다. 이를 통해 Atlas Stream Processing전용 데이터베이스 사용자가 스트림 처리 작업 공간 및 해당 연결을 구성하는 고급 권한의 Atlas 사용자 자격 증명을 통해 해당 데이터베이스를 호스팅하는 클러스터에 간접적으로 접근하는 것을 방지할 수 있습니다.
참고
최소 권한 원칙에 따라 사용자가 원하는 작업을 수행하는 데 필요한 권한만 있는 사용자 지정 역할을 정의합니다.
AtlasGo Atlas 에서 프로젝트 의 Stream Processing 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Streaming Data 제목 아래의 Stream Processing를 클릭합니다.
스트림 처리 페이지가 표시됩니다.
구성하려는 스트림 처리 작업 공간의 창에서 Configure를 클릭합니다.
Connection Registry 탭을 클릭합니다. 구성하려는 Atlas 데이터베이스 연결의 행에서 다음을 클릭합니다..
Execute As 드롭다운 메뉴에서 데이터베이스에 연결할 때 사용할 역할을 선택합니다.
Auditing
Atlas Stream Processing 감사를 통해 관리자는 스트림 처리 작업 공간에서 인증 및 엔티티 관리 이벤트를 추적할 수 있습니다. 특정 스트림 처리 작업 공간에서 감사 가능한 이벤트가 발생할 때마다 Atlas Stream Processing은 해당 스트림 처리 작업 공간의 로그에 해당 이벤트를 기록합니다. 로그는 해당 로그가 속한 스트림 처리 작업 공간의 수명 동안 유지되며, Atlas Stream Processing은 오래된 이벤트를 절대로 잘라내지 않습니다. 스트림 처리 인스턴스를 삭제하면 해당 스트림 처리 작업 공간에 속한 로그가 추가로 30일 동안 지속됩니다.
스트림 처리 작업 공간에 대한 감사 로그를 다운로드하려면 감사 로그 다운로드를 참조하세요.
Atlas Stream Processing은 다음 인증 이벤트 감사를 지원합니다.
이벤트 | 설명 |
|---|---|
인증 성공 | 사용자가 스트림 처리 작업 공간에 성공적으로 연결할 때 발생 |
인증 실패 | 사용자가 스트림 처리 작업 공간에 연결하지 못할 때 발생 |
연결 종료 | 사용자가 연결을 종료할 때 발생 |
Atlas Stream Processing은 다음 엔터티 관리 이벤트 감사를 지원합니다.
startStreamProcessor | 사용자가 스트림 프로세서를 시작할 때 발생 |
|---|---|
createStreamProcessor | 사용자가 스트림 프로세서를 생성할 때 발생 |
stopStreamProcessor | 사용자가 스트림 프로세서를 중지할 때 발생 |
dropStreamProcessor | 사용자가 스트림 프로세서를 삭제할 때 발생 |
.process() | 사용자가 .process() 호출을 실행할 때 발생 |
.sample() | 사용자가 .sample() 호출을 실행할 때 발생 |
액세스한 감사 로그 | 사용자가 감사 로그를 다운로드하려고 할 때 발생 |