Kubernetes Operator는 TLS 및 OIDC 클러스터 인증 활성화된 상태에서 실행 배포에 대한 데이터베이스 사용자 관리를 지원합니다. 이를 통해 구성된 OIDC 제공자 에 대해 인증하는 개별 데이터베이스 사용자 객체를 만들 수 있습니다.
이 메서드는 OIDC 제공자 UserID
의 authorizationType
로 구성된 경우 주로 사용됩니다.
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를 활성화 할 수 있습니다. 자세한 학습 은 데이터베이스 리소스 보호를 참조하세요.
데이터베이스 사용자 추가
MongoDBUser YAML 파일 만듭니다.
사용자를 정의하는 파일 (예: 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"
데이터베이스 사용자 삭제
데이터베이스 사용자를 삭제 하려면 해당 사용자와 연결된 MongoDBUser
리소스 삭제 만 하면 됩니다. Kubernetes Operator는 MongoDB database 에서 사용자를 자동으로 제거 . MongoDBUser
리소스 의 metadata.name
을 다음 명령에 전달합니다.
kubectl delete mongodbuser oidc-app-user-1