Automatyzacja zgodności regulacyjnej
Twoja firma właśnie przeszła audyt SOC 2 Type II, ale zbieranie dowodów zajęło trzem inżynierom dwa pełne tygodnie. Połowa pracy polegała na kopiowaniu logów z różnych systemów do arkuszy kalkulacyjnych, pisaniu opisów narracyjnych kontroli i robieniu zrzutów ekranu konfiguracji potwierdzających egzekwowanie polityk. W następnym kwartale audytor poprosi o te same dowody ponownie, a inżynier, który wiedział, gdzie wszystko się znajduje, właśnie odszedł z firmy.
Zgodność regulacyjna nie jest opcjonalna, ale otaczająca ją praca ręczna już tak. Narzędzia AI do kodowania mogą automatyzować egzekwowanie polityk na poziomie kodu, generować ścieżki audytowe z istniejącej infrastruktury i produkować dokumentację zgodności, która pozostaje aktualna bez dedykowanego etatu.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- Automatyczne wzorce compliance-as-code egzekwujące polityki w pipeline’ach CI/CD
- Hooki pre-commit wychwytujące naruszenia zgodności zanim kod trafi do produkcji
- Generowanie ścieżek audytowych napędzane przez AI z historii Git, logów infrastruktury i rekordów wdrożeń
- Prompty do generowania pakietów dowodów zgodności SOC 2, HIPAA i GDPR
- Automatyzacja skanowania bezpieczeństwa zintegrowana z codziennym przepływem pracy deweloperskiej
Przepływ pracy Compliance-as-Code
Dział zatytułowany „Przepływ pracy Compliance-as-Code”Główna idea: zakoduj wymagania regulacyjne jako wykonywalne reguły uruchamiane automatycznie. Zamiast udowadniać zgodność wstecz, zapobiegaj niezgodności przed wdrożeniem.
-
Zdefiniuj wymagania zgodności jako polityki czytelne maszynowo. Przetłumacz każdą kontrolę (SOC 2 CC6.1, HIPAA 164.312, GDPR Artykuł 25) na regułę, którą można sprawdzić programowo.
-
Wdróż egzekwowanie na wielu warstwach. Hooki pre-commit wychwytują problemy lokalnie. Bramki CI/CD blokują niezgodny kod przed scaleniem. Skanery infrastructure-as-code walidują konfiguracje wdrożeniowe.
-
Automatycznie generuj dowody audytowe. Każde sprawdzenie egzekwujące produkuje wpis z timestampem. Te logi stają się twoją ścieżką audytową.
-
Generuj raporty zgodności na żądanie. AI agreguje logi egzekwowania, historię Git i stan infrastruktury w raporty narracyjne, których oczekują audytorzy.
Egzekwowanie polityk w CI/CD
Dział zatytułowany „Egzekwowanie polityk w CI/CD”Najbardziej niezawodne egzekwowanie zgodności odbywa się w pipeline CI/CD. Kod naruszający politykę nigdy nie trafia do produkcji, ponieważ pipeline go odrzuca.
Wygeneruj pipeline w trybie agenta, a następnie użyj checkpointów Cursora i przeglądu różnic, aby zweryfikować każdą wygenerowaną regułę. Reguły zgodności są z natury dopasowaniem dokładnym, więc krok wizualnego przeglądu ma tutaj większe znaczenie niż w większości przepływów pracy.
@codebase "Create a GitHub Actions workflow that enforces the following compliancepolicies before any code can be merged to main:
1. All secrets must be stored in environment variables, never hardcoded (scan for patterns like API keys, passwords, tokens)2. All database queries must use parameterized statements (no string concatenation in SQL)3. All user-facing endpoints must have authentication middleware4. All PII fields must be encrypted at rest (check schema definitions)5. All changes to auth-related files require two approvals
For each check, log the result to a compliance-evidence.json artifactwith timestamp, check name, result (pass/fail), and affected files.Generate the workflow file and any helper scripts needed."Przed zaakceptowaniem różnicy ustaw checkpoint Cursora i sprawdź każdą wygenerowaną regułę w odniesieniu do faktycznego języka twojej kontroli. Regex, który jest nieco zbyt szeroki, oznaczy każdy PR; ten, który jest zbyt wąski, po cichu przepuści naruszenia. Checkpoint pozwala cofnąć pojedynczą złą regułę bez regenerowania całego workflow.
Przewagą Claude Code jest tutaj to, że ten sam agent działa zarówno interaktywnie, jak i w trybie headless, więc reguły wygenerowane lokalnie to te same reguły, które działają w CI. Zbuduj je raz, a następnie wywołuj Claude w trybie headless wewnątrz samego zadania zgodności.
claude "Create a compliance enforcement system for our CI/CD pipeline.
Requirements:- GitHub Actions workflow that runs on every PR to main- Secret detection: scan for hardcoded API keys, passwords, and tokens- SQL injection prevention: verify parameterized queries- Authentication checks: ensure all public endpoints use auth middleware- PII protection: validate encryption on sensitive database fields- Approval gates: require 2 reviewers for changes to auth/ and security/ dirs
Each check should produce structured JSON output with: { timestamp, check_name, result, affected_files, evidence_hash }
Store results as workflow artifacts for audit trail.Generate all files needed: workflow YAML, scanning scripts, and acompliance-report-generator that summarizes results."Następnie uruchom sam krok analizy w trybie headless z poziomu workflow, aby dowody JSON były produkowane przez tego samego agenta i parsowane deterministycznie:
- name: Compliance review (headless) run: | claude -p "Review the diff in this PR against the rules in .compliance/policies.md. Emit one JSON object per violation: { control_id, file, line, severity, fix }. Emit [] if clean." \ --output-format json --allowedTools "Read,Grep,Bash" \ > compliance-evidence/review-$(date +%Y%m%d-%H%M%S).json--output-format json daje ci wynik parsowalny maszynowo, na którym możesz oprzeć bramkowanie zadania, a artefakt z timestampem sam w sobie staje się dowodem audytowym.
Wyróżnikiem Codex jest zadanie w chmurze połączone z integracją z GitHubem: workflow egzekwujący można napisać i dostarczyć jako PR, bez uruchamiania go lokalnie przez kogokolwiek. Otwórz zadanie w chmurze, które wykonuje pracę i otwiera PR za ciebie.
Z poziomu terminala uruchom zadanie w chmurze i pobierz różnicę, gdy będzie gotowa:
codex cloud exec --env prod-ci "Add a GitHub Actions compliance gate that runs onevery PR to main: secret scanning, parameterized-query check, auth-middlewarecheck on public endpoints, PII-encryption check on schemas, and a 2-reviewerrequirement for auth/ and security/. Emit structured JSON evidence per check andupload it as a workflow artifact. Open a PR with the workflow and scripts."codex apply # apply the task's diff to your local working tree to reviewAlbo całkowicie pomiń terminal: skomentuj @codex add the compliance gate described in our SOC 2 checklist w śledzącym PR, a Codex uruchomi zadanie w chmurze, używając tego PR jako kontekstu, po czym wypchnie swoje zmiany z powrotem. Ponieważ praca trafia jako PR do przeglądu, samo wygenerowanie twoich reguł zgodności zostaje uchwycone w ścieżce audytowej zarządzania zmianami.
Hooki pre-commit do zgodności
Dział zatytułowany „Hooki pre-commit do zgodności”Hooki pre-commit dają deweloperom natychmiastowy feedback, zanim kod opuści ich maszynę. To szybsze niż czekanie na CI i zmniejsza naruszenia zgodności u źródła.
Wygeneruj standardowy .pre-commit-config.yaml, a następnie użyj trybu agenta, aby dodać reguły specyficzne dla projektu i przejrzyj każdą z nich w różnicy przed commitem.
"Generate a pre-commit hook configuration (.pre-commit-config.yaml) thatenforces these compliance rules locally:
1. No secrets in committed files (use detect-secrets or gitleaks)2. No TODO/FIXME comments in files under src/security/3. All TypeScript files must have 'use strict' or strict mode enabled4. Database migration files must include a rollback step5. API route files must import from the auth middleware module
For each rule that fails, print a clear message explaining the violationand how to fix it. Also create a COMPLIANCE.md that documents each hookand the regulatory requirement it addresses."To przenośna, niezależna od języka warstwa (framework pre-commit), którą dostaje każdy współpracownik niezależnie od tego, jakiego edytora używa.
Poza współdzielonym .pre-commit-config.yaml, Claude Code ma własne natywne hooki, które uruchamiają się wokół działań samego agenta. Użyj hooka PreToolUse, aby sam agent był blokowany przed zapisaniem sekretu lub nieuwierzytelnionej trasy, a nie tylko blokowany w momencie commita.
claude "Add a Claude Code PreToolUse hook in .claude/settings.json that runson Edit and Write. The hook should run scripts/compliance/guard.sh on thefile being written and exit non-zero (blocking the edit) if it detects ahardcoded secret or a new API route missing the auth middleware import.Print the violated control ID so the block message is audit-friendly.Also generate the shared .pre-commit-config.yaml for git-level enforcement."Konfiguracja pre-commit wychwytuje to, co commituje człowiek; hook Claude Code wychwytuje to, co agent w ogóle próbuje zapisać. Oba zapisują te same identyfikatory kontroli, więc naruszenia są śledzalne do konkretnej klauzuli SOC 2 / HIPAA, niezależnie od tego, która warstwa zadziała.
Potraktuj konfigurację hooków jako małą, łatwą do przejrzenia zmianę, którą możesz dostarczyć bez lokalnej konfiguracji. Wspomnij @codex w śledzącym zgłoszeniu lub PR i pozwól zadaniu w chmurze otworzyć PR:
@codex add pre-commit compliance hooks: gitleaks for secret detection, acustom hook blocking TODO/FIXME in src/security/, a hook requiring a rollbackblock in every DB migration, and a hook checking API routes import the authmiddleware. Add .pre-commit-config.yaml plus the custom scripts and open a PR.Ponieważ działa to jako zadanie w chmurze i trafia jako PR, zmiana jest przeglądana i scalana przez ten sam przepływ zatwierdzeń co każdy kod, więc dodanie zabezpieczenia samo w sobie jest logowane jako zdarzenie zarządzania zmianami.
Automatyczne generowanie ścieżki audytowej
Dział zatytułowany „Automatyczne generowanie ścieżki audytowej”Audytorzy potrzebują dowodów, że kontrole były egzekwowane w czasie, nie tylko w momencie audytu. Automatyczna ścieżka audytowa zbiera dane o egzekwowaniu w sposób ciągły.
Ścieżka audytowa oparta na Git
Dział zatytułowany „Ścieżka audytowa oparta na Git”Twoja historia Git już zawiera bogatą ścieżkę audytową. AI może wyodrębnić z niej zdarzenia istotne dla zgodności.
Ścieżka audytowa infrastruktury
Dział zatytułowany „Ścieżka audytowa infrastruktury”Zmiany infrastruktury również potrzebują ścieżek audytowych. Jeśli używasz Terraform, CloudFormation lub Pulumi, każda zmiana jest już wersjonowana.
Uruchom to interaktywnie w trybie agenta, gdy przygotowujesz się do okna audytowego i chcesz czytać ustalenia na bieżąco, a następnie wejść w szczegóły konkretnych różnic Terraform w edytorze.
@codebase "Generate an infrastructure compliance report by analyzing:
1. All Terraform state changes in the past quarter2. Security group modifications (who changed what, when)3. IAM policy changes and their justifications from PR descriptions4. Encryption configuration status for all data stores5. Network access control changes
Cross-reference each change against our SOC 2 CC6.1 (logical access)and CC6.6 (boundary protection / network controls) requirements. Flagany changes that lack a corresponding approval in the PR process.
Output as a structured report with evidence links to specific commits."Cursor łączy każde ustalenie z commitem, więc możesz otworzyć różnicę w edytorze i na własne oczy ocenić, czy zmiana naprawdę odpowiada uzasadnieniu z PR, zanim raport trafi do audytora.
Audytorzy chcą dowodów zbieranych w sposób ciągły, a nie w noc poprzedzającą audyt. Tryb headless Claude Code pozwala uruchamiać ten sam audyt według harmonogramu i zrzucać raport prosto do twojego kubełka z dowodami — bez człowieka w pętli.
# scripts/compliance/infra-audit.sh — run from a weekly cron / scheduled CI jobclaude -p "Generate an infrastructure compliance audit report.Analyze Terraform state changes over the past 7 days. For each change extract:resource modified, Git author, PR number and approval status, and whether ittouches a security control (security groups, IAM, encryption, network ACLs).Map each finding to SOC 2 controls CC6.1 (logical access), CC6.6(boundary/network controls), and CC7.1 (detection of configuration changesand unauthorized components). Flag changes without proper PR approval." \ --output-format json --allowedTools "Read,Grep,Bash" \ > compliance-evidence/infra-audit-$(date +%Y%m%d).jsonPonieważ działa w trybie headless i emituje JSON, co tydzień otrzymujesz datowany, odporny na manipulacje artefakt, a dalszy krok może oblać zadanie (lub zaalarmować kanał zgodności) w momencie, gdy pojawi się niezatwierdzona zmiana IAM.
Codex pasuje, gdy audyt ma żyć w chmurze i sam się publikować zespołowi. Zaplanuj zadanie w chmurze albo skonfiguruj GitHub Action tak, by każdy PR dotyczący infrastruktury dostawał inline’owy przegląd zgodności.
on: pull_request: paths: ['infra/**', '**/*.tf']jobs: audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: openai/codex-action@v1 with: prompt-file: .github/codex/prompts/infra-audit.mdTrzymaj prompt w .github/codex/prompts/infra-audit.md (te same sprawdzenia Terraform/IAM/szyfrowania zmapowane na CC6.1, CC6.6, CC7.1). Dla doraźnego uruchomienia skomentuj @codex audit the infra changes in this PR against our SOC 2 controls, a Codex opublikuje ustalenia jako recenzję PR.
Generowanie pakietu dowodów SOC 2
Dział zatytułowany „Generowanie pakietu dowodów SOC 2”Audyty SOC 2 Type II wymagają dowodów, że kontrole działały efektywnie przez okres (zwykle 6-12 miesięcy). Ręczne generowanie tych dowodów to najbardziej czasochłonna część audytu.
Automatyzacja zbierania dowodów
Dział zatytułowany „Automatyzacja zbierania dowodów”Składaj pakiet interaktywnie, abyś mógł korygować zakres w trakcie pracy agenta — otwórz w edytorze eksport z dostawcy tożsamości lub plik Terraform i potwierdź, że dowód się zgadza, zanim trafi do dokumentu.
"Generate a complete SOC 2 Type II evidence package for the past quarter.
For each Trust Service Criteria, collect the following:
CC6.1 (Logical Access Controls):- User access reviews (export from our identity provider)- Role-based access control documentation- MFA enforcement evidence (percentage of users with MFA enabled)- Privileged access inventory
CC6.2 (System Account Management):- Service account inventory with last rotation dates- Automated credential rotation evidence from CI/CD logs- Account lifecycle documentation (creation, modification, termination)
CC6.6 (Boundary Protection) and CC6.7 (Data Classification / Transmission):- Network architecture diagram (generate from Terraform)- Data classification matrix- Data flow diagrams for PII (encryption in transit)
CC8.1 (Change Management):- All PRs merged to main with approval status- CI/CD pipeline pass rates- Deployment logs with rollback instances- Change advisory board meeting notes (if applicable)
For each control, provide:1. Control description2. Evidence collected3. Testing results (effective/deficiency)4. Recommendations for improvement
Output as a structured document that an auditor can review directly."Pełny pakiet SOC 2 obejmuje kilka niezależnych domen dowodowych, co mapuje się czysto na sub-agentów: poproś Claude Code, by rozdzielił każdą rodzinę kontroli do własnego sub-agenta, tak aby zbierali dowody równolegle i raportowali do jednego koordynatora.
claude "Generate a SOC 2 Type II evidence package for Q4. Use a separatesub-agent per control family so they run in parallel, then merge the results:
- Sub-agent A — CC6.1: logical access controls (user reviews, RBAC, MFA)- Sub-agent B — CC6.2: system accounts (service account inventory, rotation)- Sub-agent C — CC6.6/CC6.7: boundary protection and data classification (network diagrams, data-flow/PII encryption)- Sub-agent D — CC8.1: change management (PR approvals, CI/CD logs, deployments)
Each sub-agent: describe the evidence needed, pull what is available from Githistory and CI/CD artifacts, document gaps requiring manual evidence, and rateeffectiveness with any deficiencies. The coordinator merges everything into oneauditor-ready document with an executive summary."Sub-agenci utrzymują okno kontekstowe każdej kontroli skupione na jej własnych dowodach i skracają czas rzeczywisty pracy nad pakietem, który w przeciwnym razie byłby jednym długim przebiegiem szeregowym.
Zbieranie dowodów jest długotrwałe i najlepiej obsłużyć je asynchronicznie. Zgłoś je jako zadanie w chmurze, które kompiluje pakiet i otwiera PR dodający go w compliance/evidence/, a następnie przejrzyj różnicę lokalnie.
codex cloud exec --env compliance "Generate a SOC 2 Type II evidence packagecovering CC6.1, CC6.2, CC6.6/CC6.7, and CC8.1. Pull evidence from Git history,CI/CD artifacts, and infrastructure configs. Flag gaps that require manualevidence. Write the result to compliance/evidence/soc2-q4.md and open a PR."codex apply # bring the task's diff into your working tree to reviewUruchamianie tego w chmurze oznacza, że pakiet regeneruje się w tym samym rytmie każdego kwartału bez angażowania lokalnej sesji, a wprowadzenie go jako PR poddaje same dowody kontroli zmian.
Wzorce zgodności HIPAA
Dział zatytułowany „Wzorce zgodności HIPAA”Zgodność z HIPAA wymaga konkretnych zabezpieczeń technicznych dla chronionych informacji zdrowotnych (PHI). Narzędzia AI mogą egzekwować te zabezpieczenia w kodzie.
Ochrona PHI w kodzie
Dział zatytułowany „Ochrona PHI w kodzie”// Przykład: middleware logowania dostępu do PHI wygenerowane przez AIimport { auditLogger } from '~/lib/compliance/audit';import { classifyData } from '~/lib/compliance/data-classification';
export async function phiAccessMiddleware(request: Request, next: Function) { const classification = await classifyData(request);
if (classification.containsPHI) { await auditLogger.log({ timestamp: new Date().toISOString(), userId: request.auth.userId, action: request.method, resource: request.url, dataClassification: 'PHI', justification: request.headers.get('X-Access-Justification'), ipAddress: request.headers.get('X-Forwarded-For'), }); }
return next(request);}Automatyzacja zgodności z GDPR
Dział zatytułowany „Automatyzacja zgodności z GDPR”GDPR wymaga konkretnych możliwości: obsługa żądań dostępu podmiotów danych (DSAR), prawo do usunięcia, zarządzanie zgodami i rejestry przetwarzania danych.
Automatyzacja żądań podmiotów danych
Dział zatytułowany „Automatyzacja żądań podmiotów danych”Zbuduj handler w trybie agenta i ustaw checkpoint przed zaakceptowaniem każdego adaptera magazynu danych — ścieżka usuwania jest destrukcyjna, więc chcesz przejrzeć logikę usuwania/anonimizacji w różnicy, a nie ufać jej w ciemno.
"Generate a DSAR (Data Subject Access Request) handler that:
1. Accepts a user identifier (email or user ID)2. Searches all data stores for records associated with that user: - PostgreSQL (users, orders, payments, support_tickets) - Redis cache (session data, preferences) - S3 (uploaded documents, profile images) - Analytics events (PostHog) - Email service (Resend delivery logs)3. Compiles all data into a structured JSON export4. Generates a human-readable PDF summary5. Logs the DSAR fulfillment for our processing records6. Can also handle right-to-erasure by deleting/anonymizing all records
Include proper error handling for partial failures (e.g., one data storeis unreachable). The response should indicate which sources weresuccessfully queried and which failed, so we can retry."Wygeneruj handler wraz z testami, a następnie oprzyj się na trybie headless, aby utrzymać pokrycie DSAR uczciwym w czasie — zaplanowane sprawdzenie claude -p dowodzące, że każdy magazyn danych wciąż ma adapter, samo w sobie jest dowodem na Artykuł 30 GDPR.
claude "Build a GDPR DSAR handler.
Given a user email or ID, it should:- Query all data stores (PostgreSQL, Redis, S3, analytics, email logs)- Compile user data into JSON export- Generate PDF summary for the data subject- Log the request for Article 30 processing records- Support right-to-erasure (delete/anonymize across all stores)- Handle partial failures gracefully
Create the handler, data store adapters, and the API endpoint.Include tests for the happy path and partial failure scenarios."Następnie dodaj do CI bramkę pokrycia, która oblewa się, gdy magazyn danych nie ma adaptera:
claude -p "List every persistent data store referenced in the codebase(DB connections, Redis clients, S3 buckets, external logging clients). Foreach, state whether a DSAR adapter exists. Emit JSON: { store, has_adapter }." \ --output-format json --allowedTools "Read,Grep"Handler DSAR obejmuje kilka adapterów i jest naturalnym kandydatem do asynchronicznego budowania. Zgłoś go jako zadanie w chmurze, które otwiera PR, i trzymaj prompt w repozytorium, aby praca była powtarzalna i łatwa do przejrzenia.
@codex build a GDPR DSAR handler that queries PostgreSQL, Redis, S3, andanalytics for all of a user's data. Support data export (JSON + PDF) andright-to-erasure across every store, log all requests for Article 30 records,and handle partial failures with retry. Add tests and open a PR.Wspomnienie @codex w śledzącym zgłoszeniu uruchamia zadanie w chmurze z tym zgłoszeniem jako kontekstem i wypycha handler z powrotem jako PR — więc logika usuwania przechodzi przegląd przez człowieka, zanim w ogóle będzie mogła zadziałać na danych produkcyjnych.
Automatyzacja skanowania bezpieczeństwa
Dział zatytułowany „Automatyzacja skanowania bezpieczeństwa”Ciągłe skanowanie bezpieczeństwa wychwytuje luki zanim trafią do produkcji. Kluczem jest integracja skanów w przepływy pracy, z których deweloperzy już korzystają, a nie dodawanie oddzielnych bramek bezpieczeństwa, które nauczą się omijać.
Skanowanie podatności zależności
Dział zatytułowany „Skanowanie podatności zależności”name: Compliance Security Scanon: pull_request: branches: [main] schedule: - cron: '0 6 * * 1' # Cotygodniowe skanowanie w poniedziałek
jobs: dependency-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run dependency audit run: npm audit --json > audit-results.json - name: Analyze results run: | node scripts/compliance/analyze-audit.js \ --input audit-results.json \ --severity high,critical \ --output compliance-evidence/dependency-scan-$(date +%Y%m%d).json - name: Upload compliance evidence uses: actions/upload-artifact@v4 with: name: compliance-evidence-deps path: compliance-evidence/ retention-days: 365Analiza statyczna dla zgodności
Dział zatytułowany „Analiza statyczna dla zgodności”Napisz reguły ESLint w trybie agenta i przetestuj je na prawdziwych plikach w edytorze — wklej znaną wadliwą instrukcję logowania i potwierdź, że reguła faktycznie się uruchamia, zanim zaufasz jej w CI.
"Create a static analysis configuration that checks for compliance-relevantpatterns in our codebase:
1. Data handling: PII must be logged with redaction, never raw values2. Authentication: All API endpoints must check auth before processing3. Encryption: Sensitive config values must use encrypted env vars4. Logging: Security events must use the structured audit logger5. Error handling: Error responses must not leak internal details
Use ESLint custom rules where possible. For checks ESLint cannot handle,create standalone analysis scripts. Each rule should reference thespecific compliance requirement it enforces (e.g., SOC2-CC6.1, HIPAA-164.312)."Niektóre wzorce zgodności („czy ta odpowiedź błędu ujawnia stack trace?”) są semantyczne, nie składniowe, i statyczny linter ich nie widzi. Użyj trybu headless Claude Code jako semantycznego kontrolera w CI obok ESLinta, emitując ten sam JSON oznaczony identyfikatorami kontroli.
claude "Create compliance-focused static analysis rules.
Rules needed:- PII redaction in logs (no raw email, SSN, phone in log statements)- Auth middleware on all API routes- Encrypted env vars for sensitive config- Structured audit logging for security events- No internal details in error responses
Implement as ESLint custom rules where possible, standalone scriptsfor the rest. Tag each rule with its compliance requirement ID."Dla reguł, których ESLint nie potrafi wyrazić, dodaj do zadania PR semantyczny przebieg w trybie headless:
claude -p "Review changed files for compliance violations ESLint cannot catch:error responses leaking internal details, log statements with unredacted PII,endpoints missing an auth check. Emit JSON: { control_id, file, line, issue }." \ --output-format json --allowedTools "Read,Grep"Uruchom przebieg analizy statycznej jako część Codex GitHub Action, aby każdy PR był sprawdzany w CI, a ustalenia trafiały z powrotem jako recenzja, z promptem wersjonowanym w repozytorium.
# add to .github/workflows/compliance-security.yml- uses: openai/codex-action@v1 with: prompt-file: .github/codex/prompts/compliance-lint.mdTrzymaj .github/codex/prompts/compliance-lint.md oznaczający każde ustalenie identyfikatorem wymagania (SOC2-CC6.1, HIPAA-164.312). Dla doraźnego skanu @codex review for compliance regressions w PR uruchamia te same sprawdzenia jako zadanie w chmurze.
Automatyzacja raportowania regulacyjnego
Dział zatytułowany „Automatyzacja raportowania regulacyjnego”Zaplanowane raporty zgodności
Dział zatytułowany „Zaplanowane raporty zgodności”Automatyzuj cotygodniowe i kwartalne raporty zgodności, aby dane były zawsze aktualne.
import { getGitActivity } from './sources/git';import { getCIResults } from './sources/ci';import { getSecurityScans } from './sources/security';import { getAccessReviews } from './sources/access';import { renderReport } from './templates/weekly';
async function generateWeeklyComplianceReport() { const period = { start: sevenDaysAgo(), end: now() };
const data = { gitActivity: await getGitActivity(period), ciResults: await getCIResults(period), securityScans: await getSecurityScans(period), accessReviews: await getAccessReviews(period), };
const report = renderReport({ ...data, controls: mapToControls(data), deficiencies: findDeficiencies(data), recommendations: generateRecommendations(data), });
await saveReport(report, `weekly-${period.end.toISOString()}`); await notifyComplianceTeam(report.summary);}Kiedy coś się psuje
Dział zatytułowany „Kiedy coś się psuje”Reguły zgodności generują fałszywe alarmy. Skaner sekretów oznacza fixture testowy zawierający fałszywy klucz API. Dodaj listę dozwolonych dla znanych fałszywych alarmów, ale przeglądaj ją kwartalnie, aby upewnić się, że nie rozrosła się do ukrywania prawdziwych problemów.
Ścieżka audytowa ma luki. Jeśli deweloperzy pushują bezpośrednio do main omijając proces PR, ścieżka audytowa pomija zatwierdzenia. Egzekwuj reguły ochrony gałęzi na poziomie repozytorium, nie tylko w CI. Zarówno GitHub, jak i GitLab obsługują wymaganie zatwierdzeń PR jako ustawienie repozytorium.
Handler DSAR pomija magazyn danych. Gdy dodawana jest nowa usługa, ktoś zapomina dodać ją do handlera DSAR. Dołącz „rejestr magazynów danych”, w którym wszystkie nowe usługi muszą się zarejestrować, i dodaj sprawdzenie CI weryfikujące, że każde połączenie z bazą danych w bazie kodu ma odpowiedni adapter DSAR.
Raporty zgodności odnoszą się do nieaktualnych polityk. Dokumentacja zgodności mówi, że rotujesz poświadczenia co 90 dni, ale faktyczny skrypt rotacji uruchamia się co 180 dni. Automatyzuj weryfikację polityk: generator raportów powinien sprawdzać faktyczne daty rotacji w odniesieniu do zadeklarowanej polityki i oznaczać rozbieżności.
Hooki pre-commit spowalniają deweloperów. Jeśli hooki zgodności trwają dłużej niż 5 sekund, deweloperzy będą je pomijać za pomocą --no-verify. Trzymaj sprawdzenia pre-commit szybkie (skanowanie sekretów, reguły lint) i przenieś wolniejsze sprawdzenia (pełny audyt zależności, skanowanie infrastruktury) do CI.
Wymagania regulacyjne się zmieniają. Gdy regulacja się aktualizuje (np. nowe wytyczne GDPR lub rewizje kryteriów SOC 2), twoje zakodowane polityki też muszą się zmienić. Subskrybuj kanały aktualizacji regulacyjnych i planuj kwartalne przeglądy reguł compliance-as-code w odniesieniu do aktualnych wymagań.