SlideShare une entreprise Scribd logo
1  sur  27
#MongoDBdays




MongoDB Security
Edouard Servan-Schreiber, Ph.D.
Director of Solution Architecture
10gen
Security against Trespassing
• Data in flight




• Data at rest
MongoDB SSL
                SSL encryption                  SSL encryption
                  for client                    for inter-server
                 connection                          traffic



                                     Primary                         Secondary
  Application


                                   Data Files                      Data Files




Keyfile establishes trust domain

http://docs.mongodb.org/manual/administration/ssl/
MongoDB - Gazzang
• File System Encryption
• 5% performance hit with HDD, 10-15% with
 SSD

                                              Gazzang
                                              Key Mgmt

           OS       Gazzang


       File System – All contents encrypted
Security against Insider Abuse
• Authentication
   – Are you who you claim to be?



• Authorization
   – Do you have access privileges to do what you want to do?



• Auditing
   – Can I trace your activities for future verification?
New with MongoDB 2.4
• Authentication
   – External authentication with kerberos


• Authorization
   – Improved granularity of powers within a cluster to contain
     abuse


• Auditing
   – Userid’s added to audit logs
Authentication
• 2.2
   – Admin users and single db users
   – No external auth
   – No sense of user across databases
        • Had to redefine user in several databases
• 2.4
   – External authentication with kerberos
   – Can “source” users from different databases
Authentication with only pwd
hash
• Use one-way function F

       I am “edouard@10gen.com”, let me in

                                                        Knows
                                            Mongod      only my
           Prove it, here is a random # N
                                                        passwor
                                                        d hash


           Here is F(N,
           hash(<mypwd>))

         Nobody else could know               Hash never
         that, welcome back edouard!          transmitted
                                              over the
                                              network!
Authentication with Kerberos
(2.4)
                 I am “edouard@10gen.com”,
                 help me prove it to mongod
                                                    KDC
                 Here is a ticket for mongod



Here is a
Kerberos    Welcome!
ticket



        Mongod     {
                       user: ”edouard@10gen.com",
                       roles: ["read"],
                       userSource: "$external"
                   }
AUTHORIZATION
Avoiding hierarchical powers        Building Regional powers




                               VS
AUTHORIZATION
• Issues with 2.2
   – No roles --- No access / Read / ReadWrite
   – Hard to separate powers


• 2.4 introduces roles
   – Admin level roles            – DB level roles
      • UserAdmin                     •   User Admin
      • ClusterAdmin                  •   DB Admin
                                      •   Read
                                      •   ReadWrite
AUTHORIZATION
                                                  Corresponding
• Issues with 2.2                                Admin level roles
                                                 for AllDatabases
   – No roles --- No access / Read / ReadWrite
   – Hard to separate powers


• 2.4 introduces roles
   – Admin level roles            – DB level roles
      • UserAdmin                     •   User Admin
      • ClusterAdmin                  •   DB Admin
                                      •   Read
                                      •   ReadWrite
Only useful
        Admin DB                   Accnts DB
                                                          to hold pwd
                                                            hashes
       •   UserAdmin
                                   •     UserAdmin
       •   ClusterAdmin



    App DB                         Product
•    UserAdmi                        DB
     n                         •       UserAdmin
•    dbAdmin                   •       dbAdmin           Customer
•    ReadWrite     BI DB       •
•    Read
                                       ReadWrite           DB
               •   UserAdmi    •       Read          •    UserAdmin
                   n                                 •    dbAdmin
               •   dbAdmin                           •    ReadWrite
               •   ReadWrite                         •    Read
               •   Read
I can do anything.                         I can add and
                 But I won’t be                              remove
             required to do much                       shards, control the
                                                            balancer




DB Admin: UserAdmin                DB Admin: ClusterAdmin
                                                                     I can
                                        I can grant
              I can create new                                      create
                                       privileges to
              users but I can’t                                  indices, set
                                       the App DB
                 grant them                                        profiling,
                                            only
             privileges to other                                   compact
                     DB’s




