O MongoDB Atlas oferece suporte a uma variedade de métodos de autorização para garantir acesso robusto aos recursos. O Atlas exige que todos os usuários se autentiquem. Uma vez que o usuário é autenticado, a autorização determina o acesso dele aos recursos.
Ao implementar a autorização do Atlas, você deve usar Controle de acesso baseado em função (RBAC). O uso de grupos de usuários de um Provedor de identidade federado com RBAC simplifica o gerenciamento.
As recomendações a seguir aplicam-se tanto aos usuários de força de trabalho (humana) quanto aos de carga de trabalho (aplicativos) em todos os paradigmas de implantação.
Observação
O Modelo de responsabilidade compartilhada do MongoDB Atlas define os direitos complementares do MongoDB e de seus clientes em manter um ambiente de dados seguro e resiliente. Nesse framework, o MongoDB gerencia a segurança e a integridade operacional da plataforma subjacente, enquanto os clientes são responsáveis pelas políticas de configuração, gerenciamento e dados de suas implantações específicas. Para obter uma análise detalhada da propriedade em segurança e segurança operacional, consulte Modelo de responsabilidade compartilhada.
RBAC e Funções predefinidas
O Atlas usa o Controle de acesso baseado em função (RBAC) para simplificar o gerenciamento da autorização do usuário. O Atlas inclui funções de usuário predefinidas que fornecem níveis específicos de acesso comumente necessários para gerenciar o Atlas com a IU e as APIs. Para simplificar o gerenciamento, você pode mapear as funções para grupos de provedor de identidade.
Para se conectar a clusters do Atlas, use funções de banco de dados personalizadas detalhadas para fornecer um escopo granular com base no acesso necessário para que a função desempenhe seu papel. Esta abordagem permite que você siga o princípio do privilégio mínimo.
Observação
Você deve sempre restringir o acesso atribuindo as funções RBAC de menor privilégio. Você também deve aplicar restrições de domínio.
Existem dois níveis de funções que você pode atribuir: nível de organização e nível de projeto.
Funções no nível da organização
Funções no nível da organização são utilizadas por contas de serviço para automatizar tarefas como a criação de novos projetos, a gestão de IAM e o faturamento. Elas também podem ser utilizados para membros da equipe da plataforma.
A função
Organization Ownerdeve ser fortemente restrita e não deve ser atribuída a um humano, pois possui a capacidade de alterar configurações em toda a organização e excluir configurações. Essa função deve ser atribuída a uma conta de serviço que você usa apenas para parametrizar e configurar inicialmente a organização. Minimize as alterações de configuração após a criação inicial. Para evitar bloqueios de conta, você pode criar os seguintes itens:Grupo de proprietários da organização SAML com acesso jus-in-time.
Conta de serviço com a função de Proprietário da organização. Mantenha em um local seguro com forte gerenciamento de acesso para cenários de emergência de quebra de vidro.
A função
Organization Memberdeve ser destinada a administradores da equipe de operações e plataforma que possam visualizar as configurações e definições da organização.A função
Organization Project Creatordeve ser uma conta de serviço programática usada para criar projetos em nome de novos aplicativos para equipes de desenvolvimento e produto.A função
Organization Billing Admindeve ser uma conta de serviço programática usada para extrair faturas programaticamente da API de faturamento e inseri-las em sua ferramenta FindOps. Essa mesma conta de serviço deve ter acesso a todas as organizações vinculadas para as quais é responsável por relatar o uso.
Funções no nível do projeto
As funções em nível de projeto são destinadas às equipes de desenvolvimento, teste e produto que são responsáveis pelo desenvolvimento de aplicativo e manutenção. Assim como acontece com as funções no nível da organização, você deve sempre seguir o princípio do privilégio mínimo. Por exemplo, a função Project Owner deve ser usada apenas para governança imposta pela equipe de operações e provisionamento. Como um proprietário de projeto pode criar e excluir clusters, você deve atribuir essa função a uma conta de serviço programática, a menos que esteja trabalhando em um ambiente de sandbox.
Para saber mais sobre funções em nível de projeto, consulte:
Provedores de identidade federados
Ao integrar o Atlas com um provedor de identidade federado, você pode usar o provisionamento just-in-time mapeando grupos do provedor de identidade para funções no Atlas. Isso otimiza o gerenciamento de acesso e assegura atribuições de funções seguras e organizadas em toda a plataforma. Você pode conceder acesso programaticamente com base no processo de provisionamento da camada de orquestração.
Você deve usar um provedor de identidade federado (FIP) moderno que forneça SSO, como o Azure Entra ID, o Okta ou o Ping Identity. Isso torna o processo de autorização mais seguro e oferece a flexibilidade necessária para atribuir grupos de IdP programaticamente às funções do Atlas. Você deve restringir o acesso ao domínio da sua empresa, que impede que os usuários façam login no Atlas quando não estão autorizados a acessar.
Para saber mais sobre o mapeamento de funções para grupos de provedor de identidade federado, consulte Processo de mapeamento de funções.
Acesso Just-in-Time
O Atlas também oferece suporte à criação de usuários temporários de banco de dados que expiram automaticamente após os horários predefinidos. Um usuário pode ser criado por 6 horas, 1 dia ou 1 semana.
Para saber mais, consulte mongodb-users.
Exemplos
Para exemplos de configuração de autorização, consulte Exemplos de autorização e autenticação.