Compare commits

..

1 Commits

Author SHA1 Message Date
Marc Lasserre 8f692bce96
feat(infra): test branch protection and CI checks
DevSecOps Pipeline - V1 Infrastructure / System & Environment Check (push) Successful in 1s Details
DevSecOps Pipeline - V1 Infrastructure / Secret Detection (Gitleaks) (push) Successful in 4s Details
DevSecOps Pipeline - V1 Infrastructure / IaC Security & Vulnerability Scan (Trivy) (push) Successful in 5s Details
2026-08-07 01:26:39 +02:00
9 changed files with 92 additions and 127 deletions

View File

@ -1,28 +0,0 @@
name: Build & Publish DevSecOps Runner
on:
push:
branches: [ main ]
env:
DOCKER_HOST: tcp://localhost:2375
jobs:
build-and-push-runner:
name: Build & Publish Runner Image to Giteastry
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Authentification Giteastry
run: |
echo "${{ secrets.GITEA_TOKEN }}" | docker login git.gorym.net -u ${{ gitea.actor }} --password-stdin
- name: Build Image Runner
run: |
docker build -t git.gorym.net/rym/devsecops-runner:latest .
- name: Push vers Giteastry
run: |
docker push git.gorym.net/rym/devsecops-runner:latest

View File

@ -0,0 +1,39 @@
name: DevSecOps Pipeline - V1 Infrastructure
on: [push]
jobs:
health-check:
name: System & Environment Check
runs-on: host
steps:
- name: System Check
run: |
echo "Pipeline CI/CD opérationnel sur le VPS RYM !"
uname -a
podman --version
gitleaks-scan:
name: Secret Detection (Gitleaks)
runs-on: host
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Run Gitleaks via Podman
run: |
echo "🔍 Lancement du scan Gitleaks..."
podman run --rm -v "$PWD":/path:z docker.io/zricethezav/gitleaks:v8.18.2 detect --source="/path" -v
trivy-iac-scan:
name: IaC Security & Vulnerability Scan (Trivy)
runs-on: host
needs: gitleaks-scan
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Run Trivy IaC Scan
run: |
echo "🛡️ Analyse des fichiers d'infrastructure et des vulnérabilités..."
podman run --rm -v "$PWD":/path:z docker.io/aquasec/trivy:0.49.1 config /path

View File

@ -1,19 +0,0 @@
# Changelog
Toutes les modifications notables apportées à ce projet seront documentées dans ce fichier.
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
## [Unreleased]
### Ajouté
* Socle de gouvernance ISO 27001 (`CONTRIBUTING.md`, `SECURITY.md`, `LICENSE`).
* Image Runner CI/CD centralisée (`devsecops-runner`) sur Giteastry.
### Modifié
* Nettoyage de la dette technique : Suppression de la configuration obsolète Passbolt / Compose.
* Redirection du dépôt `rym_infrastructure` vers l'outillage DevSecOps.
## [1.0.0] - 2026-08-26
* Initialisation du dépôt et structuration initiale de la forge.

View File

@ -1,22 +0,0 @@
# Guide de Contribution & Gouvernance — RYM
Ce projet suit des normes strictes d'ingénierie DevSecOps et de conformité ISO 27001.
## 🔀 Workflow de Branchement (Git Flow / ISO)
1. **Interdiction de Push Direct** : Aucun commit direct sur `main` ou `staging` n'est autorisé.
2. **Nommage des Branches** :
* `feat/nom-fonctionnalite` : Nouvelle fonctionnalité.
* `fix/nom-du-bug` : Correction de bug.
* `sec/nom-correctif` : Correctif de sécurité.
3. **Cycle des PRs (Pull Requests)** :
* `feat/*` ➔ PR vers `dev`
* `dev` ➔ PR vers `staging` (Validations automatisées)
* `staging` ➔ PR vers `main` (Déploiement effectif)
## 🛡️ Exigences de Validation (CI/CD)
Avant toute fusion dans `main`, la PR doit obligatoirement :
* Réussir l'intégralité du pipeline `devsecops-ci.yml` (Lint, Scan Secret, Vulnerability Scan).
* Obtenir la validation d'au moins un membre habilité de l'équipe Infrastructure/Sécurité.
* Respecter la convention **Conventional Commits** (`feat:`, `fix:`, `docs:`, `ci:`).

View File

@ -1,16 +0,0 @@
# SOURCE INTERNE STRICTE (Giteastry)
FROM container.rym.local/mirror/alpine:3.19
# Outillage pré-installé dans le runner central
RUN apk add --no-cache \
bash \
curl \
git \
python3 \
py3-pip \
docker-cli
RUN pip install --no-cache-dir yamllint && \
curl -sSLo /usr/local/bin/kubectl "https://dl.k8s.io/release/v1.36.3/bin/linux/amd64/kubectl" && \
curl -sSLo /usr/local/bin/helm "https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz" && \
chmod +x /usr/local/bin/kubectl

