IBM Cloud Docs
Validation des informations collectées

Validation des informations collectées

Dans le DevSecOps architecture, avant de déployer les actifs, tous les éléments de preuve collectés dans le pipeline CI doivent être validés afin que les actifs répondent aux exigences de conformité.

La collecte de preuves est un aspect essentiel de la DevSecOps architecture de référence. Le pipeline d'EC collecte les éléments d'informations collectées pour toutes les analyses ou étapes des actifs effectuées par le pipeline d'EC. Le pipeline de déploiement continu (CD) déploie les actifs qui sont produits par le pipeline d'EC et le pipeline de conformité continue (CC) analyse l'actif déployé par le pipeline CD.

Vous pouvez valider les preuves de l'une des manières suivantes :

  1. Utilisation du profil Security and Compliance Center (SCC).
  2. Utilisation d'un fichier de configuration.

Utilisation du profil SCC

Utilisez SCC pour intégrer des contrôles de sécurité dans vos flux de travail quotidiens afin de surveiller la sécurité et la conformité. En surveillant les risques, vous pouvez identifier les vulnérabilités de sécurité, travailler à atténuer leur impact et résoudre les problèmes. L'intégration de la contrainte de contexte de sécurité doit être activée pour la chaîne d'outils et Use profile with attachment doit être activé, en fonction du profil et de la version de la contrainte de contexte de sécurité. Tous les contrôles sont validés en fonction des informations collectées pour toutes les ressources de la pièce jointe. La chaîne d'outils prend en charge les IBM Cloud® meilleures pratiques de sécurité avec la version 1.0.0 ou supérieure ou le profil IBM Cloud® for Financial Services avec la version 1.2.0 ou supérieure. Si vous souhaitez un sous-ensemble de contrôles spécifiés, créez un profil personnalisé à l'aide de ces profils et sélectionnez un sous-ensemble de contrôles. La chaîne d'outils est validée par rapport à ce profil. Pour plus d'informations, voir Security and Compliance Center.

Utilisation d'un fichier de configuration

La validation des informations collectées à l'aide d'un fichier de configuration fonctionne comme suit:

  • Les vérifications préalables au déploiement valident les informations collectées produites par le pipeline d'EC et effectuent les jalons du déploiement en fonction de ces vérifications. Si toutes les vérifications sont validées avec succès, la demande de changement est approuvée automatiquement. Si l'une des vérifications échoue, la demande de changement n'est pas approuvée automatiquement et le déploiement est bloqué. Dans le cas d'une demande de changement emergency, le déploiement n'est pas bloqué. Le fichier de configuration fait partie de la demande de changement.
  • Les vérifications post-déploiement valident les informations collectées produites par le pipeline CD et évaluent le pipeline en fonction de ces vérifications.
  • L'étape de fin valide les vérifications des informations collectées post-déploiement et évalue le pipeline CD. Les vérifications sont stockées dans le casier d'informations collectées à côté du fichier summary.json.

Pour chaque type d'actif, il peut être nécessaire de collecter des types d'informations collectées différents. Ainsi, dans les vérifications, vous pouvez définir le type d'actif et, en fonction de cet actif, les informations collectées collectées pour un outil sont les suivantes:

Activer la validation et l'évaluation des informations collectées à l'aide du fichier de configuration

Pour activer le validation of evidence dans votre chaîne d'outils, définissez la variable d'environnement opt-in-evidence-checks sur 1 dans la chaîne d'outils CD et CC.

Configurer le fichier de configuration

Pour définir le chemin d'accès au fichier de configuration, définissez evidence-checks-config-path sur le chemin d'accès au fichier présent dans pipeline-config-repo, sinon le fichier de configuration par défaut est utilisé. Différents environnements de déploiement peuvent avoir des fichiers de configuration différents. Par exemple, stage peut avoir des vérifications d'informations collectées qui diffèrent des vérifications d'informations collectées de production. Si evidence-checks-config-path n'est pas défini, le fichier de configuration recherche le fichier dont le nom est <region>.<target>.validation.json, <target>.validation.JSON ou validation.json dans pipeline-config-repo.

Il existe deux versions de ce fichier de configuration :

Fichier de configuration version 2

Aperçu de la collecte de preuves :

Au cours de l'exécution du pipeline CI/CD/CC, nous collectons diverses preuves contre divers outils et divers environnements de service. En termes simples, l'environnement de service peut être de développement, de production et de pré-prod (ou étape) récemment pris en charge. Les résultats de ces preuves sont regroupés pour déterminer la conformité globale au niveau de l'application pour un environnement de service particulier. L'utilisateur peut configurer des règles pour déterminer la manière dont l'agrégation des résultats est effectuée. Utiliser un fichier de configuration version2, ajustement utilisateur sur la façon d'évaluer toute preuve particulière en fonction de l'environnement de service. Les preuves peuvent être déclarées comme suit :

  1. recommandé (par défaut)
  2. obligatoire

Le diagramme ci-dessous montre comment fonctionne l'agrégation des preuves : agrégation de preuves

Évaluation des preuves et contrôle

Lorsque le niveau de conformité des applications requis n'est pas atteint, nous organisons le déploiement dans l'exécution du pipeline CD. Preuves prises en charge pour le gate :

pre-deployment[evidences list]
post-deployment[evidences list]

Différentes topologies de déploiement :

1. Promotion à partir de master à prod

Promotion du maître à la production {: caption="Cas d'utilisation 1. Promotion à partir de master à prod " côté légende="bas"}

Propriétés pour  et {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger "}

2. Promotion à partir de master à stage et puis à prod

Promotion du maître à la production {: caption="Cas d'utilisation 2. Promotion à partir de master à stage à prod " côté légende="bas"}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement stage "}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement prod "}

Fichier de configuration verison2

3. Promotion à partir de master à stage(us-east) à stage(us-south) et puis à prod(us-south)

Promotion du maître à la production {: caption="Cas d'utilisation 3. Promotion à partir de master à stage(us-east) à stage(us-south) et puis à prod(us-south) " côté légende="bas"}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement stage(us-east) "}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement stage(us-south) "}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement prod(us-south) "}

4. Promotion à partir de master à stage(us-east) à stage(us-south) et puis à prod(us-south)

Promotion du maître à la production {: caption="Cas d'utilisation 4. Promotion à partir de master à stage(us-east) à stage(us-south) et puis à prod(us-south) " côté légende="bas"}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement stage(us-east) "}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement stage(us-east) "}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement stage(us-south) "}

