Docs 菜单
Docs 主页
/ /
MongoDB Atlas Kubernetes Operator
/

设置 X.509 身份验证

在此页面上

  • 先决条件
  • 使用 cert-经理 生成 X.509 证书
  • 使用自定义脚本生成 X.509 证书
  • 步骤
  • 配置项目以使用该证书。
  • 添加使用 X.509 身份验证的数据库用户。

X. 509客户端证书为数据库用户访问权限对项目中数据库部署的访问权限。 您可以使用Atlas Kubernetes Operator为 AtlasProject自定义资源AtlasDatabaseUser自定义资源启用X. 509身份验证。

X. 509身份验证选项包括 Atlas 托管的 X. 509身份验证和自管理 X. 509身份验证。 要了解有关自管理 X. 509身份验证的更多信息,请参阅设置自管理 X. 509身份验证。

要设置 X.509 身份验证:

  1. 生成 X.509 证书。

  2. 配置AtlasProject自定义资源以使用该证书。

  3. 配置AtlasDatabaseUser自定义资源以使用 Atlas 托管或自管理的 X.509 身份验证。

注意

要使用自管理的 X.509 证书,您必须拥有公钥基础架构才能与 MongoDB Atlas 集成。

  • 您需要以下公共 API 密钥、私有 API 密钥和组织 ID 信息, 配置 Atlas Kubernetes Operator 对 Atlas 的访问权限。

    • 如果您希望Atlas Kubernetes Operator创建新的Atlas项目,请为组织授予编程访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。

      重要

      您必须为 API 密钥分配 Organization Project Creator组织角色或更高级别的角色。

    • 如果要使用现有Atlas项目,请从项目添加项目访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。

      重要

      您必须为 API 密钥分配 Project Owner 项目角色。

    要了解更多信息,请参阅配置对 Atlas 的访问权限。

  • 使用cert-managercreate_X生成 X. 509证书。 509 .go 脚本。

使用509 cert-manager 生成 X. 证书 ,执行以下步骤:

1

要安装 cert-manager,请参阅 cert-manager 安装文档

2

要创建证书管理器Issuer ,请参阅 证书管理器配置文档

要了解更多信息,请参阅 示例。

3

要创建证书,请参阅 cert-manager 使用文档

要了解更多信息,请参阅 示例。

使用 create_X509 生成 X. 证书。 .go509脚本,执行以下步骤:

1

运行 create_X.509 .go脚本:

go run scripts/create_x509.go --path={pem-file-path}

示例:

go run scripts/create_x509.go --path=tmp/x509/
2

将证书添加到 密钥 ,运行以下命令:

kubectl create secret generic {secret-name} --from-file={pem-file-directory}
kubectl label secret {secret-name} atlas.mongodb.com/type=credentials

示例:

kubectl create secret generic my-x509-cert --from-file=./tmp/x509/cert.pem
kubectl label secret my-x509-cert atlas.mongodb.com/type=credentials
1

指定 密钥spec.x509CertRef.name AtlasProject自定义资源 的 参数内。

示例:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Project
projectIpAccessList:
- ipAddress: "192.0.2.15"
comment: "IP address for Application Server A"
- cidrBlock: "203.0.113.0/24"
comment: "CIDR block for Application Servers B - D"
x509CertRef:
name: my-x509-cert
EOF
2

AtlasDatabaseUser自定义资源指定x509Type参数。

此参数接受:

不使用 X.509 身份验证的用户。

托管

使用 Atlas 托管的 X.509 的用户。

您必须为spec.databaseName参数指定\$external

客户

使用自管理 X. 509的用户。 使用此x509Type创建的用户需要在username字段中使用公用名 (CN)。 要了解详情,请参阅 RFC2253 。

您必须为spec.databaseName参数指定\$external

要了解有关 API提供的配置参数的详情,请参阅 Atlas数据库用户 API。

示例:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
username: CN=my-x509-authenticated-user,OU=organizationalunit,O=organization
databaseName: "\$external"
x509Type: "CUSTOMER"
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
EOF

后退

云提供商集成