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 AtlasDatabaseUser recurso personalizado.
Las opciones para la509 autenticación X. incluyen la autenticación X. administrada por Atlas509 y la509 autenticación X. autoadministrada. Para obtener más información sobre la509 autenticación X. autoadministrada, consulte Configurar509 certificados X. autoadministrados.
Para configurar la autenticación X.509:
Generar un certificado X.509.
Configure el
AtlasProjectrecurso personalizado para utilizar el certificado.Configure el
AtlasDatabaseUserrecurso personalizado para utilizar la509 autenticación X. autoadministrada o administrada por Atlas.
Requisitos previos
Nota
Para utilizar certificados X.509 autoadministrados, debe tener una infraestructura de clave pública para integrarse con MongoDB Atlas.
Necesita la siguiente clave API pública, clave API privada y la información de ID de la organización para configurar el acceso del operador de Kubernetes de Atlas a Atlas.
Si desea que el operador de Kubernetes de Atlascree un nuevo proyecto de Atlas, otorgue acceso programático a unaorganización. Si su organización requiere una lista de acceso de IP para la API de administración de Atlas, también debe configurarla.
Importante
Debes asignar la clave API a la Organization Project Creator rol organizacional o superior.
Si desea trabajar con un proyecto de Atlas existente, agregue el acceso al proyecto desdeun proyecto. Si su organización requiere una lista de acceso IP para la API de administración de Atlas, también debe configurarla.
Importante
Debe asignar al clave API el rol de proyecto Project Owner.
Para obtener más información, consulte Configurar el acceso a Atlas.
Genere un509 certificado X. con cert-manager o el script create_X..go.509
Generar un certificado X.509 con cert-manager
Para generar un509 certificadoX. 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 Issuer un.
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, consulte 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 un509 certificado X. con el script create_X..go,509 realice los siguientes pasos:
Ejecute 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/
Añade 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
Configurar un proyecto para utilizar el certificado.
Especifique el secreto dentro del parámetro para spec.x509CertRef.name 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 administrado por Atlas. Debe especificar |
ATENCIÓN AL 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 en el API, consulte la API de usuarios dela base de datos 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