22
Globalcode – Open4education Trilha – NoSQL Adamo Tonete Senior Service Engineer @ percona

Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Trilha – NoSQLAdamo Tonete

Senior Service Engineer @ percona

Page 2: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Agenda● Como instalar o MongoDB;● Habilitando autenticação;● Default roles;● Iniciando um replicaset e shard com autenticação;● SSL;● LDAP;● Segurança em Backups.

Page 3: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Instalando o MongoDB● Como instalar o MongoDB no Centos 7

yum install -y mongodb-org

service mongodb start

$ mongo > use perconaswitched to db percona

> db.foo.insert({x : 1})WriteResult({ "nInserted" : 1 })

Page 4: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Instalando o MongoDB

Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ambiente geralmente alteram esse parâmetro para habilitar conexões externas.

cat /etc/mongod.conf | grep "net:" -A 3net: port: 27017 bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.

Vantagem: Todos podem se conectar (mesmo remoto)Desvantagem: Todos podem se conectar. Sem segurança ou controle de acesso.

Page 5: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Ops...

Page 6: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Quando ativar a autenticação?

Se não se tratar de um banco local para desenvolvimento com dados fictícios, por favor, habilite a autenticação.

Tente isolar o acesso o tanto quanto possível. Um monte de usuários como root na verdade significa o mesmo que nenhum controle.

Page 7: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Habilitando a autenticação• Habilitando o usuário root e reiniciando o processo do MongoDB.

Mongouse admin> db.createUser({user : 'administrator', pwd : '123321', roles : ['root']})Successfully added user: { "user" : "administrator", "roles" : [ "root" ] }

-- mongod.conf -- #securitysecurity authorization : enabled

-- service restart ---

Page 8: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Habilitando a autenticaçãoConferindo o acesso:

mongo> show dbs

2017-04-05T13:39:30.040-0400 E QUERY [thread1] Error: listDatabases failed:{"ok" : 0,"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }","code" : 13,"codeName" : "Unauthorized"

} :

Page 9: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Habilitando a autenticaçãoConferindo o acesso:

mongouse admindb.auth('administrator','123321')1 <- Significa OK!

mongo -u administrator -p --authenticationDatabase adminpassword:

> show dbslocalpercona

Page 10: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Papéis de usuário padrão● Built-in MongoDB Roles

read readWrite dbAdmin dbOwner userAdmin

clusterAdmin clusterManager clusterMonitor hostManager backup

restore readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase

dbAdminAnyDatabase root __system

Page 11: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Criando usuário comumdb.createUser({user: 'user', pwd: '123', roles : [{ role :'read', db: 'percona'}]})

Successfully added user: {"user" : "intern","roles" : [

{"role" : "read","db" : "percona"

}]

}

Page 12: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Iniciando um replica set

Sec

Primário

Conceito de Replicaset

Sec replicação

Page 13: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Iniciando um replica set

Sec VazioPrimário Eu sei o seu segredo e é o mesmo que o meu

Quando autenticação está habilitada precisamos usar um keyfile ou certificador x.509 para que as instâncias falem entre si.

Page 14: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Iniciando um replica set

Sec VazioPrimário

Ok, então enviarei meus dados

As instâncias validam a chave compartilhada e iniciam a replicação

Page 15: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Ambiente shard com keyfilemongos

configs

Quando estiver usando o MONGOS os usuários devem existir nos configs. Devemos ter usuários nos shards somente para administração

shards

Page 16: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Melhorando a Segurança - SSLSSL - Secure Sockets Layer

● Quando usando keyfiles todas as informações viajam pela rede sem encriptação;

● Quado SSL está habilitado toda a comunicação é criptografada;

● Para usar SSL precisamos de uma unidade certificadora e certificado válido.

Page 17: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Melhorando a Segurança - SSL

● Quando usando SSL cada máquina tem um certificado e as mesmas compartilham a mesma unidade certificadora e um certificado raíz;

● Dados são encriptados e é necessário uma chave para descriptografar;

● Clientes devem ter certificado válido para se conectar.

Page 18: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Shard com SSLmongos

configs

shards

cliente

Page 19: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Melhorando a Segurança - LDAPLDAP - Lightweight Directory Access Protocol

● MongoDB Enterprise e Percona Server oferecem integração com o Active Directory e LDAP onde o usuário tem um único login na rede o processo de permissão é o mesmo de um usuário padrão, exceto que o usuário vem de um serviço externo.

Page 20: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Melhorando a Segurança - BKPBackups

Como guardar os backups?

Use senhas e encriptação. De nada adianta usar toda segurança possível e guardar o backup numa pasta pública sem encriptação.

Page 21: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está

Globalcode – Open4education

Questões?

@AdamoTonete

https://www.percona.com/blog/author/adamo-tonete/

http://adamotonete.com

Page 22: Trilha – NoSQL · Por padrão o MongoDB apenas escuta o ip 127.0.0.1:27017. Administradores de ... Primário Eu sei o seu segredo e é o mesmo que o meu Quando autenticação está