lundi 21 octobre 2019

Résoudre le transfert de SIP/DIP de manière sécurisée et gérable

L’un des enjeux majeurs de Vitam est la gestion d’archives en grande volumétrie et sur de longue durée. Le rôle de Waarp est la gestion sécurisée, performante et fiable des transferts de fichiers dans un contexte de production. Il s’agit d’apporter les qualités de Waarp à Vitam.

Le module Waarp-Vitam a pour objectif de répondre aux besoins impérieux de gérer et contrôler dans des conditions sécurisées et exploitables les opérations de versements et d’export avec Vitam et un SI. Il constitue la liaison entre deux logiciels Open Sources : Waarp et Vitam.
La release v1.0.0 de Waarp-Vitam, associée à la release v3.2.0 de Waarp-R66 a été testée et validée avec Vitam 2.6.3-1 et 2.11.2.

Objectifs du module Waarp-Vitam

Toute entité qui souhaite utiliser Vitam peut être confronté à un problème important comportant plusieurs limitations à l’usage des API Vitam natives dans le cadre des versements et des exports :
  • Vitam veut notamment répondre aux enjeux liés à la volumétrie. Il cible des volumétries de 10 Po, pour des dizaines de milliards d’objets.
    • Waarp permet à Vitam de gérer des transferts de fichiers en grand nombre et/ou de grande taille.
  • Vitam vise un niveau de sécurité et traçabilité élevé.
    • Waarp permet à Vitam d’ajouter de la sécurité, de la reprise sur incident et une traçabilité accrue sur les transferts de fichiers.
    • La sécurité des transferts (entrants ou sortants) est assurée dans ce cadre selon deux axes :
      • Waarp assure l’authentification des partenaires et la sécurité sur le plan du réseau des transferts.
      • Vitam assure la sécurité applicative (habilitation notamment) avec ces partenaires.
  • Vitam propose un accès par lots d’archives via un support physique ou un téléchargement de masse.
    • Waarp permet à Vitam pour le téléchargement de masse d’assurer une transmission bénéficiant de la qualité, de la sécurité et de la traçabilité.

Les interfaces API REST de Vitam ne permettent pas de résoudre ces éléments lorsque la fréquence ou la volumétrie induites sont importantes. Il est nécessaire alors, comme cela était prévu d’ailleurs dès le départ de la conception de Vitam, d’opter pour un outil tiers qui prend en charge les transferts de ce type, en l’occurrence ici Waarp.

Le module Waarp-Vitam veut ainsi résoudre la transmission en grand nombre et de grande volumétrie des archives, que ce soit en entrée (« SIP ingest ») ou en sortie (« DIP export ») en utilisant l’outil Waarp de gestion de transfert de fichiers (MFT pour Manage File Transfer) sécurisé, fiable, bénéficiant de traçabilité et de reprise sur incident, en lieu et place du protocole HTTPS associé aux API native de Vitam.
La release v1.0.0 de Waarp-Vitam, associée à la release v3.2.0 de Waarp-R66 a été testée et validée avec Vitam 2.6.3-1 et 2.11.2.

A.  Solutions apportées

1.    Substitution aux API Ingest de SIP et Export de DIP


Waarp-Vitam utilise les API Vitam suivantes :
  • API Entrées pour effectuer des Versement SEDA (SIP) autrement que via le protocole HTTP/HTTPS que propose Vitam.
  • API Accès pour effectuer les demandes et téléchargements d’export de DIP autrement que via le protocole HTTP/HTTPS que propose Vitam.
  • API d’administration fonctionnelle uniquement pour utiliser la ressource permettant de statuer sur le statut asynchrone d’une opération (entrée ou export).

Ainsi Waarp permet la sécurisation protocolaire, les contrôles finaux applicatifs sont laissés à Vitam, en utilisant les API Vitam natives.

Waarp se substitue à Vitam sur les échanges où l’utilisation du protocole HTTP/HTTPS n’est pas adapté pour des volumétries fortes ou des fréquences élevées. L’implémentation native Vitam qui en est faite ne permet pas une production fiable et sécurisée, permettant la reprise sur incident et la traçabilité des transmissions.

