Hoofdinhoud

Deze pagina beschrijft aansluitvoorwaarden voor het bouwen, uitrollen en beheren van Cloud Native applicaties op het Logius Standaard Platform.

Versiegegevens

Ingangsdatum: 1 juli 2024

Inleiding

Logius beheert het Standaard Platform: een kant-en-klaar containerplatform voor het bouwen, uitrollen, draaien en beheren van CloudNative applicaties binnen de Rijksoverheid.

Als klant rol je je applicaties en datastores uit op het Standaard Platform. Je maakt daarbij gebruik van je eigen componenten, en beheert deze zelf in Test en Productie. De aansluitvoorwaarden daarvoor zijn uitgewerkt op deze pagina.

Het Standaard Platform ("platform") omvat de volgende standaard dienstverlening (informele opsomming, voor formele beschrijving raadpleeg servicemanagement via het algemeen contactformulier):

Alle diensten zijn "multi-tenant" ingeregeld, tenzij anders aangegeven.

Dienst toegang, zodat je als klant:

  • Beveiligd kan inloggen op alle platform-netwerken en diensten
  • Geautoriseerd gebruik kan maken van alle diensten

Dienst CI/CD zodat je als klant:

  • Broncode, secrets, documentatie en build pipelines kan onderhouden
  • Applicatie images geautomatiseerd kan bouwen naar een image registry
  • Applicatie images geautomatiseerd kan uitrollen naar Kubernetes

Dienst Image Registry, zodat je als klant:

  • Applicatie images en Helm Charts geautomatiseerd kan opslaan
  • Applicatie images geautomatiseerd kan controleren op kwetsbaarheden ("Common Vulnerability Exposures", CVEs)
  • Applicatie images uit publieke registries kan "proxiën" en "cachen", zodat applicaties onafhankelijk kunnen draaien van derden

Dienst Artefact Manager, zodat je als klant:

  • (Java) software artefacten kan opslaan, zodat deze in build pipelines herbruikbaar zijn
  • Artefacten uit publieke repositories kan "proxiën" en "cachen", zodat build pipelines onfhankelijk kunnen draaien van derden

Dienst OTAP-omgeving, zodat je als klant:

  • Applicaties geïsoleerd kan draaien in Kubernetes namespaces
  • Applicaties geïsoleerd kan beheren (kubectl of interactief dashboard)

Dienst Versleuteling, zodat je als klant:

  • Private keys, wachtwoorden, etcetera op veilige wijze in CI/CD kan opslaan, en van daaruit geautomatiseerd kan uitrollen
  • Domain Validated (DV) certificaten geautomatiseerd kan aanvragen en uitrollen (voorbeeld: Let’s Encrypt)
  • SSL kunt aanzetten op hostname/uitgerolde certificaten
  • Let op: Organization Validated (OV) certificaten dien je zelf aan te vragen bij je eigen Trust Service Provider (TSP)

Dienst Technische Logging, zodat je als klant:

  • Logdata eenduidig naar "standard out" kan wegschrijven
  • Logdata centraal kan raadplegen
  • Alerts kan zetten op logdata
  • Voor dit type van logging voldoet aan de standaard bewaartermijnen van NORA en BIO (minimaal 7 dagen Test, minimaal 30 dagen Productie)

Dienst Monitoring, zodat je als klant:

  • Standaard metrics centraal kan raadplegen, zoals bijvoorbeeld: CPU-, RAM- en storage-gebruik
  • Eigen metrics kan ontsluiten en eveneens centraal kan raadplegen
  • Alerts kan zetten op metrics.

Dienst Storage, zodat je als klant:

  • Data kan wegschrijven op persistente data volumes

Dienst Backup en Restore, zodat je als klant:

  • Persistente data volumes kan annoteren voor dagelijkse backup in ander datacenter
  • Deze dienst is alleen van toepassing op niet-transactionele data

Dienst Netwerkverkeer, zodat je als klant:

  • Je applicatie binnen het interne netwerk van het platform, of op een extern netwerk kan ontsluiten (Internet, Rijksweb, Diginetwerk)
  • Kan vertrouwen op de aanwezigheid van Internet Service Provider (ISP), DNS (alleen interne platform netwerk), anti-DDoS, routers, gateways, firewalls, load balancers (L4), en ingress controllers (L7, reverse proxy)
  • Kan uitgaan van "deny by default" (voor je applicatie geldt standaard geen toestemming voor ingaand en uitgaand netwerkverkeer, er is geen toegang middels ssh, etc.)
  • Je hostnames aan de allow-list kan toevoegen
  • HTTP-verkeer geautomatiseerd verder kunt fine-tunen
  • Je applicaties multi datacenter kan draaien

