Gestion des utilisateurs et des rôles
Les déploiements Databases for MongoDB sont livrés avec l'authentification activée et utilisent MongoDB's le contrôle d'accès basé sur les rôles.
Ajoutez des utilisateurs dans l'interface utilisateur dans Données d'identification pour le service, à l'aide du plug-in d'interface de ligne de commande Cloud Databases ou de l'API Cloud Databases.
Administrateur
Lorsque vous mettez à disposition un déploiement Databases for MongoDB, un utilisateur admin
est automatiquement créé.
Définissez le mot de passe de l'administrateur avant de l'utiliser pour la connexion.
L'utilisateur admin
dispose des droits suivants:
-
userAdminAnyDatabase
fournit les mêmes privilèges queuserAdmin
sur toutes les bases de données à l'exception delocal
etconfig
.userAdminAnyDatabase
fournit le pouvoir d'administration à l'administrateur. Il permet d'effectuer l'actionlistDatabases
sur l'ensemble du cluster. AvecuserAdminAnyDatabase
, créez et accordez des rôles à tout autre utilisateur de votre déploiement, y compris les rôles intégrés MongoDB. Par exemple, pour surveiller votre déploiement, utilisezadmin
pour vous connecter à l'interpréteur de commandes mongo et accordez le rôleclusterMonitor
à n'importe quel utilisateur (y compris lui-même). Utilisez une commande telle que:db.grantRolesToUser( "admin", [ { role: "clusterMonitor", db: "admin" } ] )
-
readWriteAnyDatabase
fournit les mêmes privilèges quereadWrite
sur toutes les bases de données à l'exception delocal
etconfig
. -
dbAdminAnyDatabase
fournit les mêmes privilèges quedbAdmin
sur toutes les bases de données à l'exception delocal
etconfig
.
Définition du mot de passe administrateur dans l'interface utilisateur
Définissez votre mot de passe administrateur via l'interface utilisateur en sélectionnant votre instance dans le menu IBM Cloud Liste des ressources. Sélectionnez ensuite Paramètres. Sélectionnez ensuite Modifier le mot de passe de l'administrateur de base de données.
Définition du mot de passe administrateur dans le CLI
Utilisez la commande cdb user-password
à partir du plug-in IBM Cloud de l'interface de ligne de commande Cloud Databases pour définir le mot de passe de l'administrateur.
Par exemple, pour définir le mot de passe administrateur de votre déploiement, utilisez la commande suivante :
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
Définition du mot de passe administrateur dans l'API
Le point de terminaison de la fondation qui apparaît dans la section Détails du déploiement du panneau de présentation de votre service fournit l'URL de base pour accéder à ce déploiement via l'API. Utilisez-le avec le noeud final Définir le mot de passe de l'utilisateur spécifié pour définir le mot de passe de l'administrateur.
curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \
Gestion des utilisateurs et des rôles via l'interface utilisateur
- Accédez au tableau de bord de votre service.
- Cliquez sur Données d'identification de service pour ouvrir la section Données d'identification de service.
- Cliquez sur Nouvelles données d'identification.
- Choisissez un nom descriptif pour vos nouvelles données d'identification.
- (Facultatif) Indiquez si les nouvelles données d'identification utilisent un noeud final public ou privé. Utilisez
{ "service-endpoints": "public" }
/{ "service-endpoints": "private" }
dans la zone Ajouter des paramètres de configuration en ligne pour générer des chaînes de connexion qui utilisent le noeud final indiqué. L'utilisation du noeud final n'est pas imposée. Elle permet juste de contrôler les noms d'hôte mentionnés dans les chaînes de connexion. Les noeuds finaux publics sont générés par défaut. - Cliquez sur Add pour provisionner les nouvelles informations d'identification. Un nom d'utilisateur et un mot de passe, et un utilisateur MongoDB associé sont générés automatiquement.
Les nouvelles données d'identification apparaissent dans la table et les chaînes de connexion sont disponibles au format JSON dans une zone de type Cliquer pour copier sous Afficher les données d'identification.
La création d'un utilisateur à partir de l'interface de ligne de commande ou de l'API ne remplit pas automatiquement les chaînes de connexion de cet utilisateur dans la section Données d'identification de service. Si vous souhaitez
les y ajouter, vous pouvez créer de nouvelles données d'identification avec les informations utilisateur existantes. Entrez le nom d'utilisateur et le mot de passe dans la zone JSON sous Ajouter des paramètres de configuration en ligne.
Par exemple, {"existing_credentials":{"username":"Robert","password":"supersecure"}}
. En fait, vous envoyez le nom d'utilisateur et le mot de passe, et Service Credentials génère les chaînes de connexion avec les informations d'identification remplies.
Lorsque des données d'identification sont générées à partir d'un utilisateur existant, celui-ci n'est pas vérifié ni créé.
Les utilisateurs que vous créez via Données d'identification pour le service reçoivent les rôles readWriteAnyDatabase
et dbAdminAnyDatabase
.
Si vous souhaitez affecter un autre rôle aux utilisateurs créés à partir du panneau Données d'identification de services, vous pouvez vous servir du nom d'utilisateur admin pour modifier leur rôle.
Gestion des utilisateurs et des rôles par l'intermédiaire de l'interface de ligne de commande
Les utilisateurs créés dans l'interface de ligne de commande reçoivent les rôles readWriteAnyDatabase
et dbAdminAnyDatabase
.
Si vous souhaitez que les utilisateurs aient un rôle différent, vous pouvez utiliser l'utilisateur admin
pour modifier leur rôle.
Les utilisateurs créés directement à partir de l'interface de programmation n'apparaissent pas dans Service Credentials, mais vous pouvez les ajouter.
- Si vous gérez votre service via le plug-in d'interface de ligne de commandeCloud Databases, créez un utilisateur avec
cdb user-create
. Par exemple, pour créer un nouvel utilisateur pour votre déploiement, utilisez la commande suivante :
ibmcloud cdb user-create <INSTANCE_NAME_OR_CRN> <NEWUSERNAME> <NEWPASSWORD>
-
Lorsque la tâche est terminée, récupérez les chaînes de connexion du nouvel utilisateur à l'aide de la commande
ibmcloud cdb deployment-connections
. -
MongoDB centralise les données utilisateur dans la base de données
admin
. Lister tous les utilisateurs et leurs rôles et permissions de base de données dans le shell Mongo en utilisant la commandeshow users
.
ibmcloud cdb deployment-connections --start -u admin mongodb-production
Database Password>>
MongoDB shell version v4.0.3
connecting to: mongodb://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users
Gestion des utilisateurs et des rôles via l'API
Les utilisateurs créés dans l'API se voient attribuer les rôles readWriteAnyDatabase
et dbAdminAnyDatabase
.
Si vous avez besoin que les utilisateurs aient un rôle différent, utilisez l'utilisateur admin pour modifier leur rôle.
Les utilisateurs créés directement à partir de l'API n'apparaissent pas dans Service Credentials, mais vous pouvez les ajouter.
Le fichier Noeud final Foundation affiché dans la section Présentation de votre service fournit l'URL de base permettant d'accéder à ce déploiement via l'API. Pour créer et gérer des utilisateurs, utilisez l'URL de base avec
le noeud final /users
.
La commande se présente comme suit:
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type}
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}' \
Pour extraire les chaînes de connexion d'un utilisateur, utilisez l'URL de base avec le noeud final /users/{userid}/connections
.
MongoDB-created
Si les utilisateurs et les rôles intégrés ne conviennent pas à votre environnement, créer des utilisateurs et des rôles directement dans MongoDB. L'administrateur de votre déploiement a le pouvoir de créer n'importe quel rôle ou ensemble de privilèges sur votre déploiement.
Les utilisateurs et les rôles créés directement dans MongoDB n'apparaissent pas dans le panneau _Données d'identification de service _ et ne sont pas intégrés à votre compte IBM Cloud ou à IAM.
Utilisateur ibm
Si vous utilisez l'interpréteur de commandes Mongo pour lister les utilisateurs de votre déploiement, vous remarquerez peut-être un utilisateur nommé ibm
. L'utilisateur ibm
est le compte root interne qui gère la réplication,
les opérations de cluster et d'autres fonctions assurant la stabilité de votre déploiement. La modification ou la suppression de l'utilisateur ibm
n'est pas conseillée et perturbe la stabilité de votre déploiement.
Utilisateurs ops_manager
pour MongoDB Enterprise Edition
Ops Manager est disponible uniquement dans des déploiements Databases for MongoDB Enterprise Edition. Le type d'utilisateur ops_manager
dispose de droits limités. Pour plus d'informations, voir la documentationOps Manager.