5.8. Gestion des profils de sécurité

La solution logicielle VITAM permet de gérer des profils de sécurité.

Le profil se base sur un contexte, lui-même basé sur une/des certificat(s).

Le processus d’installation met en place le profil de sécurité d’administration, qu’il est fortement recommandé de laisser « tel quel », car ce dernier est utilisé pour des actes d’exploitation.

Il n’existe actuellement pas de playbook permettant de rajouter des profils de sécurité.

5.8.1. Ajout de profils de sécurité

Avertissement

Cette version est encore en cours de mise en place et est susceptible d’évoluer.

5.8.1.1. Configuration

Un playbook d’exploitation permet de rajouter des profils de sécurité.

Sur la machine de déploiement, il est nécessaire de configurer le fichier deployment/environments/group_vars/all/postinstall_param.yml, dans la section vitam_additional_securityprofiles.

Exemple :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
---

vitam_additional_securityprofiles:
  - name: applicative01
    identifier: spidentifier01 # manadatory, cannot be naither null nor blank
    hasFullAccess: false # true/false
    permissions: "null" # possible keypairs are stored in "modèle de données"  ; for example : "contexts:read"
    contexts:
      - name: contextappli01
        identifier: myContextIdentifier # please leave blank if associated tenants are "master" (if over release 9,related to existence of CONTEXT in vitam_tenants_usage_external directive for tenant)
        status: ACTIVE # ACTIVE or INACTIVE
        enable_control: true # can be true or false , must be true if fine permissions tuning (see above) ; if false, no permissions
        permissions: "[ { \"tenant\": 2, \"AccessContracts\": [], \"IngestContracts\": [] }]" # you can specify different permissions for all tenants that have to be associated to "[{perms1},{perms2}, ...]" where permsX is  something like { \"tenant\": 2, \"AccessContracts\": [], \"IngestContracts\": [] }
        certificates: ['cert1.crt'] # list of public certificates files stored in {{inventory_dir}}/certs/client-external/clients/

Note

les certificats devraient être de type external/${fichier crt}.

5.8.1.2. Ajout des fichiers``crt``

Placer les certificats précédemment renseignés (fichiers crt) dans {{inventory_dir}}/certs/client-external/clients/external/.

5.8.1.3. Lancement du playbook

L’ajout des profils de sécurité se fait en lançant le playbook comme suit :

ansible-playbook -i environments/${inventaire} ansible-vitam-exploitation/add_contexts.yml --ask-vault-pass

Prudence

Ce playbook ne sait gérer que le cas d’ajout de profils/contextes/… . Il convient de s’assurer au préalable que les champs name et identifier à ajouter n’existent pas déjà dans la solution logicielle VITAM.

5.8.1.4. Reconfiguration de VITAM

A l’issue de la bonne éxécution du playbook, il faut relancer un déploiement partiel de VITAM pour les groupes ansible [hosts_ingest_external] et [hosts_access_external]

5.8.1.4.1. Si utilisation de la PKI de tests

La procédure décrite ci-dessous est à appliquer dans le cas où la PKI de tests a été employée.

Exemple:

..   client_client-external_appliexterne.crt_key: Motd3P@sse! où appliexterne ne doit pas contenir de caractère "-"

Avertissement

Si le certificat à ajouter a été généré avec une CA non-connue de VITAM, il faut ajouter au bon endroit la clé publique (se référer au DIN pour plus d’informations).

Prudence

Un fichier crt ne doit contenir qu’une clef publique

Ensuite, regénérer les stores Java avec les certificats supplémentaires (script generate_stores.sh ; se référer au DIN pour plus d’informations)

5.8.1.4.2. Cas d’une autre PKI

Mettre à jour les stores java avec les certificats supplémenataires à truster.

5.8.1.4.3. Application des stores mis à jour

Rejeu du déploiement en limitant aux groupes ansible [hosts_ingest_external] et [hosts_access_external] et avec le tag ansible update_vitam_certificates.

Exemples

ansible-playbook ansible-vitam/vitam.yml -i environments/<inventaire> -l hosts_ingest_external,hosts_access_external -t update_vitam_certificates --vault-password-file vault_pass.txt
ansible-playbook ansible-vitam/vitam.yml -i environments/<inventaire> -l hosts_ingest_external,hosts_access_external -t update_vitam_certificates --ask-vault-pass