Dienst Support, zodat je als klant:

  • Architecturaal wordt ondersteund bij aanvang, realisatie en implementatie
  • Als DevOps team welkom wordt geheten door standaard onboarding en interactieve toelichting
  • Gebruik kan maken van uitgebreide documentatie
  • Gebruik kan maken van voorbeeldapplicaties/patronen (deze zijn indicatief, zonder formele support afspraak)
  • Tijdens kantooruren vragen kan stellen in een online chatbox
  • Formele wijzigingsverzoeken kunt doen in een ticketing systeem
  • Hackathons kan aanvragen, indien gewenst, voor speciale onderwerpen; zoals hoge beschikbaarheid, multi-datacenter, performance test, etc.
  • 7x24 ondersteuning hebt voor P1-incidenten
  • Best-effort support krijgt op het gebruik van applicatie- en database componenten
  • In bovenstaande kanalen up-to-date wordt gehouden over platform lifecyclemanagenent, gepland onderhoud, storingen, etc.
  • Gelegenheid hebt om samen met Logius en de andere platform gebruikers de inzet van container technologie en Cloud Native applicaties binnen de Nederlandse overheid te bevorderen

Als Logius willen we zoveel mogelijk aansturen op self-service, dit wordt continu verbeterd.

Buiten scope:

  • Als Logius zijn we niet verantwoordelijk voor de bouw- en exploitatie van klantapplicaties op SP; m.a.w.
  • Als Logius bouwen we geen klantapplicaties op SP, en beheren we deze ook niet

Aansluitvoorwaarden

Bouwen, uitrollen, beheren, en beveiligen:

Bouwen

Als klant:

Voorwaarde Omschrijving
AV‑001 Je bezit aantoonbare kennis van containertechnologie, containerorkestratie en Cloud Native (CNCF)
Zodat het realisatietraject efficiënt kan worden gestart. Als Logius leiden we je niet op in Docker, Kubernetes etc.
AV‑002 Je streeft naar de principes van "The Twelve Factor App"
Zodat applicaties passen binnen de concepten van Cloud Native, zoals horizontale schaalbaarheid, stateless draaien, hoge beschikbaarheid, veerkracht etc.
AV‑003 Je ontwikkelt applicaties in de CI/CD omgeving van het platform
Zodat deze geautomatiseerd kunnen worden uitgerold en beheerd. Broncode kan optioneel worden gesynchroniseerd van/naar publieke Git repo's.
AV‑004 Je bouwt applicatie-images middels rootless-tooling
Zodat de CI/CD omgeving van het platform veilig blijft.
AV‑005 Je bouwt applicatie-images die zelf ook rootless zijn
Zodat de Test en Prod omgevingen van het platform veilig blijven.
AV‑006 Je bouwt applicatie-images conform OCI
Zodat deze geautomatiseerd kunnen worden opgeslagen, uitgerold en beheerd.
AV‑007 Je bouwt applicatie-images die op Kubernetes worker nodes met Linux kunnen draaien
Windows en MacOS nodes worden vooralsnog niet ondersteund. Dit laat in het midden op welke technologie en OS de Docker image zelf gebaseerd is.
AV‑008 Je pusht applicatie-images naar de image registry van het platform
Zodat deze van daaruit automatisch kunnen worden uitgerold.
AV‑009 Je overweegt publieke images te betrekken via de image registry van het platform
Zodat geen continue afhankelijkheid op derde partijen, en je de images geautomatiseerd kunt scannen op kwetsbaarheden (CVEs).
AV‑010 Je draagt zorgt voor up-to-date applicatie-images
Inclusief het zo snel mogelijk doorvoeren van security patches, zodat de images veilig blijven.
AV‑011 Je maakt op standaard wijze gebruik van de platform faciliteiten
Zodat Logius de "cloud-agnosticiteit" van het platform kan waarborgen.
AV‑012 Je volgt de algemene richtlijnen van de Rijksoverheid
Zoals bijvoorbeeld website-richtlijnen en forum standaardisatie; zie referenties onderaan.
AV-013 Je zorgt voor veerkracht in het gebruik van SP APIs 
Zodat tijdelijke onbeschikbaarheid van bijvoorbeeld GitLab-, Harbor-, Elastic API etc. applicatief wordt afgevangen
AV-014 Je streeft naar kleine container images
Zodat je die images probleemloos kunt pushen naar de image registry; zodat je pods snel kunnen starten.
(Advies: houd de image grootte bij voorkeur onder de 250 MiB, in elk geval onder de 1 GiB.)

Uitrollen

