Os certificados de cliente X.509 oferecem aos trigger de banco de dados acesso ao comando de banco de dados em seu projeto. Você pode usar o Atlas Kubernetes Operator para ativar a autenticação X.509 para o AtlasProject Recurso Personalizado e o Recurso Personalizado AtlasDatabaseUser .
As opções para509 autenticação X. incluem a autenticação X. gerenciada pelo Atlas509 e a509 autenticação X. autogerenciada. Para saber mais sobre a509 autenticação X. autogerenciada, consulte Configurar509 certificados X. autogerenciados.
Para configurar a autenticação X.509:
Gere um certificado X.509.
Configure o Recurso Personalizado do
AtlasProjectpara utilizar o certificado.Configure o recurso personalizado do
AtlasDatabaseUserpara usar a autenticação X.509 gerenciada pelo Atlas ou autogerenciada.
Pré-requisitos
Observação
Para usar certificados X.509 autogerenciados, você deve ter uma infraestrutura de chave pública para integrar ao MongoDB Atlas.
Você precisa das seguintes informações da chave de API pública, chave de API privada e ID da organização para configurar o acesso do Atlas Kubernetes Operator ao Atlas.
Se você quiser que o Atlas Kubernetes Operator crie um novo projeto do Atlas , concedaacesso programático a uma organização. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.
Importante
Você deve atribuir a chave API ao role da organização Organization Project Creator ou superior.
Se você quiser trabalhar com um projeto Atlas existente, adicione acesso a um projeto. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.
Importante
Você deve atribuir à chave de API ao role de projeto Project Owner .
Para saber mais, consulte Configurar Acesso ao Atlas.
Gere um509 certificado X. com cert-manager ou o script create_X..go.509
Gerar um Certificado X.509 com o certifique-manager
Para gerar um certificado X.509 com cert-manager, faça as seguintes etapas:
Instale o gerenciador de certificados.
Para instalar o cert-manager, consulte a documentação de instalação do cert-manager.
Crie um Issuer.
Para criar um Issuer cert-manager, consulte a documentação de configuração do cert-manager.
Para saber mais, consulte o exemplo.
Crie um certificado.
Para criar um certificado, consulte a documentaçãode uso do cert-manager.
Para saber mais, consulte o exemplo.
Gerar um certificado X.509 com um script personalizado
Para gerar um509 certificado X. com o script create_X..go,509 siga as seguintes etapas:
Execute o script personalizado.
Execute o script create_X..go:509
go run scripts/create_x509.go --path={pem-file-path}
Exemplo:
go run scripts/create_x509.go --path=tmp/x509/
Adicione o certificado a um segredo.
Para adicionar o certificado a um segredo, execute os seguintes comandos:
kubectl create secret generic {secret-name} --from-file={pem-file-directory}
kubectl label secret {secret-name} atlas.mongodb.com/type=credentials
Exemplo:
kubectl create secret generic my-x509-cert --from-file=./tmp/x509/cert.pem
kubectl label secret my-x509-cert atlas.mongodb.com/type=credentials
Procedimento
Configure um projeto para usar o certificado.
Especifique o segredo dentro do parâmetro spec.x509CertRef.name para o AtlasProject Recurso Personalizado.
Exemplo:
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
Adicione um trigger de banco de dados que use autenticação X.509.
Especifique o parâmetro x509Type para o Recurso PersonalizadoAtlasDatabaseUser .
Este parâmetro aceita:
none | Usuário que não usa autenticação X.509. |
GERENCIADO | Usuário que usa X.509 managed pelo Atlas. Você deve especificar |
CLIENTE |
Para saber mais sobre os parâmetros de configuração disponíveis a partir da API, consulte a API do Atlas Database Users.
Exemplo:
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