Kerberos용 MongoDB Agent 구성
- Cloud Manager 에 대한 프로그래밍 방식의 액세스 를 위한 OAuth 2.0 인증 은 Preview 기능 으로 제공됩니다.
- 기능 및 해당 설명서는 미리 보기 기간에 언제든지 변경될 수 있습니다. OAuth 2.0 인증 을 사용하려면 Cloud Manager 공개 API 에 대한 요청에 사용할서비스 계정을 만듭니다.
MongoDB Enterprise 는 Kerberos를 지원합니다. Kerberos 네트워크 인증 프로토콜입니다. MongoDB Agent는 Kerberos를 실행하는 MongoDB 인스턴스에 인증할 수 있습니다.
전제 조건
최소 수명이 4시간인 티켓을 발행하도록 KDC 구성
Kerberos 티켓은 제한된 시간 동안 사용자를 인증할 수 있습니다. Kerberos 키 배포 센터(KDC)를 구성 해야 합니다. 4시간 이상 유효한 티켓을 발행합니다. MongoDB Agent는 주기적으로 티켓을 갱신합니다. KDC 서비스는 사용자와 호스트에게 세션 티켓과 임시 세션 키를 제공합니다.
배포를 위한 인증 메커니즘으로 Kerberos 추가
MongoDB Agent는 MongoDB 사용자처럼 배포서버의 MongoDB 데이터베이스와 상호 작용합니다. 따라서 인증을 지원하도록 MongoDB deployment 및 MongoDB Agent를 구성해야 합니다.
배포를 추가 할 때 배포의 인증 메커니즘을 지정하거나 기존 배포 의 설정을 편집 할 수 있습니다. 최소한 배포 시 MongoDB Agent에서 사용하려는 인증 메커니즘을 활성화해야 합니다. MongoDB Agent는 지원되는 모든 인증 메커니즘을 사용할 수 있습니다.
이 튜토리얼을 진행하려면 다음 사항을 확인해야 합니다.
배포에서 Kerberos 인증을 지원하며
MongoDB Agent는 Kerberos 인증을 사용합니다.
Kerberos 인증을 활성화하는 방법을 알아보려면 Cloud Manager 프로젝트에 Kerberos 인증 활성화를 참조하세요.
Kerberos를 사용하도록 MongoDB Agent 호스트 구성
모니터링 또는 백업을 실행하는 모든 호스트에 두 개의 Kerberos 관련 파일을 설치해야 합니다.
krb5.conf 를 만들거나 구성합니다. Kerberos 구성 파일.
플랫폼기본 경로참고 사항Linux/etc/krb5.conf
Windows%WINDIR%\krb5.ini
이 경로는 Active Directory 기반이 아닌 Kerberos 구현을 위한 기본 경로입니다. Kerberos 구성 파일이 저장되는 위치를 확인하려면 사용 중인 Windows 버전에 대한 Kerberos 구현에 대한 설명서를 참조하세요.Linux 시스템:kinit 확인 바이너리는 에
/usr/bin/kinit
있습니다.kinit
는 Kerberos를 사용하여 에이전트를 인증하는 Kerberos 티켓 부여 티켓을 얻거나 갱신합니다.
절차
MongoDB Agent에 대한 Kerberos 사용자 주체 생성
MongoDB Agent 에 대한Kerberos UPN(사용자 계정 이름)을 만들거나 선택합니다.
UPN 은 두 부분으로 형식이 지정되므로 Kerberos 영역에서 서비스를 고유하게 식별할 수 있습니다.
구성 요소 | 설명 |
---|---|
서비스 이름 | 호스트가 Kerberos 영역에 제공하는 한 서비스의 이름(예: pop 또는 ftp 입니다. |
Kerberos 영역 | 동일한 Kerberos 데이터베이스를 공유하는 managed 호스트 및 서비스의 집합입니다. Kerberos 명명 규칙에 따라 |
예시
EXAMPLE.COM
으로 설정된 Kerberos 영역에서 MongoDB 에이전트는 UPN 을 다음과 같이 설정합니다: mongodb-agent@EXAMPLE.COM
MongoDB Agent 의 keytab
Kerberos UPN에 대한 파일 을 생성합니다.
키탭 *.keytab
생성 MongoDB Agent UPN 에 대한 파일( )을 만들어 MongoDB Agent를 실행하는 호스트에 복사합니다. MongoDB Agent를 실행하는 운영 체제 사용자가 keytab
파일을 소유한 운영 체제 사용자와 동일한지 확인합니다.
MongoDB Agent UPN에 대한 사용자 생성 및 역할 할당
자동화가 활성화되면 Cloud Manager가 MongoDB Agent 인증을 managed합니다.
MongoDB Agent 인증을 위한 Kerberos를 구성하려면 Cloud Manager 프로젝트에 Kerberos 인증 활성화를 참조하세요.
MongoDB Agent 에 대한 Kerberos UPN 을 생성한 후, 배포서버 서버에서 MongoDB Agent의 UPN 에 해당하는 MongoDB 사용자를 생성하고 권한을 부여합니다.
MongoDB 사용자를 생성하는 위치는 LDAP 권한 부여 사용 여부에 따라 달라집니다.
참고
MongoDB 8.0부터 LDAP 인증 및 권한 부여는 더 이상 지원되지 않습니다. 이 기능은 사용할 수 있으며 MongoDB 8의 수명 기간 동안 변경 없이 계속 작동합니다. LDAP는 향후 주요 릴리스에서 제거될 예정입니다.
자세한 내용은 LDAP 사용 중단을 참조하세요.
MongoDB deployment 서버에서 LDAP 권한 부여 를 사용하는 경우, LDAP 서버 에서 MongoDB Agent 에 대한 LDAP 사용자 및 LDAP 그룹 을 생성해야 합니다. LDAP 사용자 및 그룹 을 만든 후 배포서버의 admin
데이터베이스 에 있는 MongoDB 역할 에 LDAP 그룹 을 매핑합니다.
경고
LDAP 권한 부여를 사용하는 경우 $external
데이터베이스 에 MongoDB 사용자를 생성 하지 마세요. $external
데이터베이스 에 MongoDB 사용자가 있고 LDAP 권한 부여 가 활성화된 경우 MongoDB 3.4 이상이 시작되지 않습니다.
MongoDB Agent 를 나타내는 MongoDB 사용자의 경우:
MongoDB Agent의 UPN 으로 명명된 LDAP 서버 에 새 LDAP 사용자를 생성합니다.
이름이 MongoDB Agent의 역할 과 일치하는 LDAP 그룹 을 생성합니다.
적절한 권한을 사용하여
admin
데이터베이스 에 MongoDB Agent의 역할 을 생성합니다.참고
자동화가 활성화되면 자동화는 LDAP 인증 을 위해 MongoDB Agent 사용자에 대한 역할 을 자동으로 생성합니다.
LDAP 사용자를 LDAP 그룹 에 할당합니다.
팁
다음도 참조하세요.
방법을 학습 보세요: | ~를 참조하세요. |
---|---|
LDAP 사용자 만들기 | LDAP 구현 에 대한 문서입니다. |
LDAP 그룹 만들기 | LDAP 구현 에 대한 문서입니다. |
MongoDB Agent 에 적절한 역할 할당 | |
LDAP 그룹 및 MongoDB 역할 매핑 | MongoDB 매뉴얼의 LDAP 권한 부여 페이지에 있는LDAP 역할 섹션 . |
Cloud Manager 자동화 없이 LDAP 권한 부여 구성 | MongoDB 매뉴얼의 LDAP 권한 부여 페이지. |
LDAP 권한 부여 를 사용하지 않는 경우, MongoDB deployment 의 $external
데이터베이스 에 MongoDB Agent의 UPN 을 사용자로 추가해야 합니다. LDAP 권한 부여 가 없으면 MongoDB 는 $external
데이터베이스 를 사용하여 Kerberos 에 대해 사용자를 인증합니다.
참고
MongoDB Agent에 적합한 역할을 찾으려면 MongoDB Agent 에 MongoDB Agent 액세스 권한을 참조하세요.
mongosh
에서 다음 명령을 실행하여 MongoDB 사용자를 생성합니다.
db.getSiblingDB("$external").createUser( { user : "<Kerberos Principal>", roles : [ { role : "clusterAdmin", db : "admin" }, { role : "readWriteAnyDatabase", db : "admin" }, { role : "userAdminAnyDatabase", db : "admin" }, { role : "dbAdminAnyDatabase", db : "admin" }, { role : "backup", db : "admin" }, { role : "restore", db : "admin" } ] } )