Voorwaarde Omschrijving
AV‑101 Je rolt applicaties op geautomatiseerde wijze uit
Zodat handmatig beheer wordt voorkomen. Handmatige interventie is wel toegestaan, maar dient daarna alsnog te worden geautomatiseed.
AV‑102 Je houdt een strikte scheiding aan tussen Test en Productie
Zodat netwerkscheiding kan worden gehandhaafd.
AV‑103 Je draagt zorg voor veilige uitrol van secrets
Zodat wachtwoorden, private keys etc. niet als "plain text" in Git repo's zijn terug te vinden.
AV‑104 Je draagt zorg voor geautomatiseerde unit- en integratietests
Zodat applicaties aantoonbaar goed kunnen functioneren. Logius is niet verantwoordelijk voor de applicaties van de klant.
AV‑105 Je draagt zorg voor je eigen externe DNS
Dit betreft de externe netwerken (Internet, Rijksweb, Diginetwerk); voor het interne platform-netwerk voorziet Logius in een standaard aanwezige DNS.
AV‑106 Je volgt de domeinnaam richtlijnen van de Rijksoverheid
Zie referentie onderaan; controleer tenaamstelling op https://www.sidn.nl/whois (“Rijksoverheid” als “Houder” en “Registrar”); controleer website en mail op internet.nl.
AV‑107 Je draagt zorg voor images die door de operators van SP worden uitgerold
Alleen van toepassing indien je gebruik maakt van operators. SP blijft verantwoordelijk voor de operators zelf, en het beschikbaar stellen van eventuele default images.

Beheren

Voorwaarde Omschrijving
AV‑201 Je voert zelf beheer in centraal logmanagement
Logius is niet verantwoordelijk voor de logging van de klant.
AV‑202 Je voert zelf beheer in centraal monitoring-management
Logius is niet verantwoordelijk voor de monitoring van de klant.
AV‑203 Je voert zelf beheer over data volumes die mee moeten draaien met automatische backup
Alleen niet-transactionele (backup) volumes. Overweeg zelf eigen (transactionele) backups voor betere RPO.
AV‑204 Je applicaties loggen naar stdout of stderr
Zodat deze automatisch naar centraal logmanagement wordt verstuurd, met standaard retentie. Optioneel: naar bestand in eigen volume, met eigen retentie, komt niet in centraal logmanagement.
AV‑205 Je draagt zorg voor adequaat resourcegebruik
Zodat onnodige verspilling van RAM, CPU en storage wordt voorkomen. Advies: maak gebruik van Pod-autoscaling.
AV‑206 Je voert zelf periodieke backup en restore tests uit
Zodat de werking aantoonbaar in orde is. Logius is niet verantwoordelijk voor de backups van de klant.
AV‑207 Je voert zelf periodieke performance tests uit
Zodat de kengetallen van de applicatie aantoonbaar werkend zijn.
AV‑208 Je meldt een performance test tijdig vantevoren aan bij Logius
Zodat bijvoorbeeld rekening kan worden gehouden met het toevoegen van client-IP's aan allow-lists.
AV‑209 Je houdt rekening met (gepland) platform-onderhoud overdag
Zodat dit voor Logius beheersbaar blijft. Als je geen downtime accepteert, dien je je applicatie hoog-beschikbaar uit te rollen met meerdere Kubernetes replica's, eventeel aangevuld met Pod Disruption Budgets (PDBs).
AV-210  Je valideert wijzingen van SP in Test, voordat deze door SP worden uitgerold naar Prod (beide conform onderhoudskalender SP)
Zodat je applicatie met deze changes integraal getest wordt, en verrassingen in Prod voorkomen worden.

Beveiligen

