Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
Kubernetes Operator용 MongoDB 컨트롤러
/ /

OIDC 인증을 사용하여 데이터베이스 사용자 관리

Kubernetes Operator는 TLS 및 OIDC 클러스터 인증 활성화된 상태에서 실행 배포에 대한 데이터베이스 사용자 관리를 지원합니다. 이를 통해 구성된 OIDC 제공자 에 대해 인증하는 개별 데이터베이스 사용자 객체를 만들 수 있습니다.

이 메서드는 OIDC 제공자 UserIDauthorizationType 로 구성된 경우 주로 사용됩니다.

GroupMembership 권한 부여 의 경우, 역할은 개별 MongoDBUser 리소스를 통하지 않고 MongoDB 리소스 사양에서 직접 managed 됩니다.

  • MongoDBUser 리소스: 이 방법 managed 각 OIDC 사용자에게는 해당 MongoDBUser 사용자 지정 리소스 필요합니다. Kubernetes Operator는 이 리소스 사용하여 MongoDB 내에서 사용자를 구성합니다.

  • $external 데이터베이스: OIDC와 같은 외부 메커니즘을 통해 인증하는 모든 사용자는 $external 가상 데이터베이스 에서 생성되어야 합니다. MongoDBUser 리소스 에서 spec.db 를 "$external" 로 설정하다 해야 합니다.

  • 사용자 이름 형식: 사양입니다. 사용자 이름 <configurationName>/<userClaimValue> 형식을 따라야 하며, OIDC 제공자의 구성 이름과 사용자의 JSON web token 의 고유 클레임을 결합합니다. 이 클레임은 OIDC 제공자 구성에서 userClaim 로 지정되며 기본값은 sub입니다.

  • 인증 대 권한 부여: OIDC ID 제공자(IdP)는 사용자 인증(신원 확인)을 담당합니다. MongoDBUser 리소스 MongoDB 내에서 사용자에게 권한을 부여(사용자가 수행할 수 있는 작업 정의)하는 역할을 합니다.

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

1

사용자를 정의하는 파일 (예: my-oidc-user.yaml)을 만듭니다.

  • metadata.name: Kubernetes 내 MongoDBUser 리소스 의 고유 이름입니다.

  • spec.username: 사용자의 OIDC ID로, oidc 제공자의 configurationName 와 사용자의 고유 토큰 클레임을 <configurationName>/<userClaimValue> 형식으로 결합합니다.

  • spec.db: $external이어야 합니다.

  • spec.mongodbResourceRef.name: 이 사용자가 속한 MongoDB 리소스 의 이름입니다.

  • spec.roles: 이 사용자에게 부여할 MongoDB 역할의 배열 .

다음은 앱 데이터 데이터베이스 에 대한 읽기-쓰기 액세스 있는 사용자를 생성하는 예시 입니다.

apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
# A unique name for this Kubernetes resource.
name: oidc-app-user-1
spec:
# This username MUST match the 'userClaim' from the OIDC token.
username: "idp0/a1b2c3d4e5f6g7h8"
# OIDC users MUST be created in the $external database.
db: "$external"
# Point to the MongoDB deployment where this user should be created.
mongodbResourceRef:
name: my-oidc-replicaset
# Grant MongoDB roles to the user.
roles:
- db: "app-data"
name: "readWrite"
2
kubectl apply -f my-oidc-user.yaml

데이터베이스 사용자를 삭제 하려면 해당 사용자와 연결된 MongoDBUser 리소스 삭제 만 하면 됩니다. Kubernetes Operator는 MongoDB database 에서 사용자를 자동으로 제거 . MongoDBUser 리소스 의 metadata.name 을 다음 명령에 전달합니다.

kubectl delete mongodbuser oidc-app-user-1

이 페이지의 내용