Il s’agit ici non pas de supprimer le support HTTP/HTTPS de Vitam mais d’y ajouter, comme prévu dès le départ de sa conception, y compris dans la norme SEDA, un autre protocole de transfert. Il s’interface donc avec les API REST de Vitam en proposant un autre protocole de transport tant pour les processus de versement (« SIP ingest ») que d’export (« DIP export »). Ainsi une entité qui utilise Vitam pour de grandes volumétries peut bénéficier de bout en bout d’un suivi, de reprises sur indicent et de la sécurité de ses transferts.

L’usage de protocoles de copie de fichiers via une solution Cloud ne semble pas non plus répondre aux exigences de sécurité, de reprise sur incident et de traçabilité. C’est pourquoi Waarp est proposé.

2.    Maintien des conditions de sécurité


Waarp-Vitam respecte la séparation des zones de sécurité et n’adresse donc jamais les API internes de Vitam. Il n’adresse que les API externes. Les éléments d’authentification sont les mêmes que pour Vitam et sont retransmises à Vitam. Ainsi le module Waarp-Vitam respecte les contraintes de sécurité posées dans le cadre de la conception de Vitam.

De plus, il permet d’ajouter éventuellement une zone dédiée à ces échanges, limitant encore plus les risques de sécurité.

Enfin, il assure un niveau d’exploitation (suivi, reprise sur incident, alerte) que ne permet pas les API natives de Vitam.

3.    Intégration de la solution de transferts de fichiers Waarp


Cette intégration était prévue dans le cadre du Programme Vitam, mais des délais et contraintes n’ont pas permis celle-ci durant le temps du programme. Cette intégration a donc été réalisée a posteriori par l’équipe Waarp elle-même, sur la base des connaissances approfondies de l’ancien directeur technique de Vitam, Frédéric Brégier.

Plusieurs implémentations sont possibles avec Waarp.

B.  Fonctionnalités


Le sujet des transferts de fichiers a été de nombreuses fois étudié dans le cadre du Programme Vitam. Le besoin d'un outil de transfert de fichiers a été souligné pour plusieurs raisons :

Exploitation

  • Pour assurer le suivi du transfert et la reprise sur incident

Mixte

  • Pour assurer la sécurité du transfert et l’identification du partenaire

Applicatif

  • Pour assurer la capacité de déclenchement d'actions avant/après/en cas d'erreur

Capacité le cas échéant à être inter-SI

  • A l’instar des Archives Nationales, de nombreuses implémentations Vitam verront une interconnexion entre plusieurs SI et donc des outils de transferts sécurisés et exploitables doivent être privilégiés.

1.    Intégration des transferts de fichiers : Réception de SIP (Ingest)


Différentes propriétés sont attendues d’une solution visant à l’intégration des transferts de fichiers en réception par un logiciel tiers :
  • Les échanges sont monitorés par la solution de transfert
  • Des premiers contrôles sont à réaliser par la solution de transfert
    • L'émetteur est autorisé
    • La taille du transfert et le rythme des transferts
    • La nature du transfert : association d'une typologie de transfert, correspondant à un « contrat de versement »
    • La sécurisation du transfert (reprise, intégrité, ...)
  • Une fois le transfert terminé, appel par la solution de transfert de l'API Vitam de validation d'un transfert
    • Fournit la localisation du fichier sur un espace accessible par Vitam
    • Fournit les informations : émetteur, taille, nature
    • Vitam prend alors en charge le fichier
  • Vitam ne fait pas de pooling
    • La solution de transfert est responsable d'appeler pour chaque transfert validé l'API Vitam
Initialement, l’intégration prévoyait un schéma comme celui-ci :


Vitam a changé de logique globale et repose maintenant sur des appels explicites aux API REST de Vitam pour déposer localement le SIP et récupérer une fois prêt l’ATR après l’opération d’entrée.

Waarp propose cette intégration comme suit :
  1. Une première étape où le SIP est transmis au service Waarp depuis un client Waarp.
  2. Ce fichier est alors déposé sur le partage Waarp / Vitam.
  3. Puis une requête d’ingest est opérée sur la base de ce fichier par Waarp.
  4. Waarp effectue un pooling sur le résultat.
  5. Waarp récupère l’ATR résultant et le retourne au moniteur Waarp partenaire (potentiellement différent de l’émetteur).