Propriétés pour  et  environnement {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement prod(us-south) "}

Fichier de configuration verison2 avec région

Tableau des résultats pour version2cocoa locker evidence check :

version2 sortie de commande {: caption="Propriétés de Manual Promotion Trigger et Manual CD Trigger environnement prod(us-south) "}

Pré-déploiement (vérifications effectuées avant que la demande de changement ne soit approuvée automatiquement)

  • Type d'actif (par exemple, image, commit, * ou tout actif)
    • Preuve
      • ID de type d'informations collectées (par exemple, com.ibm.static-scan)
        • Obligatoire (les informations collectées sont présentées à l'état success )
          • Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple, SonarQube, owasp-zap, * ou tout autre outil)
        • Recommandé (si les informations collectées sont manquantes / pendant/en échec, le pipeline consigne les messages d'avertissement)
          • Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple, SonarQube, owasp-zap, * ou tout autre outil)

Post-déploiement (vérifications qui évaluent le pipeline CD)

  • Type d'actif (par exemple, image, commit, * ou tout actif)
    • Preuve
      • ID de type d'informations collectées (par exemple, com.ibm.acceptance_tests)
        • Obligatoire (les informations collectées doivent être présentes à l'état success )
          • Outil (type d'outil, par exemple jest, * ou tout autre outil)
        • Recommandé (si les informations collectées sont manquantes / pendant/en échec, le pipeline consigne les messages d'avertissement)
          • Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple, SonarQube, owasp-zap, * ou tout autre outil)

L'évaluation du pipeline se produit également lorsque la vérification est activée dans le CD et le CC, à l'aide du fichier de configuration.

Exemple de fichier de configuration version 2

{
  "version": "2.0",
  "pre-deployment": [
    {
      "evidence_type_id": "com.ibm.prod_change_request",
      "rules": [
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "stage"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "stage"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.acceptance_tests",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            },
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.branch_protection",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.cloud.slsa",
      "rules": [
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.dynamic_scan",
      "rules": [
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.cloud.verify_signature",
      "rules": [
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.cloud.image_vulnerability_scan",
      "rules": [
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.peer_review",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.unit_tests",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.static_scan",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.detect_secrets",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.code_vulnerability_scan",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.code_cis_check",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.code_bom_check",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.network_compliance",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.pipeline_run_data",
      "rules": [
        {
          "asset_type": "generic",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.pipeline_logs",
      "rules": [
        {
          "asset_type": "generic",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.code-branch-protection",
      "rules": [
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.cloud.image_signing",
      "rules": [
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "master"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    }
  ],
  "post-deployment": [
    {
      "evidence_type_id": "com.ibm.prod_change_request",
      "rules": [
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "stage"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "stage"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.acceptance_tests",
      "rules": [
        {
          "asset_type": "commit",
          "source_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "image",
          "source_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        },
        {
          "asset_type": "*",
          "source_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.pipeline_run_data",
      "rules": [
        {
          "asset_type": "generic",
          "source_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    },
    {
      "evidence_type_id": "com.ibm.pipeline_logs",
      "rules": [
        {
          "asset_type": "generic",
          "source_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "target_environments": [
            {
              "name": "stage"
            },
            {
              "name": "prod"
            }
          ],
          "required": [],
          "recommended": [
            {
              "name": "tool",
              "values": [
                "*"
              ],
              "description": "The tool that collected the evidence"
            }
          ]
        }
      ]
    }
  ]
}

Fichier de configuration version 1

Pré-déploiement (vérifications effectuées avant que la demande de changement ne soit approuvée automatiquement)

  • Type d'actif (par exemple, image, commit, * ou tout actif)
    • Preuve
      • ID de type d'informations collectées (par exemple, com.ibm.static-scan)
        • Obligatoire (les informations collectées sont présentées à l'état success )
          • Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple, SonarQube, owasp-zap, * ou tout autre outil)
        • Facultatif (si les informations collectées sont présentes, elles doivent être à l'état success )
          • Outil (type d'outil pour lequel des informations collectées sont collectées. Par exemple, SonarQube, owasp-zap, * ou tout autre outil)
        • Ignorer (les informations collectées ne sont pas validées)

Post-déploiement (vérifications qui évaluent le pipeline CD)

  • Type d'actif (par exemple, image, commit, * ou tout actif)
    • Preuve
      • ID de type d'informations collectées (par exemple, com.ibm.acceptance_tests)
        • Obligatoire (les informations collectées doivent être présentes à l'état success )
          • Outil (type d'outil, par exemple jest, * ou tout autre outil)
        • Facultatif (si les informations collectées sont présentes, elles doivent être à l'état success )
          • Outil (type d'outil, par exemple servicenow-v3, * ou tout autre outil)
        • Ignorer (les informations collectées ne sont pas validées)

L'évaluation du pipeline se produit également lorsque la vérification est activée dans le CD et le CC, à l'aide du fichier de configuration.

Exemple de fichier de configuration version 1

{
  "pre-deployment": [
    {
      "asset_type": "commit",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.branch_protection",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.peer_review",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.unit_tests",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.static_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.detect_secrets",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.code_vulnerability_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.code_cis_check",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.code_bom_check",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.acceptance_tests",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    },
    {
      "asset_type": "image",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.cloud.slsa",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.cloud.image_signing",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.cloud.image_vulnerability_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.dynamic_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.cloud.verify_signature",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    },
    {
      "asset_type": "generic",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.pipeline_run_data",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.pipeline_logs",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    },
    {
      "asset_type": "*",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.code-branch-protection",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.peer_review",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.unit_tests",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.static_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.detect_secrets",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.code_vulnerability_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.code_cis_check",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.code_bom_check",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.cloud.image_signing",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.acceptance_tests",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.cloud.image_vulnerability_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.dynamic_scan",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.cloud.verify_signature",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    }
  ],
  "post-deployment": [
    {
      "asset_type": "image",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.prod_change_request",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.acceptance_tests",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    },
    {
      "asset_type": "generic",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.pipeline_run_data",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.pipeline_logs",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    },
    {
      "asset_type": "commit",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.acceptance_tests",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    },
    {
      "asset_type": "*",
      "evidences": [
        {
          "evidence_type_id": "com.ibm.prod_change_request",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        },
        {
          "evidence_type_id": "com.ibm.acceptance_tests",
          "rules": {
            "required": [],
            "optional": [
              {
                "tool": "*"
              }
            ],
            "ignore": []
          }
        }
      ]
    }
  ]
}

Valeur d'outil par défaut pour les différentes étapes du DevSecOps

ID de type d'informations collectées Outil pris en charge par défaut
com.ibm.branch_protection cocoa-branch-protection
com.ibm.unit_tests jest
com.ibm.detect_secrets detect-secrets
com.ibm.code_vulnerability_scan Pour les applications: cra-tf, cra, mend
Pour l'infrastructure sous forme de code: tfsec, checkov
com.ibm.code_bom_check cra-bom, sbom-utility
com.ibm.code_cis_check cra-cis
com.ibm.peer_review peer-review
com.ibm.static_scan Pour les applications: sonarqube, gosec
Pour l'infrastructure sous forme de code: terraform-fmt, terraform-validate, tflint
com.ibm.cloud.image_signing artifact-signing
com.ibm.acceptance_tests jest
com.ibm.dynamic_scan owasp-zap, owasp-zap-ui
com.ibm.cloud.image_vulnerability_scan va, sysdig, xray
com.ibm.prod_change_request gitlab,
com.ibm.close_change_request gitlab

|com.ibm.cloud.slsa | tekton-chains |