DB Accnts: userAdmin               DB App: userAdmin          DB App: dbAdmin
Only required to intervene if
                 I can do anything.            cluster admin or any other
                    But I won’t be             admin has to change.
                required to do much
                                               Can create new databases

                                               Is not on the critical path of
                                               any other activity.
DB Admin: UserAdmin

  In Admin.system.users :

  {                                        {
      user: “edouard@10gen.com” ,              user: “edouard” ,
      usersource: “$external”                  pwd: <hash>
                                      OR
      roles: [ “userAdmin” ] ,                 roles: [ “userAdmin”,
      otherDBroles: { }                           “userAdminAllDatabase” ] ,
  }                                            otherDBroles: { }
                                           }
I can add and            Manages the number of
                    remove shards,            shards and the balancer
                  control the balancer,
                     update replSet           Cannot act on other DBs
                         configs              directly (e.g. cannot enable
                                              sharding on a collection)

                                              Cannot see any data
DB Admin: ClusterAdmin
                                              Can be also the admin of all
In Admin.system.users :                       other databases with
                                              “dbAdminAnyDatabase”
{
    user: “edouard@10gen.com” ,           {
    usersource: “$external”                   user: “edouard@10gen.com” ,
    roles: [ “clusterAdmin” ] ,               usersource: “$external” ,
    otherDBroles: { }                         roles: [ “clusterAdmin”,
}                                                “dbAdminAnyDatabase“ ] ,
                                              otherDBroles: { }
                                          }
Manages the user list for the
                   I can create new                     cluster.
                   users but I can’t
                      grant them                        All users should have an
                  privileges on other                   entry in Accnts.system.users
                          DB’s                          and this role is able to create
                                                        them, while not letting them
                                                        see the user list.

DB Accnts: UserAdmin                                    The Accnts DB is the
                                                        authentication center
In Accnts.system.users :
                                        {
{                                           user: “richard” ,
    user: “edouard”,                        pwd: <hash> ,
    pwd: <hash>,                            roles: [ “read” ]
    roles: [“userAdmin”]                }
}
                                        {
                                            user: “asya” ,
                                            pwd: <hash> ,
                                            roles: [ ]
                                        }
Manages the user list for the
                   I can create new                     cluster.
                   users but I can’t
                      grant them                        All users should have an
                  privileges on other                   entry in Accnts.system.users
                          DB’s                          and this role is able to create
                                                        them, while not letting them
                                                        see the user list.

DB Accnts: UserAdmin                                    The Accnts DB is the
                                                        authentication center
In Accnts.system.users :
                                        {
{                                           user: “richard” ,     Richard can
    user: “edouard”,                        pwd: <hash> ,           see the
    pwd: <hash>,                            roles: [ “read” ]     information
    roles: [“userAdmin”]                }                         about other
}                                                                   users….
                                        {
                                            user: “asya” ,
                                            pwd: <hash> ,
                                            roles: [ ]
                                        }
Manages the user list for the
                   I can create new                     cluster.
                   users but I can’t
                      grant them                        All users should have an
                  privileges on other                   entry in Accnts.system.users
                          DB’s                          and this role is able to create
                                                        them, while not letting them
                                                        see the user list.

DB Accnts: UserAdmin                                    The Accnts DB is the
                                                        authentication center
In Accnts.system.users :
                                        {
{                                           user: “richard” ,
    user: “edouard”,                        pwd: <hash> ,
                                                                          Only the
    pwd: <hash>,                            roles: [ ]
                                                                         UserAdmin
    roles: [“userAdmin”]                }
                                                                         should see
}
                                                                        details about
                                        {
                                                                         other users
                                            user: “asya” ,
                                            pwd: <hash> ,
                                            roles: [ ]
                                        }
I can
       I can grant                                 Each DB’s userAdmin gets to
                                  create
      privileges to                                grant privileges separately
                               indices, set
      the App DB
                                 profiling,
           only
                                 compact




DB App: userAdmin            DB App: dbAdmin



In App.system.users :

{                                              {
    user: “richard” ,                              user: “asya” ,
    usersource: “Accnts” ,                         usersource: “Accnts” ,
    roles: [ “userAdmin” ]                         roles: [ “dbAdmin“ ] ,
}                                Credentials
                              from Accnts DB   }
