AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

managed LDAP를 사용하여 데이터베이스 사용자를 관리

Kubernetes Operator는 TLS 및 LDAP 클러스터 인증 활성화된 상태에서 실행 배포에 대한 데이터베이스 사용자 관리를 지원합니다.

LDAP 통해 인증된 사용자에 대한 구성은 LDAP 쿼리 템플릿과 MongoDB 설정하는 매핑에 의존합니다.

자세한 내용은 MongoDB Server 문서의 다음 섹션을 참조하세요.

Kubernetes Operator는 생성하는 배포에서 SCRAM, LDAP 및 X.509 인증 메커니즘을 지원합니다. Kubernetes 연산자 생성 배포에서는 MongoDB Ops Manager 를 사용하여 다음을 수행할 수 없습니다.

  • 배포를 위한 다른 인증 메커니즘을 구성합니다.

  • SCRAM, LDAP 또는 X.509 인증을 사용 하지 않는 사용자를 managed합니다.

데이터베이스 사용자를 관리하기 전에 LDAP 활성화된 복제본 세트 또는 샤딩된 클러스터 배포 해야 합니다. 활성화되었습니다. 선택적으로 TLS를 활성화 할 수 있습니다. 자세한 학습 은 데이터베이스 리소스 보호를 참조하세요.

1

아직 실행하지 않았다면 다음 명령을 실행하여 생성한 네임스페이스에서 kubectl 명령을 모두 실행합니다.

참고

다중 Kubernetes 클러스터 MongoDB deployment에서 MongoDB Ops Manager 리소스를 배포하는 경우:

  • context를 중앙 클러스터 의 이름(예: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME")으로 설정합니다.

  • --namespace 를 다중 Kubernetes 클러스터 MongoDB 배포에 사용한 것과 동일한 범위 (예: kubectl config --namespace "mongodb" 로 설정합니다.

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2
---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
3
4

다음 표를 참조하여 MongoDB 사용자 리소스 사양 의 관련 줄을 변경하는 방법을 안내합니다. LDAP 사용자 설정의 전체 목록은 Kubernetes 연산자 MongoDB 리소스 사양의 보안 설정 을 참조하세요.

키
유형
설명
예시

metadata.name

문자열

MongoDB database 데이터베이스 사용자의 리소스 이름입니다.

리소스 이름은 44자 이내여야 합니다.

ldap-user-1

spec.db

문자열

사용자를 추가할 MongoDB database의 이름입니다. 이 값은 $external 이어야 합니다.

$external

spec.mongodbResourceRef.name

문자열

이 사용자가 연결된 MongoDB 리소스 의 이름입니다.

my-resource

spec.opsManager.configMapRef.name

문자열

사용자를 추가할 MongoDB 데이터베이스가 포함된 프로젝트의 이름입니다. spec.cloudManager.configMapRef.name 설정은 이 설정의 별칭이며 대신 사용할 수 있습니다.

my-project

spec.roles.db

문자열

역할 이 작동할 수 있는 데이터베이스입니다.

admin

spec.roles.name

문자열

데이터베이스 사용자에게 부여할 역할 의 이름입니다. 역할 이름은 Cloud Manager 또는 Ops Manager 에 있는 모든 내장 MongoDB 역할 또는 사용자 지정 역할 일 수 있습니다.

readWriteAnyDatabase

spec.username

문자열

spec.security.authentication.ldap.userToDNMapping에 따라 LDAP DN(고유 이름)에 매핑되는 인증된 사용자 이름 입니다. DN은 LDAP 배포서버 에 이미 존재해야 합니다. 이 사용자 이름 RFC 2253 LDAPv3 고유 이름 표준을 준수해야합니다. transformed

자세한 학습 은 MongoDB 매뉴얼의 LDAP 쿼리 템플릿을 참조하세요.

uid=mdb0,dc=example,dc=org

5

다음 예제에 정의된 형식을 사용하여 이 사용자에게 추가 역할을 부여할 수 있습니다.

---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
6

다음 Kubernetes 명령을 호출하여 데이터베이스 사용자를 생성합니다.

kubectl apply -f <database-user-conf>.yaml

다음 예제는 Kubernetes 연산자 MongoDB deployment에서 LDAP로 인증을 활성화할 때 사용할 수 있는 연결 문자열 형식을 보여줍니다. 이 예제에서는 mongodb 네임스페이스와 replica-set-ldap 이라는 이름의 복제본 세트 배포를 사용합니다. 예제는 샤드 cluster와 유사합니다.

  • connectionString.standard: 이 데이터베이스 사용자로 데이터베이스 에 연결할 수있는 표준 연결 문자열 .

    mongodb://replica-set-ldap-0-0-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external
  • connectionString.standardSrv: 이 데이터베이스 사용자로 데이터베이스 에 연결할 수 있는DNS 시드 목록 연결 문자열 .

    mongodb+srv://replica-set-ldap-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external

이전에 표시된 형식을 사용하면 다음 예제와 같이 MongoDB Shell(mongosh)로 MongoDB database에 연결할 수 있습니다.

mongosh <connection-string> \
--host <my-replica-set>/web1.example.com \
--port 30907 \
--authenticationMechanism PLAIN \
--username cn=rob,cn=Users,dc=ldaps-01,dc=myteam,dc=com

이러한 자격 증명을 사용하여 Kubernetes 내부에서 MongoDB database 리소스에 연결할 수 있습니다.

7

Cloud Manager 또는 Ops Manager에서 새로 생성된 사용자를 볼 수 있습니다.

  1. 프로젝트의 Deployment 보기에서 Security 탭을 클릭합니다.

  2. 중첩된 MongoDB Users 탭을 클릭합니다.

데이터베이스 사용자를 삭제하려면 metadata.name 사용자 ConfigMap 에서 를 전달합니다. 다음 명령에 추가합니다.

kubectl delete mdbu <metadata.name>