Ainsi, le répertoire partagé est celui proposé par Vitam lui-même, à savoir le répertoire /vitam/data/ingest-external/upload comme le précise ses spécifications détaillées. Si une nouvelle option voit le jour, comme la mise à disposition d’un espace physique distinct avec un espace partagé logique, Waarp pourra s’intégrer avec celle-ci.

2.    Intégration des transferts de fichiers : Émission de DIP (Export de DIP)


Différentes propriétés sont attendues d’une solution visant à l’intégration des transferts de fichiers en émission par un logiciel tiers :
  • Vitam prépare le transfert
    • Copie le fichier à émettre dans un espace accessible par la solution de transfert
  • Vitam appel un script associé à la solution de transfert
    • Le script appelé est configuré dans Vitam
    • Les arguments sont homogènes
      • Fourni la localisation du fichier sur un espace accessible par la solution de transfert
      • Destinataire, taille, nature
    • La solution de transfert prend alors en charge le fichier
  • Les échanges sont monitorés par la solution de transfert
  • Une fois le transfert terminé, appel par la solution de transfert de l'API Vitam de validation d'un transfert
    • Fournit les informations : récepteur, taille, nature, date et statut
    • Il est souhaitable que la solution de transfert gère une partie des gestions d'erreur (reprise sur incident, nouvelle tentative, …)
    • Vitam peut gérer de nouvelle tentative pour une même émission en cas d'erreur
Voici quelle était la solution envisagée par Vitam au début du Programme en 2015.



Vitam a changé de logique globale et repose maintenant sur des appels explicites aux API REST de Vitam pour récupérer une fois prêt le DIP à émettre.

Waarp propose cette intégration comme suit :
  1. Waarp reçoit une requête au format DSL Vitam d’export dans un fichier.
  2. Il appelle l’API Vitam d’export de DIP.
  3. Il effectue un pooling sur le résultat de cette requête.
  4. Il récupère le DIP et le renvoie au partenaire désigné.

Waarp utilise un espace de stockage propre, non partagé, pour réaliser cette opération. Si une nouvelle option voit le jour, comme la mise à disposition d’un espace physique distinct avec un espace partagé logique, Waarp pourra s’intégrer avec celle-ci.


C.  Architecture Waarp-Vitam


La toute première proposée s’appuie sur Waarp R66, le moniteur de transfert de fichiers (MFT).

Waarp R66 (Référencé SILL et RGI) permet de gérer des transferts volumineux et nombreux avec des contrôles.

La mise en œuvre du module Waarp-Vitam respecte les standards Vitam ainsi que la conception initiale même de l’intégration de Waarp à Vitam prévue à l’origine du Programme Vitam.

Le module peut faire l’objet d’une extension du « playbook » Ansible de Vitam pour son déploiement.

Avec deux moniteurs Waarp, un pour l’entrée des SIP, un autre pour l’export des DIP, il est possible de ne plus passer par les API REST HTTP/HTTPS de Vitam et donc d’assurer une transmission sécurisée, exploitable et résiliente de ces opérations.

De par la séparation des rôles, il est possible de n’instancier que l’une ou l’autre des fonctionnalités.

L’intégration dans Vitam est similaire dans les deux cas.


1.  Présentation de Waarp

Waarp est une suite de logiciels qui assure la gestion de transferts de fichiers (en « anglais » MFT pour « Manage File Transfer »). Parmi ses capacités, il permet d’assurer le suivi, la traçabilité, la reprise sur incident et le transfert de nombreux fichiers, y compris de grande taille, et ce dans un environnement sécurisé et exploitable.

Waarp est le premier acteur du marché à avoir couplé le modèle open source à une solution de MFT professionnelle.

La plateforme Waarp est un ensemble de logiciels libres et gratuits écrits en Java ou en Go dont le périmètre est la gestion des transferts de fichiers dans un contexte de production et sécurisé.

