Los certificados de cliente X.509 proporcionan a los usuarios de la base de datos acceso a las implementaciones de bases de datos en su proyecto. Puede usar el operador de Kubernetes de Atlas para habilitar la autenticación X.509 para AtlasProject Recurso personalizado y el AtlasDatabaseUser recurso personalizado.
Las opciones de autenticación de X.509 incluyen autenticación de X.509 administrada por Atlas y autenticación de X.509 autogestionada. Para obtener más información sobre la autenticación autogestionada X.509, consulte Configura Certificados de X autogestionados.509
Para configurar la autenticación X.509:
Generar un certificado X.509.
Configura el
AtlasProjectRecurso personalizable para utilizar el certificado.Configura el
AtlasDatabaseUserRecurso Personalizado para utilizar la autenticación X.509 administrada por Atlas o autogestionada.
Requisitos previos
Nota
Para utilizar certificados X.509 autogestionados, debe tener una Infraestructura de llave pública para integrarse con MongoDB Atlas.
Necesita la siguiente llave pública de API, llave privada de API y la información del Identificador de la Organización para configurar el acceso de Atlas Kubernetes Operator a Atlas.
Si deseas que el Atlas Kubernetes Operator cree un nuevo Proyecto de Atlas, otorga acceso programático a una organización. Si tu organización requiere una lista de acceso IP para la API de administración de Atlas, también deberás configurar la lista de acceso a la API.
Importante
Debes asignar la clave API al Organization Project Creator rol en la organización o superior.
Si deseas trabajar con un proyecto Atlas existente, Añadir acceso al proyecto desde un proyecto. Si tu organización requiere una lista de acceso IP para la API de Administración de Atlas, también debes configurar la lista de acceso a la API.
Importante
Debe asignar al clave API el rol de proyecto Project Owner.
Para saber más, consulta Configura el acceso a Atlas.
Genera un certificado X.509 con cert-manager o el create_X.509.go script.
Generar un certificado X.509 con cert-manager
Para generar un certificado X.509 con cert-manager, realice los siguientes pasos:
Instalar cert-manager.
Para instalar cert-manager, consulte la documentación de instalación de cert-manager.
Crea un Issuer.
Para crear un administrador de Issuer certificados, consulte la documentación de configuración del administrador de certificados.
Para obtener más información, consulte el ejemplo.
Crear un certificado.
Para crear un certificado, consulta la documentación de uso de cert-manager.
Para obtener más información, consulte el ejemplo.
Generar un certificado X.509 con un script personalizado
Para generar un certificado X.509 con el create_X.509.go script, realiza los siguientes pasos:
Ejecuta el script personalizado.
Ejecute el script create_X..go:509
go run scripts/create_x509.go --path={pem-file-path}
Ejemplo:
go run scripts/create_x509.go --path=tmp/x509/
Agregue el certificado a un secreto.
Para añadir el certificado a un secreto, ejecuta los siguientes comandos:
kubectl create secret generic {secret-name} --from-file={pem-file-directory}
kubectl label secret {secret-name} atlas.mongodb.com/type=credentials
Ejemplo:
kubectl create secret generic my-x509-cert --from-file=./tmp/x509/cert.pem
kubectl label secret my-x509-cert atlas.mongodb.com/type=credentials
Procedimiento
Configura un proyecto para utilizar el certificado.
Especifique el secreto en el parámetro spec.x509CertRef.name para el AtlasProject Recurso personalizado.
Ejemplo:
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
Agregue un usuario de base de datos que utilice autenticación X.509.
Especifique el parámetro x509Type para el AtlasDatabaseUser recurso personalizado.
Este parámetro acepta:
Ninguno | Usuario que no usa autenticación X.509. |
ADMINISTRADO | Usuario que utiliza X.509 gestionado por Atlas. Debe especificar |
cliente | Usuario que utiliza X.509autogestionado. Los usuarios creados con este Debe especificar |
Para obtener más información sobre los parámetros de configuración disponibles de la API. Para más información, consulta la API de usuarios de la base de datos.de Atlas
Ejemplo:
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