Une fois que vous avez créé votre pipeline d'images sécurisé, vous pouvez automatiser le workflow de génération d'images signées chaque fois que vous apportez des modifications au code source.
Cette page explique comment utiliser le pipeline pour produire des images sécurisées et certifiées.
Avant de commencer
Créez le pipeline d'image sécurisé et familiarisez-vous avec les ressources créées par le pipeline.
Utiliser le pipeline
Le code source des images de base se trouve dans le dépôt baseimgfct-[some number]-containers
de l'organisation GitHub que vous avez spécifiée lors de la configuration du pipeline d'images sécurisées. Pour mettre à jour une image, modifiez le fichier concerné dans le dépôt et envoyez une demande d'extraction avec les modifications à un membre de l'équipe pour examen. Lorsque vous créez la demande d'extraction, Cloud Build se déclenche dans YOUR_PROJECT_NAME-builder
qui crée l'image mise à jour et la transfère dans le dépôt Artifact Registry de YOUR_PROJECT_NAME-stage
.
Lorsqu'un membre de l'équipe a testé et validé les images dans YOUR_PROJECT_NAME-stage
, il peut approuver et fusionner votre demande d'extraction. L'action de fusion crée, analyse et atteste les images, puis transfère les images du projet de préproduction à YOUR_PROJECT_NAME-verified
.
Les étapes suivantes décrivent le workflow de développement permettant d'utiliser le pipeline d'images sécurisées :
Accédez au dépôt baseimgfact-[some number]-containers.
Ouvrez le dossier correspondant à l'image que vous souhaitez modifier, par exemple
ubuntu_18_0_4
.Effectuez des modifications. Par exemple, modifiez le fichier
Dockerfile
pour mettre à jour une image de conteneur.Sélectionnez Create a new branch for this commit and start a pull request (Créez une branche pour ce commit et démarrez une demande de fusion).
Cliquez sur Proposer des modifications.
Dans le champ Comment description (Description), saisissez /gcbrun. Cela permet de garantir que seuls les utilisateurs autorisés proposent des modifications au dépôt.
Cliquez sur Create pull request (Créer une demande de fusion).
Lorsque vous créez une demande d'extraction, la compilation dans
YOUR_PROJECT_NAME-builder
crée votre image et la transmet àYOUR_PROJECT_NAME-stage
.Ajoutez un membre de l'équipe pour examiner votre demande d'extraction.
Après avoir vérifié manuellement l'image, le membre de l'équipe approuve et fusionne la demande d'extraction.
L'action de fusion crée, teste, analyse l'image pour détecter les failles et atteste de l'image s'il s'agit d'une image de conteneur, puis transfère l'image à
YOUR_PROJECT_NAME-verified
.
Spécifier une stratégie de sécurité personnalisée
Si vous utilisez le pipeline d'images sécurisé pour générer et gérer des images de conteneur de base, vous pouvez spécifier une stratégie de sécurité personnalisée par rapport à laquelle l'image est validée.
YOUR_PROJECT_NAME-stage
exécute une instance Voucher, un outil Open Source qui exécute une suite de vérifications sur les images de conteneurs et crée des Attestations d'autorisation binaire pour les images. Lorsqu'une image de YOUR_PROJECT_NAME-stage
a été validée manuellement et qu'un membre de l'équipe fusionne la demande d'extraction dans le dépôt d'images de conteneurs GitHub, Voucher vérifie la présence de failles dans l'image, qui sont définies dans le fichier de configuration Voucher. Une fois la vérification terminée, si toutes les failles identifiées tombent en dessous du seuil, Voucher crée une attestation d'autorisation binaire pour l'image et celle-ci est transmise à YOUR_PROJECT_NAME-verified
. Si l'une des failles identifiées atteint ou dépasse le seuil, Voucher ne crée pas d'attestation. Sans attestation validée, l'outil d'application de l'autorisation binaire empêche le transfert de l'image vers YOUR_PROJECT_NAME-verified
.
Vous pouvez définir les vérifications exécutées par Voucher, ainsi que d'autres critères, dans le fichier de configuration du serveur Voucher. Pour obtenir des instructions à ce sujet, consultez la section Créer et configurer le serveur Voucher.