Elle se compose d’un ensemble d’outils pour former une suite complète à même de répondre à l’ensemble des besoins de votre infrastructure de transport de flux monitoré.
  • Waarp R66 Server : le moniteur
  • Waarp Gateway : interopérabilité avec des protocoles tiers
  • Waarp R66 Proxy : conçu pour les DMZ
  • Waarp Manager : administration et supervision centralisée

La plate-forme Waarp propose une liste de fonctionnalités puissantes pour la gestion des flux et l’exploitation de ces derniers en production en mode « industriel » :
  • protocole sécurisé et performant ;
  • adaptable à votre système d’information ;
  • intégrable dans les règles de sécurité ;
  • intégrable dans un plan de production ;
  • intégrable dans un outil de supervision ;
  • gestion centralisée des configurations ;
  • centralisation des historiques.
Adaptable à votre système d’information, Waarp offre des outils capables de prendre en charge la plupart de vos besoins en matière d’échange de flux en termes de transferts, production, sécurité, adaptation aux besoins métiers.

2.   Waarp R66

Avec un nombre de transferts simultanés virtuellement illimités, Waarp R66 assure la garantie de la délivrance et la reprise sur incidents sur les transferts, en mode synchrone ou asynchrone, en envoi comme en réception, réalisés sur la base de règles assurant le contrôle des droits entre partenaires.

Waarp R66 assure la sécurité des échanges par la traçabilité des transferts de bout en bout.

Le protocole R66 ouvert, puissant et sécurisé à authentification forte avec chiffrement des transferts, contrôle d’intégrité et traitements pré/post-transfert et sur erreur permet la sécurisation des échanges via l’identification des partenaires, la détection de tentatives d’intrusions, le support d’une configuration en DMZ et le support de partenaires à accès restreints. Waarp R66 propose des interfaces d’administration locales ou centralisées via Waarp Manager.

