Gerenciar usuários do Amazon DocumentDB - Amazon DocumentDB

Gerenciar usuários do Amazon DocumentDB

No Amazon DocumentDB, os usuários se autenticam em um cluster em conjunto com uma senha. Cada cluster tem credenciais primárias de login que são estabelecidas durante a criação do cluster.

nota

Todos os usuários criados antes de 26 de março de 2020 receberam as funções dbAdminAnyDatabase, readWriteAnyDatabase e clusterAdmin. Recomenda-se que você reavalie todos os usuários e modifique as funções conforme necessário para impor o privilégio mínimo para todos os usuários em seus clusters.

Para obter mais informações, consulte Acesso ao banco de dados usando o controle de acesso com base em perfil.

Usuário principal e serviceadmin

Um cluster do Amazon DocumentDB recém-criado tem dois usuários: o usuário primário e o usuário serviceadmin.

O usuário primário é um usuário único e privilegiado que pode executar tarefas administrativas e criar usuários adicionais com perfis. Ao se conectar a um cluster Amazon DocumentDB pela primeira vez, você deve se autenticar usando as credenciais primárias de login. O usuário primário recebe essas permissões administrativas para um cluster do Amazon DocumentDB quando esse cluster é criado e recebe a função de root.

O usuário serviceadmin é criado implicitamente quando o cluster é criado. Cada cluster do Amazon DocumentDB tem um usuário serviceadmin que fornece AWS a capacidade de gerenciar seu cluster. Não é possível fazer login, descartar, renomear, alterar a senha nem alterar permissões do serviceadmin. Qualquer tentativa de fazer isso resulta em um erro.

nota

Os usuários primário e serviceadmin de um cluster do Amazon DocumentDB não podem ser excluídos, e a função root do usuário primário não pode ser revogada.

Se você esquecer sua senha de usuário primário, você poderá redefini-la usando AWS Management Console ou AWS CLI.

Criar usuários adicionais

Depois de conectar-se como usuário primário (ou qualquer usuário que tenha a função createUser), você pode criar um novo usuário, como mostrado abaixo.

db.createUser( { user: "sample-user-1", pwd: "password123", roles: [{"db":"admin", "role":"dbAdminAnyDatabase" }] } )

Para visualizar detalhes do usuário, você pode usar o comando show users da seguinte maneira. Você também pode remover usuários com o comando dropUser. Para obter mais informações, consulte Comandos comuns.

show users { "_id" : "serviceadmin", "user" : "serviceadmin", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }, { "_id" : "myPrimaryUser", "user" : "myPrimaryUser", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }, { "_id" : "sample-user-1", "user" : "sample-user-1", "db" : "admin", "roles" : [ { "role" : "dbAdminAnyDatabase", "db" : "admin" } ] }

Neste exemplo, o novo usuário sample-user-1 é atribuído ao banco de dados admin. Esse é sempre o caso de um novo usuário. O Amazon DocumentDB não tem o conceito de um authenticationDatabase e, portanto, toda autenticação é realizada no contexto do banco de dados admin.

Ao criar usuários, se você omitir o campo db ao especificar a função, o Amazon DocumentDB atribuirá implicitamente a função ao banco de dados no qual a conexão está sendo emitida. Por exemplo, se sua conexão for emitida no banco de dados sample-database e você executar o comando a seguir, o usuário sample-user-2 será criado no banco de dados admin e terá permissões readWrite no banco de dados sample-database.

db.createUser( { user: "sample-user-2", pwd: "password123", roles: ["readWrite"] } )

A criação de usuários com funções com escopo em todos os bancos de dados (por exemplo, readInAnyDatabase) exige que você esteja no contexto do banco de dados admin ao criar o usuário ou indicar o banco de dados explicitamente para a função ao criar o usuário.

Para alternar o contexto do banco de dados, você pode usar o seguinte comando.

use admin

Para saber mais sobre o Controle de acesso baseado em função e impor o mínimo privilégio entre os usuários em seu cluster, consulte Acesso ao banco de dados usando o controle de acesso com base em perfil.

Alternância automática de senhas para o Amazon DocumentDB

Com o AWS Secrets Manager, é possível substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação. Isso ajuda a garantir que o segredo não será comprometido por alguém que esteja examinando seu código, pois o segredo simplesmente não está ali. Além disso, configure o Secrets Manager para alterar automaticamente o segredo para você de acordo com a programação que você especificar. Isso permite substituir segredos de longo prazo por outros de curto prazo, ajudando a reduzir de maneira significativa o risco de comprometimento.

Usando o Secrets Manager, você pode alternar automaticamente as senhas do Amazon DocumentDB (ou seja, os segredos) usando uma função do AWS Lambda fornecida pelo Secrets Manager.

Para obter mais informações sobre AWS Secrets Manager e a integração nativa com o Amazon DocumentDB, consulte: