Skip to content
Français
Cloud medium

Pépin: find what actually weakens your cloud

2 min de lecture

Read this page in French

A scanner that finds nothing has not proved that everything is fine: it has proved that it found nothing. Pépin audits the effective configuration of European sovereign clouds, either from a Terraform plan before deployment or from a live collection afterwards, and it insists on separating three things most tools blur together: what is compliant, what is not, and what it could not observe.

The problem, before the architecture

Your Terraform looks fine. So does your tenant. Yet an over-broad network rule, an access key with no expiry or an open bucket is enough to change the posture, and nothing in the console tells you.

The hard part is not finding those deviations, plenty of tools do. The hard part is knowing what the scanner actually looked at. An absence of findings can mean "this is clean", or "I could not collect the data". Conflating the two turns an audit into false assurance.

Two commands, one verdict

No cloud account is needed to watch Pépin work: the repository ships example inventories.

Fenêtre de terminal
pepin scan scaleway examples/scaleway/inventory.json

The output ends like this, and the exit code is 1:

Verdict : NON CONFORME
🔴 CRITICAL 2 🟠 HIGH 2 🟡 MEDIUM 0 🔵 LOW 0

On the fixed inventory, the same check returns a verdict worth reading word by word, and the exit code drops back to 0:

Verdict : conforme sur le périmètre évalué
(aucune non-conformité détectée, 12 contrôles conformes)

"Compliant within the evaluated scope", and the number of controls that establish it. Not "compliant". That nuance is the whole product.

What the table hides, and Pépin knows

The human-readable output shows deviations. The assessment format shows the whole truth, status by status. On the vulnerable inventory above:

StatusCountWhat it means
fail4the deviation is established, with the offending resource
pass7the required data was collected, and it is compliant
not-applicable2the control does not concern this scope, and Pépin says why
not-evaluated14the data was missing: no conclusion is drawn

Fourteen controls out of twenty-seven could not be evaluated, and it is written down. A scanner counting those fourteen as successes would have displayed a flattering, false score. Every non-evaluation carries its reason:

compute_instance_has_security_group
no resource of type "compute_instance" in the evaluated inventory
governance_resource_required_tags
collection of the required data not confirmed for this provider

What Pépin works on

Three providers, two data sources. Each provider is described in its native vocabulary, never by comparison with a non-sovereign hyperscaler.

ProviderTerraform plan auditLive collection via API
Scalewayyesyes
Outscaleyesyes
Exoscaleyesyes

The two sources do not answer the same question. The Terraform plan tells you what you are about to create, and lets you block before deployment. The live collection tells you what is actually running, including whatever nobody declared in code.

What the results map onto

Controls are anchored on a common referential of 57 controls, with mappings to SCSL, SecNumCloud 3.2, CIS Controls v8 and ISO/IEC 27001:2022 and 27017. Every finding carries its normative reference and a link to the control it names.

Where to start

The actual state of the project

Pépin is at version 0.4.0. It is a young project, under the Apache-2.0 licence, and this page would rather say so than let you discover it.

State on 9 September 2026
Controls in the common referential57
ProvidersScaleway, Outscale, Exoscale
SourcesTerraform plan, live collection via API
Output formatstable, json, assessment, oscal, sarif
Evidence bundle--seal, re-checked by pepin verify, optional cosign signature
LanguagesFrench and English, detected automatically

What is still under construction is stated where it belongs rather than here: each page states its own limits.

Key points

  • An absence of findings is not compliance. Pépin separates pass, fail, not-applicable and not-evaluated, and justifies the last two.
  • The compliant verdict is qualified: "within the evaluated scope", with the number of controls that establish it.
  • Three providers, described in their native vocabulary: Scaleway, Outscale and Exoscale.
  • Two sources answering different questions: the Terraform plan before deployment, the live collection afterwards.
  • 57 controls mapped to SCSL, SecNumCloud 3.2, CIS v8 and ISO 27001/27017.
  • Normative mappings are indicative: qualification applies to the provider, not to your configuration.
  • The project is at 0.4.0, under Apache-2.0, and says so.

External resources

Is this site useful to you?

Fewer than 1% of readers support this site.

I maintain more than 700 free guides, with no ads and no tracking. Any support, even a symbolic one, helps cover hosting and keeps these resources free. Thank you for the help.

The form does not show? Open Ko-fi in a new tab.

Subscribe and follow my DevSecOps work on LinkedIn