Il optimise les conditions d’usage du réseau (bande passante, ou d’autres ressources (CPU, RAM). Pour l’adaptation aux besoins métiers, Waarp R66 supporte plusieurs types de tâches comme la gestion de fichiers, la gestion de transferts et l’exécution de tâches externes (script ou Java).

Waarp R66 supporte la plupart des types de bases de données via JDBC (PostgreSQL, Oracle, MySQL/Maria DB, H2).

Voici un résumé de ses caractéristiques :

Performant et sécurisé

  • Nombre de transferts simultanés illimités ;
  • Possibilité de limiter l’usage de la bande passante (point à point ou globalement) ;
  • Garantie d’acheminement (persistance) ;
  • Virtualisation des chemins d’accès ;
  • Historisation des métadonnées associées aux transferts ;
  • Chiffrement et contrôle de l’intégrité des transferts (SSL) ;
  • Intégration facilitée dans les règles de sécurité (choix des ports, multiplexages des flux) ;
  • Authentification des partenaires (mot de passe et authentification optionelle par certificat client) ;
  • Validation d’usage des règles par partenaires.

Adaptable aux besoins fonctionnels

  • Initiative de transferts en mode envoi ou réception ;
  • Procédures de traitement avant ou après transfert, ou en cas d’erreur ;
  • Les traitements pré- et post-transfert dépendent de règles de transferts associées à chaque transfert.

Opérations natives

  • LOG : Enregistre dans le fichier de log l’information demandée
  • RENAME : Renomme le fichier
  • MOVE : Déplace le fichier
  • VALIDFILEPATH : Valide le chemin construit
  • DELETE : Efface le fichier
  • COPY : Copie le fichier
  • TRANSFER : Retransmet le fichier vers un autre serveur OpenR66
  • Opérations externes : EXEC (ou EXECRENAME) : Exécute une procédure externe (commande système) sur la base des arguments fournis ou construits (et renomme le fichier selon le nom retourné par la commande)

Intégrable dans un SI

  • Indépendance vis-à-vis des plates-formes serveurs : Windows, Linux, AIX, Solaris ;
  • Programmé en pur Java (minimum JRE 5) ;
  • Utilisable avec de multiples bases de données : supporte Oracle, PostgreSQL, MySQL/MariaDB, H2 ;
  • Intégrable dans les règles de sécurité ;
  • Intégrable dans un plan de production ;
  • Intégrable dans un outil de supervision (sortie SNMP) ;
  • Permet une gestion centralisée des configurations ;
  • Permet une centralisation des historiques.

Administrable et exploitable

  • Dispose d’une interface native HTTPS d’administration avec contrôle d’accès ;
  • Les fonctions de supervision sont à la fois accessibles sur le serveur de réception central, et les modules client ;
  • Waarp R66 assure une gestion souple de votre bande passante.

Traçabilité

  • Tous les transferts sont tracés dans la base de données
  • Les éléments de la base de données sont exportables au format XML

Utilisable selon plusieurs modes

  • Waarp R66 Server
  • Waarp R66 Client (lourd ou léger)
  • Waarp R66 Spooled Directory (File Watcher)

Un protocole spécifique

Le fondement de toutes ces fonctionnalités est basé sur l’implémentation d’un protocole spécifique, public et documenté, assurant un transfert en mode bloc avec reprise sur incident : R66.



3.    Waarp Gateway

Waarp Gateway est la passerelle de transferts permettant l’interconnexion entre les protocoles HTTP(s) et FTP(s) et le protocole R66, et de déclencher des opérations sur transferts.

Étant complétement ouvert, l’outil aura vocation, dans un proche avenir, à s’inter-opérer avec d’autres protocoles du marché tels que EBICS, AS1/AS2… (Avis aux contributeurs).

En attendant, notre équipe R&D fait constamment évoluer la Waarp Gateway pour répondre au mieux aux attentes des utilisateurs.

4.    Waarp Manager

D’autre part, la plateforme Waarp assure la supervision via Waarp Manager, l’interopérabilité, la portabilité au sein d’environnements multi-OS (Windows, GNU/Linux, Solaris/Sun OS, AIX...) et multi-sites.

Au travers d’une interface unifiée et ergonomique, vous pouvez :
  • Paramétrer facilement chaque instance Waarp R66 ;
  • Définir vos flux inter-applicatifs ;
    • Avec une vision métier (je veux transférer un fichier de l’application A vers l’application B en appliquant un modèle de règle) ;
    • La solution calcule automatiquement la meilleure route pour vos transferts ;
  • Déployer de la configuration en un clic sur l’ensemble de vos serveurs Waarp R66 et Waarp Gateway;
  • Suivre et superviser l’intégralité de vos transferts;
  • Auditer les modifications de configuration.

 
Waarp manager intègre le référentiel de toute votre infrastructure Waarp (serveurs et clients). Vous pouvez l’alimenter directement depuis votre CMDB ou via une interface web.

Centraliser l’administration de vos serveurs Waarp

Grâce à Waarp Manager, vous n’avez plus besoin de vous connecter à chaque serveur pour définir les flux en réception ou en envoi. Une seule interface de gestion de vos flux intuitive et ergonomique vous permet de définir simplement vos échanges.

En vue de simplifier le paramétrage, nous avons pris le parti de baser la définition des flux sur des modèles de règles préétablis. Votre administrateur à bien entendu tout loisir de créer autant de modèles que nécessaire.

Il suffit ensuite d’indiquer le nom du flux, son origine et sa destination (qui peut être multiple le cas échéant).

Centraliser la supervision et le reporting

Utilisez Waarp Manager pour superviser votre ferme de serveurs Waarp R66 au travers d’une seule interface Web. Vous pouvez connaître l’état de chaque serveur et voir immédiatement l’ensemble des transferts effectués sur une période.

Avec le détail de chaque transfert, vous aurez une vue précise et à chaque instant du statut de vos transfert.

Une interface vous propose une vue en temps quasi-réel de l’état de vos échanges de flux. Avec le détail de chaque transfert, vous aurez une vue précise et à chaque instant du statut de vos transfert.

Grâce à son module de reporting vous avez une vue synthétique, sous forme de tableau ou de diagramme, des principaux critères d’évaluation de la solution :
  • Taux de réussite des transferts par période, par application, par serveur...
  • Nombre de transferts réalisé
  • Vitesse moyenne des transferts
  • Taille moyenne des transferts


Pour de plus amples informations, merci de contacter Waarp via le site : https://www.waarp.fr

Aucun commentaire:

Publier un commentaire