I do BI and
    I am the app.                                 The BI user needs to read
                               only need
      I read and                                  from the app DB in order to
                                 to read
      write to the                                access the data to be
                                from this
          DB                                      analyzed
                                   DB
                                                  And needs to read/write in
                                                  another database dedicated
                                                  to BI results

DB App: readWrite           DB App: read



In App.system.users :                              In BI.system.users :

{                       {                          {
  user: “appUser” ,        user: “BIUser” ,            user: “BIUser” ,
  usersource: “Accnts” , usersource: “Accnts” ,        usersource: “Accnts” ,
  roles: [ “readWrite” ]   roles: [ “read“ ] ,         roles: [ “readWrite” ]
}                        }                         }
Simplifications
• No need for Accnts DB if all users are externally
 authenticating
• UserAdmin of AdminDB can manage and assign
 all the roles through {read, readWrite, dbAdmin,
 userAdmin}AnyDatabase
   – Roles: [“dbAdminAnyDatabase”, “readAnyDatabase”]

• Can assign otherDBRoles in
 Admin.system.users, to grant privileges to only
 some DB’s
   – OtherDBRoles: { App: [ “Read”]
                    BI: [“UserAdmin”, “ReadWrite”]   }
Case: one super user, one app
admin, one app regular user
ADMIN.system.users:

