Zero Trust by default
Każde żądanie weryfikowane. Najmniejsze niezbędne uprawnienia. Brak domyślnego zaufania nawet wewnątrz sieci.
Technologie
Wybór technologii to wybór odpowiedzialności. Każdy element stosu został wybrany, ponieważ pozwala spełnić jednocześnie wymagania regulatorów, klientów i zespołu inżynierskiego.
Każde żądanie weryfikowane. Najmniejsze niezbędne uprawnienia. Brak domyślnego zaufania nawet wewnątrz sieci.
Azure Static Web Apps, App Service, Functions, Container Apps, SQL/PostgreSQL, Front Door, Key Vault. Region: West Europe / Poland Central.
Tożsamości, role, Conditional Access, MFA, PIM/JIT. Każda aplikacja używa Entra ID, nie własnego user-table.
Soft delete + purge protection ON. RBAC over Vault Access Policy. Managed Identity dla backendów. Żadnych secrets w repo.
Application Insights, Log Analytics, Sentinel. Każda decyzja systemu jest zapisana i poznawalna w trybie post-mortem.
RODO, KNF Rekomendacja D + Z, AI Act, MDR, NIS2 — wpisane w architekturę, nie dodawane przed audytem.
Pod maską
Tak wyglądają konkretne fragmenty naszej konfiguracji — Zero Trust headers, supply chain hardening, automatyczne aktualizacje bezpieczeństwa. Nie pokazujemy slajdów, pokazujemy plik.
{
"globalHeaders": {
"Strict-Transport-Security":
"max-age=63072000; includeSubDomains; preload",
"Content-Security-Policy":
"default-src 'self'; object-src 'none'; ...",
"X-Frame-Options": "DENY",
"X-Content-Type-Options": "nosniff",
"Cross-Origin-Opener-Policy": "same-origin",
"Cross-Origin-Embedder-Policy": "require-corp",
"Permissions-Policy":
"camera=(), microphone=(), geolocation=()"
}
}name: CodeQL
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "0 4 * * 1"
jobs:
analyze:
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- uses: actions/checkout@34e1148 # v4 SHA-pinned
- uses: github/codeql-action/init@458d36d
with:
queries: security-extended,security-and-qualityversion: 2
updates:
- package-ecosystem: "npm"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
timezone: "Europe/Warsaw"
groups:
next-ecosystem:
patterns: ["next", "@next/*"]
react-ecosystem:
patterns: ["react", "react-dom"]
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]import type { NextConfig } from "next";
const nextConfig: NextConfig = {
output: "export", // static dla Azure SWA
trailingSlash: true, // canonical /o-nas/
images: { unoptimized: true },
reactStrictMode: true,
poweredByHeader: false, // brak "X-Powered-By"
};
export default nextConfig;Snippety to fragmenty produkcyjnej konfiguracji. Repozytorium grupy pozostaje prywatne — pełny audyt techniczny udostępniamy pod NDA zaufanym partnerom i audytorom branżowym.
Następny krok