Déployer uniquement des images créées par Cloud Build

Cette page explique comment sécuriser votre chaîne d'approvisionnement logicielle en configurant l'autorisation binaire de manière à ne déployer que les images de conteneurs créées par Cloud Build.

Vous configurez ce contrôle de déploiement en exigeant le certificateur built-by-cloud-build dans votre stratégie d'autorisation binaire. Cloud Build crée automatiquement le certificateur built-by-cloud-build dans votre projet lorsque vous exécutez une compilation qui génère des images. Une fois les images compilées, Cloud Build signe et crée automatiquement des attestations pour celles-ci. Au moment du déploiement, l'autorisation binaire vérifie les attestations avec le certificateur built-by-cloud-build. Les images validées peuvent être déployées. Le déploiement des images qui échouent à la vérification n'est pas autorisé et l'échec est enregistré dans Cloud Audit Logs.

Pour obtenir un guide de bout en bout décrivant comment utiliser les métadonnées enregistrées par Cloud Build et l'autorisation binaire, consultez la page Utiliser la provenance signée et l'autorisation binaire.

Avant de commencer

Pour utiliser cette fonctionnalité, vous devez d'abord effectuer les opérations suivantes :

Configurer la stratégie

Dans cette section, vous allez configurer la stratégie d'autorisation binaire de manière à exiger le certificateur built-by-cloud-build.

Pour n'autoriser que le déploiement des images créées par Cloud Build, procédez comme suit :

Console

  1. Accédez à la page Autorisation binaire dans Google Cloud Console.

    Accéder à la page "Autorisation binaire"

  2. Dans l'onglet Règles, cliquez sur Modifier la règle.

  3. Dans la boîte de dialogue Modifier la stratégie, sélectionnez Autoriser uniquement les images qui ont été approuvées par tous les certificateurs suivants.

  4. Cliquez sur Ajouter des certificateurs.

  5. Dans la boîte de dialogue Ajouter des certificateurs, procédez comme suit :

    1. Sélectionnez Ajouter par projet et nom de certificateur, puis procédez comme suit :
      1. Dans le champ Nom du projet, saisissez le projet dans lequel vous exécutez Cloud Build.
      2. Cliquez sur le champ Nom du certificateur et notez que le certificateur built-by-cloud-build est disponible.
      3. Cliquez sur built-by-cloud-build.
    2. Vous pouvez également sélectionner Ajouter par ID de ressource de certificateur. Dans le champ ID de ressource du certificateur, saisissez

      projects/PROJECT_ID/attestors/built-by-cloud-build
      

      Remplacez PROJECT_ID par le projet dans lequel vous exécutez Cloud Build.

  6. Cliquez sur Ajouter un certificateur.

  7. Cliquez sur Save Policy (Enregistrer la stratégie).

gcloud

  1. Exportez votre stratégie existante dans un fichier à l'aide de la commande suivante :

    gcloud container binauthz policy export > /tmp/policy.yaml
    
  2. Modifiez votre fichier de stratégie.

  3. Modifiez l'une des règles suivantes :

    • defaultAdmissionRule
    • clusterAdmissionRules
    • istioServiceIdentityAdmissionRules
    • kubernetesServiceAccountAdmissionRules
  4. Ajoutez un bloc requireAttestationsBy à la règle s'il n'en existe pas déjà un.

  5. Dans le bloc requireAttestationsBy, ajoutez :

    projects/PROJECT_ID/attestors/built-by-cloud-build
    

    Remplacez PROJECT_ID par le projet dans lequel vous exécutez Cloud Build.

  6. Enregistrez le fichier de stratégie.

  7. Importez le fichier de stratégie.

    gcloud container binauthz policy import /tmp/policy.yaml
    

    Voici un exemple de fichier de stratégie contenant la référence au fichier built-by-cloud-build-attestor :

    defaultAdmissionRule:
      evaluationMode: REQUIRE_ATTESTATION
      enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
      requireAttestationsBy:
        - projects/PROJECT_ID/attestors/built-by-cloud-build
    name: projects/PROJECT_ID/policy
    

    Remplacez PROJECT_ID par l'ID du projet dans lequel vous exécutez Cloud Build.

Étape suivante