Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes 연산자
/ /

X.509로 보안 배포

이 페이지의 내용

X.509 인증서를 사용하여 다중 Kubernetes 클러스터 MongoDB 배포에서 클라이언트 애플리케이션을 인증하도록 Kubernetes Operator를 구성할 수 있습니다.

X.509 인증서를 사용하여 멀티 Kubernetes 클러스터 MongoDB 배포를 보호하려면 중앙 클러스터 에서 모든 작업을 실행합니다. Kubernetes Operator는 X.509 구성을 각 멤버 클러스터에 전파하고 각 멤버 클러스터에서 Kubernetes Operator 구성을 업데이트합니다.

TLS 암호화를 사용하여 다중 Kubernetes cluster MongoDB 배포를 보호하기 전에 다음 작업을 완료하세요.

프로젝트 수준에서 X.509 인증을 활성화하면 모든 에이전트가 MongoDB 배포서버와 통신할 때 X.509 클라이언트 인증을 사용하도록 구성됩니다.

X.509 클라이언트 인증에는 다음 중 하나가 필요합니다.

  • 클라우드 매니저

  • Kubernetes Operator 버전과 호환되는 Ops Manager 버전입니다.

1

kubectl 명령을 실행하여 에이전트의 X.509 인증서를 저장하는 새 시크릿을 만듭니다.

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create secret tls <prefix>-<metadata.name>-agent-certs \
--cert=<agent-tls-cert> \
--key=<agent-tls-key>
2

Kubernetes 연산자MongoDBMultiCluster 리소스 사양 의 보안 설정으로 MongoDBMultiCluster 사용자 지정 리소스를 업데이트합니다. 결과 구성은 다음 예시와 유사할 수 있습니다.

apiVersion: mongodb.com/v1
kind: MongoDBMultiCluster
metadata:
name: multi-replica-set
spec:
version: 6.0.0-ent
type: ReplicaSet
persistent: false
duplicateServiceObjects: true
credentials: my-credentials
opsManager:
configMapRef:
name: my-project
security:
tls:
ca: custom-ca
certsSecretPrefix: <prefix>
authentication:
enabled: true
modes: ["X509"]
agents:
mode: "X509"
clusterSpecList:
- clusterName: ${MDB_CLUSTER_1_FULL_NAME}
members: 3
- clusterName: ${MDB_CLUSTER_2_FULL_NAME}
members: 2
- clusterName: ${MDB_CLUSTER_3_FULL_NAME}
members: 3
The |k8s-op-short| copies the ConfigMap with the |certauth| created in
the central cluster to each member cluster, generates a concatenated
|pem| secret, and distributes it to the member clusters.
3
  1. 멤버 cluster의 경우 다음 명령을 실행하여 MongoDB 파드가 실행 중 상태인지 확인합니다.

    kubectl get pods \
    --context=$MDB_CLUSTER_1_FULL_NAME \
    --namespace mongodb
    kubectl get pods \
    --context=$MDB_CLUSTER_2_FULL_NAME \
    --namespace mongodb
    kubectl get pods \
    --context=$MDB_CLUSTER_3_FULL_NAME \
    --namespace mongodb
  2. 중앙 cluster에서 다음 명령을 실행하여 MongoDBMultiCluster 리소스가 실행 상태인지 확인합니다.

    kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \
    --namespace mongodb \
    get mdbmc multi-replica-set -o yaml -w

이미 X.509 인증서를 생성한 경우 다음 절차에 따라 주기적으로 인증서를 갱신합니다.

1

kubectl 명령을 실행하여 기존 MongoDBMultiCluster 시크릿 을 갱신합니다. 리소스에 대한 인증서를 저장합니다.

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create secret tls <prefix>-<metadata.name>-cert \
--cert=<resource-tls-cert> \
--key=<resource-tls-key> \
--dry-run=client \
-o yaml |
kubectl apply -f -
2

kubectl 명령을 실행하여 MongoDBMultiCluster 리소스 에이전트 인증서를 저장하는 기존 시크릿을 갱신합니다.

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create secret tls <prefix>-<metadata.name>-agent-certs \
--cert=<agent-tls-cert> \
--key=<agent-tls-key> \
--dry-run=client \
-o yaml | kubectl apply -f -

돌아가기

LDAP를 사용한 보안 클라이언트 인증