Découvrez comment sécuriser, gérer et automatiser l'accès à la plateforme Datasentinel

post-thumb
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:

Users

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

Role Based Access Multi

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:

Role Based Access User


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

A propos de Datasentinel


Datasentinel est une plateforme puissante conçue pour surveiller et analyser les performances de vos clusters PostgreSQL.

Avec son interface conviviale et ses fonctionnalités avancées, Datasentinel vous permet d'analyser rapidement et précisément l'activité de vos clusters, d'identifier les processus gourmands en ressources, de configurer des alertes automatiques, de générer des rapports personnalisés, et bien plus encore.

Découvrez les avantages d'une gestion efficace des performances avec Datasentinel.

Demander l'essai