文档菜单
文档首页
/
MongoDB企业级Kubernetes运营商
/ /

使用X.509进行安全部署

本页内容

  • 先决条件
  • 为MongoDBMultiCluster资源启用X.509身份验证
  • 为您的代理的X.509证书创建密钥MongoDBMultiCluster资源.
  • 更新您的MongoDBMultiCluster资源以启用X509身份验证。
  • 验证MongoDBMultiCluster资源正在运行。
  • 为MongoDBMultiCluster资源续签X.509证书
  • 续签MongoDBMultiCluster资源下的secretsecret.
  • 续签代理的X.509证书的密钥。

您可以为Kubernetes操作员配置使用X.509证书来验证您的客户端应用程序在一个多Kubernetes集群MongoDB部署中.

为了使用X.509证书来保护您的多Kubernetes集群MongoDB部署中,您在中央集群上运行所有操作。中央集群Kubernetes操作员将X.509配置传播到每个成员集群,并更新每个成员集群的Kubernetes操作员配置。

在您使用多Kubernetes集群MongoDB部署中加密之前TLS 加密,完成以下任务

在项目级别启用X.509身份验证,配置所有代理在通信MongoDB部署时使用X.509客户端身份验证。

X.509客户端身份验证需要以下之一与您的

  • 云管理器

  • 运营管理器版本兼容您的Kubernetes操作员版本。

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

更新您的MongoDBMultiCluster自定义资源,使用从Kubernetes操作员 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. 对于成员集群,运行以下命令以验证MongoDB Pod是否处于运行状态

    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. 在中央集群中,运行以下命令以验证MongoDBMultiCluster资源是否处于运行状态

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

如果您已经创建了X.509证书,请按照以下程序定期更新它们。

1

运行以下 kubectl 命令以更新存储 MongoDBMultiCluster 资源证书的现有 secret:

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 资源的现有secret代理证书

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