Los certificados de cliente X.509 permiten a los usuarios de base de datos acceder a las implementaciones de la base de datos en tu Proyecto. Puedes usar el Atlas Kubernetes Operator para habilitar la autenticación X.509 para el 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 X.509 de autenticación autogestionada, consulta Configurar certificados autogestionados de X.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 a la clave API el rol organizacional Organization Project Creator 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, haga lo siguiente:
Instalar cert-manager.
Para instalar cert-manager, consulte la documentación de instalación de cert-manager.
Crea un Issuer.
Para crear un Issuer de cert-manager, consulta la documentación de configuración de cert-manager.
Para obtener más información, consulta el ejemplo.
Cree un certificado.
Para crear un certificado, consulta la documentación de uso de cert-manager.
Para obtener más información, consulta 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.
Ejecuta el create_X.509.go script:
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.
Especifica el secreto dentro del 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
Añade 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. |
gestionado/gestionada | 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 acerca de los parámetros de configuración disponibles desde la API, consulte la Atlas API de usuarios de base de datos.
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