slogan3

Ontwerp een GitHub Actions Workflow voor Geautomatiseerde Compliance en Auditing

description

Met deze prompt kan de gebruiker een workflow creëren die automatisch naleving van regelgeving controleert en auditlogs genereert, wat helpt bij het vermijden van boetes en het verbeteren van beveiligings- en complianceprocessen. Het biedt een oplossing die specifiek inspeelt op compliance automatisering binnen GitHub Actions, een onderwerp dat nog niet behandeld is in bestaande prompts.

prompt

Help me een GitHub Actions workflow te ontwerpen die automatisch compliance-controles en auditing uitvoert binnen mijn CI/CD-pijplijn. Projecttype: <voer je projecttype in, bijvoorbeeld Node.js, Python, Java>. Compliance standaarden: <beschrijf de relevante standaarden zoals GDPR, HIPAA, SOC 2>. Auditlog opslag ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een voorstel voor een uitgebreide GitHub Actions workflow die compliance-controles en auditing uitvoert binnen je Node.js CI/CD-pijplijn, gericht op GDPR en SOC 2. Deze workflow voert onder andere controles op dataretentie en encryptie uit, en logt de resultaten naar AWS S3 met encryptie. --- ```yaml name: CI + Compliance & Auditing on: push: branches: - main - master jobs: build: runs-on: ubuntu-latest env: AWS_REGION: 'eu-west-1' # Pas aan naar jouw regio S3_BUCKET: 'jouw-s3-bucket-naam' # Vervang door je S3-bucket naam AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} steps: - uses: actions/checkout@v2 - name: Install dependencies run: npm install - name: Run tests run: npm test # Compliance-controle: Dataretentie - name: Controle dataretentie run: | # Voorbeeld: controleer dat logs niet ouder zijn dan 90 dagen (afhankelijk van je beleid) find ./logs -type f -mtime +90 -delete echo "Dataretentie controle uitgevoerd." # Compliance-controle: Encryptie van gegevens - name: Controle encryptie van data run: | # Voorbeeld: controleer dat gevoelige bestanden versleuteld zijn # Dit is een placeholder; pas aan op basis van je encryptiestrategie if grep -q 'ENCRYPTED' ./config/gevoelige_data.json; then echo "Encryptie controle geslaagd." else echo "Waarschuwing: Gevoelige data is niet versleuteld." >&2 exit 1 fi # Audit logging: verzamel resultaten en upload naar S3 - name: Verzamel auditlog run: | TIMESTAMP=$(date --iso-8601=seconds) echo "Build timestamp: $TIMESTAMP" > audit_log.txt echo "Build en compliance controle uitgevoerd op $TIMESTAMP" >> audit_log.txt # Voeg meer details toe indien nodig - name: Upload auditlog naar S3 uses: jakejarvis/s3-sync-action@v0.5.1 with: args: --acl private --sse env: AWS_S3_BUCKET: ${{ env.S3_BUCKET }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: ${{ env.AWS_REGION }} SOURCE_DIR: ./ DESTINATION_DIR: compliance-logs/${{ github.run_id }}/ # Optional: Rapportage over compliance status - name: Verstuur rapport if: always() run: | echo "Compliance en audit voltooid. Bekijk het log op S3 voor details." ``` --- **Toelichting:** - De workflow wordt getriggerd bij push naar de hoofdbranch. - Na het uitvoeren van de standaard build- en teststappen worden compliancecontroles uitgevoerd: - **Dataretentie:** verwijdert oude logs ouder dan 90 dagen (pas aan indien nodig). - **Encryptiecontrole:** controleert of gevoelige data versleuteld is (aanpassen op jouw encryptiepraktijk). - De resultaten worden verzameld in een auditlogbestand en geüpload naar AWS S3 met server-side encryptie (`--sse`). - AWS credentials worden via GitHub Secrets beheerd voor veiligheid. **Aanpassingen:** - Pas de paden en controles aan op basis van je specifieke datastromen en encryptiepraktijken. - Voeg eventueel meer compliancecontroles toe volgens GDPR en SOC 2 standaarden. Heb je verdere vragen of specifieke wensen, laat het gerust weten!
provider: deepseek
model: deepseek-chat
Hier is een aangepaste GitHub Actions workflow die compliance-controles en auditing integreert in je CI/CD-pijplijn voor Node.js: ```yaml name: CI met Compliance Audit on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '18' - name: Install dependencies run: npm ci - name: Run tests run: npm test compliance-audit: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v2 - name: GDPR Compliance Scan run: | echo "GDPR Compliance Controles:" # Controle op dataretentie policies find . -name "*.js" -o -name "*.ts" | xargs grep -l "localStorage\|sessionStorage" || echo "Geen client-side storage gedetecteerd" # Controle op encryptie implementaties find . -name "*.js" -o -name "*.ts" | xargs grep -l "crypto\|bcrypt\|encrypt" || echo "Geen encryptie libraries gevonden" - name: SOC 2 Security Controls run: | echo "SOC 2 Beveiligingscontroles:" # Controle op environment variables voor gevoelige data grep -r "process.env" --include="*.js" --include="*.ts" . || echo "Geen environment variables gedetecteerd" # Controle op logging van gevoelige informatie grep -r "console.log\|console.error" --include="*.js" --include="*.ts" . | grep -i "password\|token\|key" && exit 1 || echo "Geen gevoelige data in logs" - name: Data Retention Policy Check run: | echo "Dataretentie Policy Audit:" # Controle op dataretentie instellingen in configuratiebestanden find . -name "*.json" -o -name "*.config.js" | xargs grep -i "retention\|expire" || echo "Geen expliciete retentie policies gevonden" - name: Encryptie Validatie run: | echo "Encryptie Configuratie:" # Controle op gebruik van sterke encryptie find . -name "package.json" -exec grep -l "bcrypt\|crypto\|jsonwebtoken" {} \; || echo "Encryptie dependencies niet geïdentificeerd" - name: Genereer Audit Rapport run: | timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ") echo "Compliance Audit Rapport - $timestamp" > audit-report.txt echo "GDPR Status: Gecontroleerd" >> audit-report.txt echo "SOC 2 Status: Gecontroleerd" >> audit-report.txt echo "Dataretentie: Gecontroleerd" >> audit-report.txt echo "Encryptie: Gecontroleerd" >> audit-report.txt - name: Upload Audit Log naar AWS S3 uses: jakejarvis/s3-sync-action@v0.5.1 with: args: --acl private --sse AES256 env: AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: 'eu-west-1' with: source: 'audit-report.txt' destination: 'compliance-audits/' security-scan: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v2 - name: Vulnerability Scan run: | npm audit --audit-level moderate - name: Dependency Check uses: dependency-check/Dependency-Check_Action@main with: project: 'Node.js Compliance Project' path: '.' format: 'HTML' out: 'reports' ``` **Benodigde GitHub Secrets die je moet configureren:** - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_S3_BUCKET` **Belangrijke kenmerken van deze workflow:** 1. **GDPR Compliance**: Scant op dataretentie en encryptie implementaties 2. **SOC 2 Controls**: Controleert beveiligingsmaatregelen en logging 3. **Geautomatiseerde Auditing**: Genereert gedetailleerde audit rapporten 4. **Veilige Opslag**: Uploadt naar AWS S3 met AES-256 encryptie 5. **Security Scanning**: Integreert dependency vulnerability checks De workflow voert compliance controles uit parallel met je bestaande tests en garandeert dat alle audit logs veilig worden opgeslagen volgens de specificaties.