{ user: ”SuperUser",
  userSource: "$external",
  roles: [                              APP.system.users:
“userAdmin”,"clusterAdmin"],
}                                       { user: “AppUser”,
                                          userSource: “$external”,
{ user: “ AppAdmin”,                      roles: [“readWrite”]
  userSource:”$external”,               }
  roles: [ ],
  otherDBRoles: {
      app: [ “useradmin”, ”dbadmin" ]
  }
}
Auditing - Logging
Monitor user activity:
   – Logging to output userID associated with actions, when
     available
   – Sharded and single-node configurations
   – Not a separate audit log

Future
   – Partnership / ecosystem opportunities
Disclaimer
Statements about future releases, availability
dates, and feature content reflect plans only, and
10gen is under no obligation to include, develop
or make available, commercially or otherwise,
specific feature discussed a future MongoDB
build. Information is provided for general
understanding only, and is subject to change at
the sole discretion of 10gen in response to
changing market conditions, delivery schedules,
customer requirements, and/or other factors.
Future
• Field level obfuscation
   – Blocking PPI data in documents from some users.

• Improved auditing
• More external authentication protocols
• External access control privileges
   – Central management of ACL and MongoDB able to
    externally read them
Thank You

Contenu connexe

Tendances

Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise MongoDB
 
Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...
Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...
Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...MongoDB
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB DeploymentMongoDB
 
CUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management ComponentsCUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management ComponentsCUBRID
 
[2A5]하둡 보안 어떻게 해야 할까
[2A5]하둡 보안 어떻게 해야 할까[2A5]하둡 보안 어떻게 해야 할까
[2A5]하둡 보안 어떻게 해야 할까NAVER D2
 
Kerberos Survival Guide: SharePoint Saturday Nashville 2015
Kerberos Survival Guide: SharePoint Saturday Nashville 2015Kerberos Survival Guide: SharePoint Saturday Nashville 2015
Kerberos Survival Guide: SharePoint Saturday Nashville 2015J.D. Wade
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.CUBRID
 
CUBRID Developer's Course
CUBRID Developer's CourseCUBRID Developer's Course
CUBRID Developer's CourseCUBRID
 
Kerberos survival guide
Kerberos survival guideKerberos survival guide
Kerberos survival guideJ.D. Wade
 
MySpace SQL Server Service Broker
MySpace SQL Server Service Broker MySpace SQL Server Service Broker
MySpace SQL Server Service Broker Mark Ginnebaugh
 
NoSQL - No Security? - The BSides Edition
NoSQL - No Security? - The BSides EditionNoSQL - No Security? - The BSides Edition
NoSQL - No Security? - The BSides EditionGavin Holt
 
NoSQL, no security?
NoSQL, no security?NoSQL, no security?
NoSQL, no security?wurbanski
 
The Unintended Risks of Trusting Active Directory
The Unintended Risks of Trusting Active DirectoryThe Unintended Risks of Trusting Active Directory
The Unintended Risks of Trusting Active DirectoryWill Schroeder
 
Kerberos Survival Guide: Columbus 2015
Kerberos Survival Guide: Columbus 2015Kerberos Survival Guide: Columbus 2015
Kerberos Survival Guide: Columbus 2015J.D. Wade
 
SharePoint Saturday Kansas City - Kerberos Survival Guide
SharePoint Saturday Kansas City - Kerberos Survival GuideSharePoint Saturday Kansas City - Kerberos Survival Guide
SharePoint Saturday Kansas City - Kerberos Survival GuideJ.D. Wade
 
Securing data and preventing data breaches
Securing data and preventing data breachesSecuring data and preventing data breaches
Securing data and preventing data breachesMariaDB plc
 

Tendances (19)

Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise
 
Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...
Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...
Webinar: Compliance and Data Protection in the Big Data Age: MongoDB Security...
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB Deployment
 
CUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management ComponentsCUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management Components
 
[2A5]하둡 보안 어떻게 해야 할까
[2A5]하둡 보안 어떻게 해야 할까[2A5]하둡 보안 어떻게 해야 할까
[2A5]하둡 보안 어떻게 해야 할까
 
Mongo db eng
Mongo db engMongo db eng
Mongo db eng
 
Kerberos Survival Guide: SharePoint Saturday Nashville 2015
Kerberos Survival Guide: SharePoint Saturday Nashville 2015Kerberos Survival Guide: SharePoint Saturday Nashville 2015
Kerberos Survival Guide: SharePoint Saturday Nashville 2015
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.
 
CUBRID Developer's Course
CUBRID Developer's CourseCUBRID Developer's Course
CUBRID Developer's Course
 
Kerberos survival guide
Kerberos survival guideKerberos survival guide
Kerberos survival guide
 
MySpace SQL Server Service Broker
MySpace SQL Server Service Broker MySpace SQL Server Service Broker
MySpace SQL Server Service Broker
 
NoSQL - No Security? - The BSides Edition
NoSQL - No Security? - The BSides EditionNoSQL - No Security? - The BSides Edition
NoSQL - No Security? - The BSides Edition
 
NoSQL, no security?
NoSQL, no security?NoSQL, no security?
NoSQL, no security?
 
The Unintended Risks of Trusting Active Directory
The Unintended Risks of Trusting Active DirectoryThe Unintended Risks of Trusting Active Directory
The Unintended Risks of Trusting Active Directory
 
Kerberos Survival Guide: Columbus 2015
Kerberos Survival Guide: Columbus 2015Kerberos Survival Guide: Columbus 2015
Kerberos Survival Guide: Columbus 2015
 
SharePoint Saturday Kansas City - Kerberos Survival Guide
SharePoint Saturday Kansas City - Kerberos Survival GuideSharePoint Saturday Kansas City - Kerberos Survival Guide
SharePoint Saturday Kansas City - Kerberos Survival Guide
 
Hadoop Security Preview
Hadoop Security PreviewHadoop Security Preview
Hadoop Security Preview
 
Securing data and preventing data breaches
Securing data and preventing data breachesSecuring data and preventing data breaches
Securing data and preventing data breaches
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 

En vedette

Mongo Performance Optimization Using Indexing
Mongo Performance Optimization Using IndexingMongo Performance Optimization Using Indexing
Mongo Performance Optimization Using IndexingChinmay Naik
 
Webinar: Architecting Secure and Compliant Applications with MongoDB
Webinar: Architecting Secure and Compliant Applications with MongoDBWebinar: Architecting Secure and Compliant Applications with MongoDB
Webinar: Architecting Secure and Compliant Applications with MongoDBMongoDB
 
Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101MongoDB
 
SSecuring Your MongoDB Deployment
SSecuring Your MongoDB DeploymentSSecuring Your MongoDB Deployment
SSecuring Your MongoDB DeploymentMongoDB
 
Mongo db security guide
Mongo db security guideMongo db security guide
Mongo db security guideDeysi Gmarra
 
Replication and Replica Sets
Replication and Replica SetsReplication and Replica Sets
Replication and Replica SetsMongoDB
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB
 
Webinar: Performance Tuning + Optimization
Webinar: Performance Tuning + OptimizationWebinar: Performance Tuning + Optimization
Webinar: Performance Tuning + OptimizationMongoDB
 
MongoDB Administration 101
MongoDB Administration 101MongoDB Administration 101
MongoDB Administration 101MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBRavi Teja
 
Common MongoDB Use Cases
Common MongoDB Use Cases Common MongoDB Use Cases
Common MongoDB Use Cases MongoDB
 

En vedette (13)

Mongo Performance Optimization Using Indexing
Mongo Performance Optimization Using IndexingMongo Performance Optimization Using Indexing
Mongo Performance Optimization Using Indexing
 
Webinar: Architecting Secure and Compliant Applications with MongoDB
Webinar: Architecting Secure and Compliant Applications with MongoDBWebinar: Architecting Secure and Compliant Applications with MongoDB
Webinar: Architecting Secure and Compliant Applications with MongoDB
 
Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101
 
Indexing In MongoDB
Indexing In MongoDBIndexing In MongoDB
Indexing In MongoDB
 
SSecuring Your MongoDB Deployment
SSecuring Your MongoDB DeploymentSSecuring Your MongoDB Deployment
SSecuring Your MongoDB Deployment
 
Mongo db security guide
Mongo db security guideMongo db security guide
Mongo db security guide
 
Replication and Replica Sets
Replication and Replica SetsReplication and Replica Sets
Replication and Replica Sets
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe World
 
Phplx mongodb
Phplx mongodbPhplx mongodb
Phplx mongodb
 
Webinar: Performance Tuning + Optimization
Webinar: Performance Tuning + OptimizationWebinar: Performance Tuning + Optimization
Webinar: Performance Tuning + Optimization
 
MongoDB Administration 101
MongoDB Administration 101MongoDB Administration 101
MongoDB Administration 101
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Common MongoDB Use Cases
Common MongoDB Use Cases Common MongoDB Use Cases
Common MongoDB Use Cases
 

Similaire à MongoDB 2.4 Security Features

Role-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jRole-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jNeo4j
 
Securing Hadoop in an Enterprise Context
Securing Hadoop in an Enterprise ContextSecuring Hadoop in an Enterprise Context
Securing Hadoop in an Enterprise ContextHellmar Becker
 
Cause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise DirectoryCause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise Directoryrwgorrel
 
Hadoop Security Architecture
Hadoop Security ArchitectureHadoop Security Architecture
Hadoop Security ArchitectureOwen O'Malley
 
Centralizing users’ authentication at Active Directory level 
Centralizing users’ authentication at Active Directory level Centralizing users’ authentication at Active Directory level 
Centralizing users’ authentication at Active Directory level Hossein Sarshar
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseScott Sutherland
 
GWAVACon 2013: Novell GroupWise Windermere Deep Dive
GWAVACon 2013: Novell GroupWise Windermere Deep DiveGWAVACon 2013: Novell GroupWise Windermere Deep Dive
GWAVACon 2013: Novell GroupWise Windermere Deep DiveGWAVA
 
Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010
Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010
Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010Cloudera, Inc.
 
Hadoop Security: Overview
Hadoop Security: OverviewHadoop Security: Overview
Hadoop Security: OverviewCloudera, Inc.
 
Securing Hadoop in an Enterprise Context (v2)
Securing Hadoop in an Enterprise Context (v2)Securing Hadoop in an Enterprise Context (v2)
Securing Hadoop in an Enterprise Context (v2)Hellmar Becker
 
A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...MongoDB
 
Kangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQLKangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQLKangaroot
 
Azure doc db (slideshare)
Azure doc db (slideshare)Azure doc db (slideshare)
Azure doc db (slideshare)David Green
 
Getting started with MariaDB with Docker
Getting started with MariaDB with DockerGetting started with MariaDB with Docker
Getting started with MariaDB with DockerMariaDB plc
 
Drupal intro-training-in-mumbai
Drupal intro-training-in-mumbaiDrupal intro-training-in-mumbai
Drupal intro-training-in-mumbaivibrantuser
 
Session 3 - Windows Server 2012 with Jared Thibodeau
Session 3 - Windows Server 2012 with Jared ThibodeauSession 3 - Windows Server 2012 with Jared Thibodeau
Session 3 - Windows Server 2012 with Jared ThibodeauCTE Solutions Inc.
 

Similaire à MongoDB 2.4 Security Features (20)

Role-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jRole-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4j
 
Where should I be encrypting my data?
Where should I be encrypting my data? Where should I be encrypting my data?
Where should I be encrypting my data?
 
Securing Hadoop in an Enterprise Context
Securing Hadoop in an Enterprise ContextSecuring Hadoop in an Enterprise Context
Securing Hadoop in an Enterprise Context
 
Hadoop Security Preview
Hadoop Security PreviewHadoop Security Preview
Hadoop Security Preview
 
Hadoop Security Preview
Hadoop Security PreviewHadoop Security Preview
Hadoop Security Preview
 
Cause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise DirectoryCause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise Directory
 
Hadoop Security Architecture
Hadoop Security ArchitectureHadoop Security Architecture
Hadoop Security Architecture
 
Centralizing users’ authentication at Active Directory level 
Centralizing users’ authentication at Active Directory level Centralizing users’ authentication at Active Directory level 
Centralizing users’ authentication at Active Directory level 
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash Course
 
GWAVACon 2013: Novell GroupWise Windermere Deep Dive
GWAVACon 2013: Novell GroupWise Windermere Deep DiveGWAVACon 2013: Novell GroupWise Windermere Deep Dive
GWAVACon 2013: Novell GroupWise Windermere Deep Dive
 
Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010
Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010
Hadoop Security, Cloudera - Todd Lipcon and Aaron Myers - Hadoop World 2010
 
Hadoop Security: Overview
Hadoop Security: OverviewHadoop Security: Overview
Hadoop Security: Overview
 
Securing Hadoop in an Enterprise Context (v2)
Securing Hadoop in an Enterprise Context (v2)Securing Hadoop in an Enterprise Context (v2)
Securing Hadoop in an Enterprise Context (v2)
 
Securing Hadoop in an Enterprise Context
Securing Hadoop in an Enterprise ContextSecuring Hadoop in an Enterprise Context
Securing Hadoop in an Enterprise Context
 
A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...
 
Kangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQLKangaroot EDB Webinar Best Practices in Security with PostgreSQL
Kangaroot EDB Webinar Best Practices in Security with PostgreSQL
 
Azure doc db (slideshare)
Azure doc db (slideshare)Azure doc db (slideshare)
Azure doc db (slideshare)
 
Getting started with MariaDB with Docker
Getting started with MariaDB with DockerGetting started with MariaDB with Docker
Getting started with MariaDB with Docker
 
Drupal intro-training-in-mumbai
Drupal intro-training-in-mumbaiDrupal intro-training-in-mumbai
Drupal intro-training-in-mumbai
 
Session 3 - Windows Server 2012 with Jared Thibodeau
Session 3 - Windows Server 2012 with Jared ThibodeauSession 3 - Windows Server 2012 with Jared Thibodeau
Session 3 - Windows Server 2012 with Jared Thibodeau
 

Plus de MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

Plus de MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

MongoDB 2.4 Security Features

  • 1. #MongoDBdays MongoDB Security Edouard Servan-Schreiber, Ph.D. Director of Solution Architecture 10gen
  • 2. Security against Trespassing • Data in flight • Data at rest
  • 3. MongoDB SSL SSL encryption SSL encryption for client for inter-server connection traffic Primary Secondary Application Data Files Data Files Keyfile establishes trust domain http://docs.mongodb.org/manual/administration/ssl/
  • 4. MongoDB - Gazzang • File System Encryption • 5% performance hit with HDD, 10-15% with SSD Gazzang Key Mgmt OS Gazzang File System – All contents encrypted
  • 5. Security against Insider Abuse • Authentication – Are you who you claim to be? • Authorization – Do you have access privileges to do what you want to do? • Auditing – Can I trace your activities for future verification?
  • 6. New with MongoDB 2.4 • Authentication – External authentication with kerberos • Authorization – Improved granularity of powers within a cluster to contain abuse • Auditing – Userid’s added to audit logs
  • 7. Authentication • 2.2 – Admin users and single db users – No external auth – No sense of user across databases • Had to redefine user in several databases • 2.4 – External authentication with kerberos – Can “source” users from different databases
  • 8. Authentication with only pwd hash • Use one-way function F I am “edouard@10gen.com”, let me in Knows Mongod only my Prove it, here is a random # N passwor d hash Here is F(N, hash(<mypwd>)) Nobody else could know Hash never that, welcome back edouard! transmitted over the network!
  • 9. Authentication with Kerberos (2.4) I am “edouard@10gen.com”, help me prove it to mongod KDC Here is a ticket for mongod Here is a Kerberos Welcome! ticket Mongod { user: ”edouard@10gen.com", roles: ["read"], userSource: "$external" }
  • 10. AUTHORIZATION Avoiding hierarchical powers Building Regional powers VS
  • 11. AUTHORIZATION • Issues with 2.2 – No roles --- No access / Read / ReadWrite – Hard to separate powers • 2.4 introduces roles – Admin level roles – DB level roles • UserAdmin • User Admin • ClusterAdmin • DB Admin • Read • ReadWrite
  • 12. AUTHORIZATION Corresponding • Issues with 2.2 Admin level roles for AllDatabases – No roles --- No access / Read / ReadWrite – Hard to separate powers • 2.4 introduces roles – Admin level roles – DB level roles • UserAdmin • User Admin • ClusterAdmin • DB Admin • Read • ReadWrite
  • 13. Only useful Admin DB Accnts DB to hold pwd hashes • UserAdmin • UserAdmin • ClusterAdmin App DB Product • UserAdmi DB n • UserAdmin • dbAdmin • dbAdmin Customer • ReadWrite BI DB • • Read ReadWrite DB • UserAdmi • Read • UserAdmin n • dbAdmin • dbAdmin • ReadWrite • ReadWrite • Read • Read
  • 14. I can do anything. I can add and But I won’t be remove required to do much shards, control the balancer DB Admin: UserAdmin DB Admin: ClusterAdmin I can I can grant I can create new create privileges to users but I can’t indices, set the App DB grant them profiling, only privileges to other compact DB’s DB Accnts: userAdmin DB App: userAdmin DB App: dbAdmin
  • 15. Only required to intervene if I can do anything. cluster admin or any other But I won’t be admin has to change. required to do much Can create new databases Is not on the critical path of any other activity. DB Admin: UserAdmin In Admin.system.users : { { user: “edouard@10gen.com” , user: “edouard” , usersource: “$external” pwd: <hash> OR roles: [ “userAdmin” ] , roles: [ “userAdmin”, otherDBroles: { } “userAdminAllDatabase” ] , } otherDBroles: { } }
  • 16. I can add and Manages the number of remove shards, shards and the balancer control the balancer, update replSet Cannot act on other DBs configs directly (e.g. cannot enable sharding on a collection) Cannot see any data DB Admin: ClusterAdmin Can be also the admin of all In Admin.system.users : other databases with “dbAdminAnyDatabase” { user: “edouard@10gen.com” , { usersource: “$external” user: “edouard@10gen.com” , roles: [ “clusterAdmin” ] , usersource: “$external” , otherDBroles: { } roles: [ “clusterAdmin”, } “dbAdminAnyDatabase“ ] , otherDBroles: { } }
  • 17. Manages the user list for the I can create new cluster. users but I can’t grant them All users should have an privileges on other entry in Accnts.system.users DB’s and this role is able to create them, while not letting them see the user list. DB Accnts: UserAdmin The Accnts DB is the authentication center In Accnts.system.users : { { user: “richard” , user: “edouard”, pwd: <hash> , pwd: <hash>, roles: [ “read” ] roles: [“userAdmin”] } } { user: “asya” , pwd: <hash> , roles: [ ] }
  • 18. Manages the user list for the I can create new cluster. users but I can’t grant them All users should have an privileges on other entry in Accnts.system.users DB’s and this role is able to create them, while not letting them see the user list. DB Accnts: UserAdmin The Accnts DB is the authentication center In Accnts.system.users : { { user: “richard” , Richard can user: “edouard”, pwd: <hash> , see the pwd: <hash>, roles: [ “read” ] information roles: [“userAdmin”] } about other } users…. { user: “asya” , pwd: <hash> , roles: [ ] }
  • 19. Manages the user list for the I can create new cluster. users but I can’t grant them All users should have an privileges on other entry in Accnts.system.users DB’s and this role is able to create them, while not letting them see the user list. DB Accnts: UserAdmin The Accnts DB is the authentication center In Accnts.system.users : { { user: “richard” , user: “edouard”, pwd: <hash> , Only the pwd: <hash>, roles: [ ] UserAdmin roles: [“userAdmin”] } should see } details about { other users user: “asya” , pwd: <hash> , roles: [ ] }
  • 20. I can I can grant Each DB’s userAdmin gets to create privileges to grant privileges separately indices, set the App DB profiling, only compact DB App: userAdmin DB App: dbAdmin In App.system.users : { { user: “richard” , user: “asya” , usersource: “Accnts” , usersource: “Accnts” , roles: [ “userAdmin” ] roles: [ “dbAdmin“ ] , } Credentials from Accnts DB }
  • 21. I do BI and I am the app. The BI user needs to read only need I read and from the app DB in order to to read write to the access the data to be from this DB analyzed DB And needs to read/write in another database dedicated to BI results DB App: readWrite DB App: read In App.system.users : In BI.system.users : { { { user: “appUser” , user: “BIUser” , user: “BIUser” , usersource: “Accnts” , usersource: “Accnts” , usersource: “Accnts” , roles: [ “readWrite” ] roles: [ “read“ ] , roles: [ “readWrite” ] } } }
  • 22. Simplifications • No need for Accnts DB if all users are externally authenticating • UserAdmin of AdminDB can manage and assign all the roles through {read, readWrite, dbAdmin, userAdmin}AnyDatabase – Roles: [“dbAdminAnyDatabase”, “readAnyDatabase”] • Can assign otherDBRoles in Admin.system.users, to grant privileges to only some DB’s – OtherDBRoles: { App: [ “Read”] BI: [“UserAdmin”, “ReadWrite”] }
  • 23. Case: one super user, one app admin, one app regular user ADMIN.system.users: { user: ”SuperUser", userSource: "$external", roles: [ APP.system.users: “userAdmin”,"clusterAdmin"], } { user: “AppUser”, userSource: “$external”, { user: “ AppAdmin”, roles: [“readWrite”] userSource:”$external”, } roles: [ ], otherDBRoles: { app: [ “useradmin”, ”dbadmin" ] } }
  • 24. Auditing - Logging Monitor user activity: – Logging to output userID associated with actions, when available – Sharded and single-node configurations – Not a separate audit log Future – Partnership / ecosystem opportunities
  • 25. Disclaimer Statements about future releases, availability dates, and feature content reflect plans only, and 10gen is under no obligation to include, develop or make available, commercially or otherwise, specific feature discussed a future MongoDB build. Information is provided for general understanding only, and is subject to change at the sole discretion of 10gen in response to changing market conditions, delivery schedules, customer requirements, and/or other factors.
  • 26. Future • Field level obfuscation – Blocking PPI data in documents from some users. • Improved auditing • More external authentication protocols • External access control privileges – Central management of ACL and MongoDB able to externally read them

Notes de l'éditeur

  1. Ok, so here are the presenters notes. Your first job is to add you name and other useful stuff so that your students can contact you afterwards.This is a good time to- introduce yourself- create a seating chart, get each student to say their name, company and what they want to learn... and write it on your seating chart
  2. MongoD does not even need to know the password hash!You can centralize your authentication service