Voorwaarde Omschrijving
AV‑301 Je draagt, indien van toepassing, zorg voor de juiste mail records op je DNS en het ordentelijk versturen van mail
Zodat o.a. mail veilig kan worden verstuurd, en waarmee voorkomen wordt dat de platform mail-relay op deny-lists terecht komt.
AV‑302 Je bent zelf verantwoordelijk voor ordentelijke aan- en afmelding van je medewerkers (IDU-proces)
Zodat DevOps gebruikers alleen indien gerechtigd toegang tot het platform krijgen.
AV‑303 Je bent zelf verantwoordelijk voor ordentelijke aan- en afmelding van gebruikersrollen
Zodat DevOps gebruikers de juiste, "least-privilege" rechten krijgen op het platform (conform platform rollenmodel).
AV‑304 Je applicaties voldoen aan de Baseline Informatiebeveiliging Overheid (BIO) en draagt zorg voor een In Control Verklaring (ICV).
Logius is niet verantwoordelijk voor BIO en ICV van de klant.
AV‑305 Je applicaties voldoen aan de Algemene Verordening Gegegevensbescherming (AVG)
Logius is niet verantwoordelijk voor de AVG van de klant.
AV‑306 Je voert, indien van toepassing, periodiek een Data Protection Impact Assessment (DPIA) uit
Logius is niet verantwoordelijk voor de DPIA van de klant.
AV‑307 Je voert, indien van toepassing, periodiek een security audit of Pentest uit
Indien je kwetsbaarheden ontdekt in het platform, dan meld je deze aan Logius.
AV‑308 Je meldt een Pentest vantevoren aan bij Logius
Zodat bijvoorbeeld rekening kan worden gehouden met verdacht gedrag.
AV‑309 Je voert beleid op veilige broncode en (draaiende) container images
Zoals: comply-or-explain op image CVEs (self-service), statische code-analyse (SAST), OWASP-maatregelen (via WAF), het voorkomen van Supply Chain Attacks...
AV‑310 Je voert beleid op draaiende applicatiess
Zoals: anti-virus scanning op ge-uploade bestanden, malware checks/dynamische code-analyse (DAST).
AV‑311 Je volgt publieke security richtlijnen en bulletins
Zoals: CIS, NCSC, ...
AV‑312 Je applicaties voldoen aan overige vigerende wet- en regelgeving
Naast BIO, en AVG, zie onder andere ook VIR, VIR-BI, BVR, en referenties onderaan.
AV‑313 Je applicaties en de werkstations van je DevOps teams voldoen aan “best practices” op het gebied van beveiliging
Denk aan het versleutelen van laptops, het wijzigen van standaard admin passwords, password-rotation, etc.
AV‑314 Je hebt een functionaris aan wie je verantwoording aflegt over je beveiliging
Denk hierbij aan een CISO, IB-er, of externe auditor.
AV-315 Je bent zelf verantwoordelijk voor de veiligheid van je applicatie, inclusief (productie)data

Naleving

Voorwaarde Omschrijving
AV‑401 Je conformeert je aan het principe van "wie uitrolt, die beheert"
Zodat je zelf belang hebt bij kwalitatief goede software. Je bent zelf expert in je gebruikte componenten. Logius is niet verantwoordelijk voor de applicaties van de klant.
AV‑402 Je conformeert je aan de doorontwikkeling en lifecyclemanagement van het platform
Zodat Logius het platform zelf ook up-to-date kan houden (patches, upgrades, migraties). Houd ook rekening met de doorontwikkeling van Kubernetes (beta) APIs en operators. Denk bijvoorbeeld aan de upgrade van jouw database nadat SP de database operator upgradet.
AV‑403 Je conformeert je in geval van risicovol malfunctioneren of beveiligingsincident aan het (tijdelijk) afsluiten van je applicatie, zonder aankondiging vooraf door Logius
Zodat o.a. de veiligheid gegarandeerd blijft voor de andere klanten op het platform. Voorbeeld: gecompromitteerde containers met uitbraak naar kernel.
AV‑404 Je bent zelf verantwoordelijk voor het juiste gebruik en de borging van (open source) licenties en intellectueel eigendom van je applicatie.
En respecteert licenties van (open source) componenten van derden die je in je applicatie gebruikt.
AV‑405 Je houdt rekening met het eventueel verhuizen van je workloads naar een ander cluster (uitzondering, in overleg).
Zodat Logius een maximaal aantal worker nodes per cluster kan aanhouden en een monoliet wordt voorkomen.
AV‑406 Je voldoet aan de door Logius bekendgemaakte (technische) eisen en voorgeschreven beveiligingsmiddelen/-maatregelen
En houdt rekening met wijzigingen die binnen een redelijke termijn dienen te worden doorgevoerd (bij ingrijpende wijzigingen max. 3 maanden).
AV‑407 Je draagt zorg voor acceptabel gebruik van het platform door jezelf, je medewerkers en je derde partijen
Zoals onder andere NIET: ongeoorloofde toegang verlenen, onderscheppen van informatie, achterhouden van informatie, malware plaatsen, debug-logging aan laten staan, grote data volumes (PVCs) onnodig backuppen, onnodige hoeveelheid pipeline jobs of cronjobs, analytics t.b.v. advertentiedoeleinden, wraakacties, gokactiviteiten, aanstootgevende inhoud, uitlokken van overbelasting of DDoS en alle overige onwettige handelingen.

Vrijwaring

Voorwaarde Omschrijving
AV‑501 Je vrijwaart Logius tegen iedere aansprakelijkheid als gevolg van het gebruik van het platform
In bijzonder bij het niet naleven van deze aansluitvoorwaarden.

Referenties