View File

@ -1,7 +0,0 @@
PROPRIETARY AND CONFIDENTIAL — RYM INFRASTRUCTURE
Copyright (c) 2026 RYM. Tous droits réservés.
Ce code source et l'ensemble de ses composants associés sont la propriété exclusive de RYM.
Toute copie, modification, distribution ou utilisation non autorisée par écrit de ce logiciel
est strictement interdite.

View File

@ -1,17 +1,26 @@
# Tooling Infrastructure & DevSecOps Runner — RYM # Infrastructure Passbolt — RYM
Ce dépôt contient la définition et le cycle de vie de l'image de build centralisée (**DevSecOps Runner**), stockée sur **Giteastry**. Ce dépôt contient la définition Infrastructure as Code (IaC) pour le déploiement du gestionnaire de secrets **Passbolt CE** sur l'infrastructure RYM.
Il sert de socle d'outillage hermétique pour l'ensemble des pipelines CI/CD de la forge RYM. ## 🚀 Composants
## 🚀 Composants hébergés * **Passbolt CE** : Instance applicative principale (Web / API)
* **PostgreSQL 15** : Base de données relationnelle persistante
* **Runner CI/CD Custom** : Image Alpine contenant l'outillage pré-installé (`kubectl`, `helm`, `yamllint`, `gitleaks`). ## 🛠️ Déploiement
* **Giteastry Mirror** : Registre local hébergeant les binaires et conteneurs pour garantir une exécution 100 % isolée d'Internet.
## 🛠️ Usage ### 1. Prérequis
S'assurer que `podman` et `podman-compose` sont installés sur le serveur hôte.
L'image est construite automatiquement à chaque fusion sur `main` et publiée sur : ### 2. Configuration
`container.rym.local/rym/devsecops-runner:latest` Copier le fichier d'exemple et configurer les secrets :
```bash
cp .env.example .env
# Éditer .env avec les identifiants réels de production
Maintenu par l'équipe Infrastructure & Sécurité RYM. 3. Lancement
Bash
podman-compose up -d
Maintenu par l'équipe Infrastructure RYM.

View File

@ -1,25 +0,0 @@
# Politique de Sécurité — RYM
## 🛡️ Engagement Zero Trust & Confidentialité
L'infrastructure et les applications RYM sont conçues selon les principes Zero Trust et ISO 27001. Toute vulnérabilité identifiée doit être traitée de manière responsable.
## 🚨 Signalement d'une Vulnérabilité
Si vous découvrez une faille de sécurité ou une faiblesse de configuration :
1. **Ne créez pas de Ticket (Issue) public.**
2. Envoyez un rapport détaillé à l'équipe Sécurité via :
* **Email sécurisé** : `security@rym.local` (ou canal chiffré interne).
3. Incluez dans votre rapport :
* La description du composant impacté.
* Les étapes permettant de reproduire le problème.
* L'impact potentiel identifié.
## ⏱️ Délais d'intervention (SLA)
* **Accusé de réception** : Sous 24 heures ouvrées.
* **Évaluation & Analyse d'impact** : Sous 48 heures.
* **Correction (Patch)** :
* *Critique / Élevé* : < 72 heures.
* *Moyen / Faible* : Prochaine itération de release.

34
podman-compose.yml Normal file
View File

@ -0,0 +1,34 @@
version: '3.7'
services:
db:
image: docker.io/library/postgres:15-alpine
container_name: passbolt_db
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- /opt/passbolt/db:/var/lib/postgresql/data:Z
restart: unless-stopped
passbolt:
image: passbolt/passbolt:latest-ce
container_name: passbolt_app
environment:
APP_FULL_BASE_URL: ${PASSBOLT_URL}
DATASOURCES_DEFAULT_DRIVER: Cake\Database\Driver\Postgres
DATASOURCES_DEFAULT_HOST: passbolt_db
DATASOURCES_DEFAULT_PORT: "5432"
DATASOURCES_DEFAULT_USERNAME: ${POSTGRES_USER}
DATASOURCES_DEFAULT_PASSWORD: ${POSTGRES_PASSWORD}
DATASOURCES_DEFAULT_DATABASE: ${POSTGRES_DB}
DATASOURCES_DEFAULT_ENCODING: utf8
volumes:
- /opt/passbolt/gpg:/etc/passbolt/gpg:Z
- /opt/passbolt/jwt:/etc/passbolt/jwt:Z
ports:
- "127.0.0.1:8080:80"
depends_on:
- db
restart: unless-stopped