doc-locale/fr-fr/ci/secure_files/_index.md
{{< details >}}
{{< /details >}}
{{< history >}}
ci_secure_files supprimé dans GitLab 15.7.{{< /history >}}
Cette fonctionnalité fait partie de Mobile DevOps. La fonctionnalité est encore en cours de développement, mais vous pouvez :
Vous pouvez stocker en toute sécurité jusqu'à 100 fichiers à utiliser dans des pipelines CI/CD en tant que fichiers sécurisés. Ces fichiers sont stockés en toute sécurité en dehors du dépôt de votre projet et ne sont pas soumis au contrôle de version. Il est sûr de stocker des informations sensibles dans ces fichiers. Les fichiers sécurisés prennent en charge les types de fichiers texte brut et binaire, mais doivent faire 5 Mo ou moins.
Vous pouvez gérer les fichiers sécurisés dans les paramètres du projet, ou avec l'API des fichiers sécurisés.
Les fichiers sécurisés peuvent être téléchargés et utilisés par des jobs CI/CD en utilisant la commande glab securefile.
Pour ajouter un fichier sécurisé à un projet :
[!warning] Le contenu des fichiers sécurisés n'est pas masqué dans la sortie du job log. Veillez à éviter d'afficher le contenu des fichiers sécurisés dans le job log, en particulier lorsque la sortie de journalisation pourrait contenir des informations sensibles.
glab {#with-the-glab-tool}Pour télécharger un ou plusieurs fichiers sécurisés avec glab, vous pouvez utiliser l'image Docker cli dans le job CI/CD.
Pour télécharger tous les fichiers sécurisés d'un projet :
test:
image: registry.gitlab.com/gitlab-org/cli:latest
script:
- glab auth login --job-token $CI_JOB_TOKEN --hostname $CI_SERVER_FQDN --api-protocol $CI_SERVER_PROTOCOL
- glab -R $CI_PROJECT_PATH securefile download --all --output-dir="where/to/save"
Dans cet exemple, toutes les variables sont des variables prédéfinies automatiquement disponibles.
test:
image: registry.gitlab.com/gitlab-org/cli:latest
script:
- glab auth login --job-token $CI_JOB_TOKEN --hostname $CI_SERVER_FQDN --api-protocol $CI_SERVER_PROTOCOL
- glab -R $CI_PROJECT_PATH securefile download $SECURE_FILE_ID --path="where/to/save/file.txt"
La variable CI/CD SECURE_FILE_ID doit être transmise explicitement au job, par exemple dans les paramètres CI/CD ou lors de l'exécution manuelle d'un pipeline. Toute autre variable est une variable prédéfinie automatiquement disponible.
Vous pouvez également, au lieu d'utiliser l'image Docker, télécharger le binaire et l'utiliser dans votre job CI/CD.
download-secure-files (déprécié) {#with-the-download-secure-files-tool-deprecated}{{< history >}}
{{< /history >}}
[!warning] Cette méthode est dépréciée.
Pour utiliser vos fichiers sécurisés dans un job CI/CD, vous pouvez utiliser l'outil download-secure-files pour télécharger les fichiers dans le job. Une fois téléchargés, vous pouvez les utiliser avec vos autres commandes de script.
Ajoutez une commande dans la section script de votre job pour télécharger l'outil download-secure-files et l'exécuter. Les fichiers sont téléchargés dans un répertoire .secure_files à la racine du projet. Pour modifier l'emplacement de téléchargement des fichiers sécurisés, définissez le chemin dans la variable CI/CD SECURE_FILES_DOWNLOAD_PATH.
Par exemple :
test:
variables:
SECURE_FILES_DOWNLOAD_PATH: './where/files/should/go/'
script:
- curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
Les fichiers sécurisés au niveau du projet sont chiffrés lors du téléversement à l'aide du gem Ruby Lockbox via l'interface Ci::SecureFileUploader. Cette interface génère une somme de contrôle SHA256 du fichier source lors du téléversement, qui est persistée avec l'enregistrement dans la base de données afin de pouvoir être utilisée pour vérifier le contenu du fichier lors du téléchargement.
Une clé de chiffrement unique est générée pour chaque fichier lors de sa création et persistée dans la base de données. Les fichiers téléversés chiffrés sont stockés soit dans un stockage local, soit dans un stockage d'objets selon la configuration de l'instance GitLab.
Les fichiers individuels peuvent être récupérés via l'API de téléchargement des fichiers sécurisés. Les métadonnées peuvent être récupérées via les endpoints API list ou show. Les fichiers peuvent également être récupérés avec la commande glab securefile. Cette commande vérifie automatiquement la somme de contrôle de chaque fichier lors de son téléchargement.
Tout membre du projet disposant du rôle Developer, Maintainer ou Owner peut accéder aux fichiers sécurisés au niveau du projet. Les interactions avec les fichiers sécurisés au niveau du projet ne sont pas incluses dans les événements d'audit, mais le ticket 117 propose d'ajouter cette fonctionnalité.