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: