Découvrez comment sécuriser, gérer et automatiser l'accès à la plateforme Datasentinel
Datasentinel utilise une approche à plusieurs niveaux pour sécuriser l’accès des utilisateurs à sa plateforme et contrôler qui peut accéder aux instances PostgreSQL surveillées
Tout d’abord, l’authentification est appliquée via un processus de connexion sécurisé qui nécessite que les utilisateurs fournissent des identifiants valides avant d’accéder à la plateforme.
De plus, la plateforme prend en charge l’intégration avec LDAP et Active Directory, permettant une gestion et une authentification centralisées des utilisateurs.
Dans cet article, nous examinons les façons dont Datasentinel permet aux organisations de personnaliser l’accès des utilisateurs en fonction de leurs besoins uniques grâce à la fonctionnalité de contrôle d’accès basé sur les rôles (RBAC).
En associant des tags à chaque instance surveillée (voir Comment utiliser les tags efficacement), les administrateurs peuvent facilement identifier et gérer l’accès des utilisateurs selon des critères spécifiques tels que l’accès aux statistiques d’activité des clusters attachés à une application ou l’accès aux instances de non-production (les critères de sélection sont illimités).
Les Utilisateurs
Datasentinel dispose d’un compte par défaut appelé “datasentinel” qui bénéficie d’un accès administrateur lors de l’installation de la plateforme.
Ce compte peut être utilisé pour configurer les rôles et les utilisateurs.
1. Il existe 2 profils d’utilisateur, permettant une restriction d’accès à certains dashboards
Profil | Description |
---|---|
developer | Accès limité aux dashboards Top queries, Sessions workload, Top tables/ indexes ainsi que le reporting au format PDF correspondant |
data admin | Accès à l’ensemble des dashboards ainsi que le reporting au format PDF |
Profil par défaut: data admin
2. Il existe 3 privilèges:
Privilège | Description |
---|---|
read | Accès en lecture seule à la plateforme |
read write | Privilège read + possibilité kill sessions/backends depuis l’interface |
admin | Privilège read write + administration de la plateforme |
Privilège par défaut: admin
3. L’accessibilité à la fonctionnalité Live360 (Accès direct aux instances) est également paramétrable. (Activée par défaut).
Dashboard des utilisateurs:
Les Rôles
Les rôles sont créés en associant des tags à une collection de valeurs, qui peuvent être personnalisées par l’administrateur.
Les rôles permettent de restreindre l’accès des utilisateurs à des clusters PostgreSQL spécifiques dans Datasentinel en les associant à ces utilisateurs.
La gestion des rôles peut être effectuée via l’interface de la plateforme ou via son API disponible.
Vous pouvez associer plusieurs tags à un même rôle et combiner les conditions ET/OU. Cf Documentation
Si vous souhaitez créer un ou plusieurs rôles à partir de l’interface graphique, les tags doivent déjà être présents, c’est-à-dire déjà associés à des instances supervisées, contrairement à la gestion via l’API.
Exemple de gestion via l’API
L’exemple ci-dessous crée un utilisateur n’ayant accès qu’aux instances Postgres associées à l’application sales.
Vous devez tout d’abord générer un token d’accès avec un compte administrateur de la plateforme.
curl -sk -u datasentinel:$PASSWORD -X POST https://$DATASENTINEL_HOST/ds-api/user-token
# Answer
{
"user-token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjY3OTg1MjIsImlhdCI6MTYyNjcxMjExNywiZGF0YWJhc2UiOiJkcy1kYXRhIiwiZW1haWwiOiJjb250YWN0QGRhdGFzZW50aW5lbC5pbyIsInVzZXIiOiJkYXRhc2VudGluZWwifQ.YhKtqrx0O3_gw63dIFCW30ScI8yS-_QY1dss3rRNZNI"
}
Le token d’accès a une durée de validité de 24 heures.
Déclaration d’une instance Postgres à monitorer.
La valeur sales est associée au tag application dans la propriété tags.
TMP_JSON_FILE=/tmp/connection.json
CONNECTION_NAME=pg-sales-production
cat > $TMP_JSON_FILE <<EOF
{
"host": "51.158.70.115",
"port": 9342,
"user": "datasentinel",
"password": "sentinel",
"tags": "application=sales"
}
EOF
curl -sk --header "user-token: $ACCESS_TOKEN" --header 'Content-Type: application/json' -X POST https://$DATASENTINEL_HOST/ds-api/pool/pg-instances/$CONNECTION_NAME -d @$TMP_JSON_FILE
# Answer
{
"status": "Connection created and connected!"
}
L’exemple ci-dessus implique une gestion de l’instance en Mode agentless .
Si vous utilisez des agents locaux, la déclaration des instances se fait au niveau de l’agent. (Cf Documentation)
Création d’un rôle
Le rôle sales-role est créé avec comme filtres un tag nommé application avec la valeur sales.
Pour une gestion plus complexe (par exemple associer plusieurs tags à un rôle), se reporter à la Documentation
TMP_JSON_FILE=/tmp/role.json
ROLE_NAME="sales-role"
cat > $TMP_JSON_FILE <<EOF
{
"access": [
{
"filters": [
{
"tag": "application",
"value": "sales"
}
]
}
]
}
EOF
curl -sk --header "user-token: $ACCESS_TOKEN" --header 'Content-Type: application/json' -X POST https://$DATASENTINEL_HOST/ds-api/roles/$ROLE_NAME -d @$TMP_JSON_FILE
# Answer
{
"status": "Role sales-role created successfully"
}
Création d’un utilisateur avec restriction d’accès
La création d’un utilisateur se fait avec son adresse mail.
L’association du rôle précédemment crée va restreindre l’accès aux instances dont la propriété (ou TAG) application est égale à sales.
Pour une gestion complète, se reporter à la Documentation
TMP_JSON_FILE=/tmp/user.json
ROLE_NAME="sales-role"
USER_EMAIL="jean.lapioffe@company.com"
cat > $TMP_JSON_FILE <<EOF
{
"password": "myPassword",
"role": "$ROLE_NAME"
}
EOF
curl -sk --header "user-token: $ACCESS_TOKEN" --header 'Content-Type: application/json' -X POST https://$DATASENTINEL_HOST/ds-api/users/$USER_EMAIL -d @$TMP_JSON_FILE
# Answer
{
"status": "User with login jean.lapioffe created successfully"
}
L’utilisateur nouvellement créé peut désormais se connecter sur l’interface Datasentinel avec son adresse mail ou avec le login affiché.
Cet utilisateur n’a ainsi accès qu’aux instances dont le tag application = sales
Page d’accueil Datasentinel:
Retrouvez la documentation complète d’utilisation de l’API. (Cf Documentation)
Des exemples complets d’utilisation de l’API sont aussi disponibles. (Cf Datasentinel Toolkit)
Conclusion
Datasentinel permet une gestion nominative des utilisateurs avec restriction d’accès.
Cette gestion d’accès à la plateforme peut se faire via une API permettant une complète automatisation.
Les fonctionnalités uniques de Datasentinel et la simplexité de son interface graphique permettent une prise en main rapide afin d’analyser facilement et précisément l’ensemble du workload de vos instances PostgreSQL en architecture HA ou non
Stay connected!
Si vous êtes client Amazon Web Services, Datasentinel est également présent sur la marketplace AWS vous permettant d’avoir une plateforme disponible en quelques clics