Microsoft AZ-500: Applicatiebeveiliging en DevSecOps — Studiegids
Onderdeel van de Microsoft Azure Security Engineer Associate AZ-500 — Studiegids. Oefen met geverifieerde antwoorden in het Microsoft-examencentrum, of doe getimede oefentests op ExamRoll.io.
Overzicht
Applicatiebeveiliging en DevSecOps in Azure richten zich op het voorkomen van identiteitsmisbruik, het beveiligen van ingress en API’s, het naar links verschuiven (‘shift left’) van beveiliging in pipelines, het beveiligen van secrets at rest en in transit, en het afdwingen van robuuste release governance. Effectieve ontwerpen elimineren langlevende secrets, gebruiken het ’least privilege’-principe, valideren elke aanroeper en institutionaliseren continue detectie en herstel voor code, afhankelijkheden, infrastructuur en runtime.
Beveiligde Applicatie-identiteit, Ingress en API-bescherming
Het beveiligen van applicatie-identiteiten in Microsoft Entra ID (Azure AD) begint met een goed gescoped app-registratie en de juiste OAuth 2.0-flow:
- Gedelegeerde permissies (delegated permissions) zijn van toepassing wanneer een gebruiker is ingelogd en consent kan worden beperkt tot alleen geverifieerde publisher-apps of door de beheerder goedgekeurde scopes. Applicatiepermissies (app-only) vereisen altijd toestemming van de beheerder omdat ze achtergrondprocessen (daemons) of services autoriseren die zonder gebruiker opereren.
- Dwing ’least privilege’ af door alleen de minimaal benodigde scopes of applicatierollen toe te kennen en een review door de beheerder te vereisen voor consent-verzoeken. Schakel consent door eindgebruikers uit of sta het alleen toe voor geverifieerde publishers met een laag risico om ‘consent phishing’ te verminderen.
- Geef de voorkeur aan certificaat-credentials of gefedereerde identiteiten boven client secrets. Certificaten bieden een sterkere zekerheid en voorspelbare rotatie. Configureer korte levensduren en automatiseer de rotatie. Blokkeer public client flows, tenzij deze nodig zijn.
- Gebruik voor Azure-services managed identities in plaats van app secrets. Wijs data-plane rollen toe zoals Key Vault Secrets User of Storage Blob Data Reader, en beperk de netwerktoegang met Private Endpoints waar van toepassing.
Application Gateway WAF v2 en Azure Front Door WAF beschermen publieke ingress tegen OWASP Top 10-dreigingen:
- Activeer de nieuwste door Microsoft beheerde OWASP Core Rule Set en draai deze na tuning in de Prevention-modus. Gebruik in het begin ‘anomaly scoring’ om false positives tijdens de leerfase te verminderen.
- Configureer custom rules voor geofencing, IP-reputatieblokkades, header-validatie en limieten voor de request-grootte. Voeg voor Front Door rate-limit-regels per client-IP toe om credential stuffing en eenvoudige L7 DoS-aanvallen af te zwakken.
- Beëindig TLS met sterke cipher suites en policies; gebruik end-to-end TLS naar de origin. Configureer voor scenario’s die mTLS vereisen, validatie van clientcertificaten op Application Gateway listeners.
- Koppel WAF-policies nauwkeurig aan listeners/routes; gebruik uitsluitingen van regels alleen als u de false positive volledig begrijpt. Stream WAF-logs naar Log Analytics voor detection engineering en incident response.
API Management (APIM) dwingt een gelaagde beveiligingshouding (multilayer security posture) af:
- Valideer OAuth-tokens bij de gateway met strikte controles op issuer, audience en scope. Vereis overal HTTPS en dwing mTLS af wanneer de ‘client trust boundary’ dit vereist.
- Combineer subscription keys met OAuth voor ‘defense-in-depth’ en voor het throttlen van identiteiten. Gebruik subscription keys op productniveau om consumenten te partitioneren en roteer sleutels zonder anderen te verstoren.
- Pas rate limiting en quota’s toe met granulariteit per consument, per scope of per subscriptie. Gebruik IP-filtering om partnernetwerken te whitelisten wanneer dat gepast is.
- Beveilig backend-services met mutual TLS of managed identities. Sla secrets op als Named Values die verwijzen naar Key Vault om platte tekst in de configuratie te vermijden.
Voorbeeld van een APIM-policy voor het afdwingen van JWT-scopes en throttling:
<policies>
<inbound>
<base />
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" require-scheme="Bearer">
<openid-config url="https://login.microsoftonline.com/<tenant>/v2.0/.well-known/openid-configuration" />
<audiences>
<audience>api://your-api-app-id</audience>
</audiences>
<required-claims>
<claim name="scp">
<value>read.items</value>
</claim>
</required-claims>
</validate-jwt>
<rate-limit-by-key calls="100" renewal-period="60" counter-key="@(context.Subscription?.Key ?? context.Request.IpAddress)" />
</inbound>
<backend><base /></backend>
<outbound><base /></outbound>
<on-error><base /></on-error>
</policies>
DevSecOps Pipeline Hardening en Defender for DevOps
Azure DevOps en GitHub Actions moeten authenticeren bij Azure zonder langlevende secrets:
- Gebruik workload identity federation (OIDC) voor service connections. Maak een app-registratie/service principal aan in Entra ID en voeg vervolgens een gefedereerde credential toe die de repo, branch en workflow/omgeving aan de identiteit koppelt. Dit levert kortlevende tokens op zonder opgeslagen secrets en ondersteunt scoping via ’least privilege’ met Azure RBAC.
- Vergrendel pipeline-permissies: vereis goedkeuringen voor het gebruik van service connections, beperk de pipeline tot beveiligde branches en schakel “Allow scripts to access OAuth token” uit, tenzij nodig. Gebruik variabelegroepen en secrets met masking; sta het weergeven van secrets via logging-commando’s niet toe. Geef in GitHub de voorkeur aan environment- en organization-secrets boven repo-secrets voor gecentraliseerd beheer en gebruik waar van toepassing de “prevent secrets in logs”-instellingen in hosted runners.
- Pas ’environment protection rules’ toe: verplichte reviewers, controles (bijv. change management tickets, geslaagde tests) en op tijd gebaseerde goedkeuringen.
Maak een gefedereerde credential aan met Azure CLI (GitHub OIDC-voorbeeld):
az ad app federated-credential create \
--id <app-object-id> \
--parameters '{
"name":"github-oidc-main",
"issuer":"https://token.actions.githubusercontent.com",
"subject":"repo:org/repo:ref:refs/heads/main",
"audiences":["api://AzureADTokenExchange"]
}'
Microsoft Defender for DevOps integreert met Azure Repos en GitHub om het volgende zichtbaar te maken:
- Bevindingen van codebeveiliging (SAST) in gangbare talen; annotaties in pull requests markeren nieuwe problemen om regressies te voorkomen.
- Afhankelijkheidsrisico’s (SCA) met behulp van ‘vulnerability intelligence’ voor OSS-bibliotheken, met hersteladvies en versies met fixes.
- Detectie van blootgestelde secrets en aanbevolen rotaties voor gelekte tokens/sleutels.
- Foutconfiguraties in Infrastructure-as-Code voor ARM/Bicep/Terraform (bijv. publieke opslag, permissieve NSG’s) met beleidsgestuurde governance en ‘drift tracking’. Bevindingen worden verzameld in Defender for Cloud met repository- en pipeline-context voor prioritering. Blokkeer releases (‘gate releases’) op basis van drempelwaarden voor de ernst om onveilige implementaties te stoppen.
Secretsbeheer en Platformintegratie
Key Vault biedt gecentraliseerd beheer van secrets, sleutels en certificaten met uitgebreide controles:
- Dwing purge protection en soft delete af om destructief verlies te voorkomen. Geef de voorkeur aan RBAC boven access policies voor geünificeerde autorisatie; schakel Private Endpoints in en schakel publieke netwerktoegang uit waar mogelijk; schakel logging in naar een beveiligde workspace.
- App Service en Functions gebruiken Key Vault-referenties in app-instellingen met managed identities; roteer secrets transparant zonder herimplementatie.
- AKS haalt secrets op tijdens runtime via de Secrets Store CSI Driver met de Azure Key Vault provider, geauthenticeerd door Azure AD Workload Identity (aanbevolen). Vermijd het plaatsen van plaintext secrets in Kubernetes Secret-objecten.
Voorbeeld van een App Service Key Vault-referentie:
Name: DbConn
Value: @Microsoft.KeyVault(SecretUri=https://kv-prod.vault.azure.net/secrets/DbConnString/23a1...)
AKS SecretProviderClass (ingekort):
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: kv-secrets
spec:
provider: azure
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "false"
useWorkloadIdentity: "true"
keyvaultName: kv-prod
tenantId: <tenant-id>
objects: |
array:
- |
objectName: api-key
objectType: secret
Pipelines moeten secrets ophalen tijdens de runtime van een job:
- Azure DevOps: Key Vault-taak met een service connection die gebruikmaakt van een managed identity; beperk het downloaden van secrets tot het minimaal benodigde aantal stages.
- GitHub Actions: azure/login voor OIDC en azure/keyvault om alleen de benodigde namen op te halen.
Secure SDLC, Containers, Logging en Releases
Praktijken voor een Secure SDLC verminderen risico’s vóór de deployment:
- Vroegtijdige threat modeling met STRIDE of een equivalent zorgt ervoor dat authenticatie, autorisatie en datastromen expliciet worden gevalideerd. Werk modellen bij naarmate de architectuur evolueert.
- Voer SAST uit bij elke PR; breek builds af bij problemen met een hoge prioriteit en een duidelijke eigenaar. Voer DAST uit na de deployment naar een staging-slot/omgeving met veilige testdata.
- SCA monitort continu packages; dwingt vaste versies en licentieconformiteit af.
- Strikte code review met branch-beleid: verplichte reviewers, gekoppelde werkitems, build-validatie en ondertekende commits.
Beveiliging van container-images is fundamenteel voor de integriteit van de supply chain:
- Genereer en bewaar SBOMs (SPDX of CycloneDX) tijdens builds, publiceer ze naast de images als OCI-artefacten voor traceerbaarheid.
- Scan images vóór het pushen en at-rest in registries met de container-scanning van Defender for Cloud; blokkeer promotie bij kritieke bevindingen.
- Onderteken images en attestations met Notary v2/OCI-artefacten via cosign. Dwing handtekeningverificatie af bij admission (bijv. met Gatekeeper/OPA of AKS Policy voor Kubernetes).
- Registry-controles in Azure Container Registry (ACR): schakel de admin-gebruiker uit, beperk netwerktoegang via Private Endpoints, activeer door de klant beheerde sleutels, gebruik repository-scoped tokens voor fijngranulaire toegang en pas retentie- en quarantainepatronen toe. Ken alleen AcrPull toe aan runtimes en AcrPush aan CI. Voor AKS, koppel ACR met het ondersteunde commando om de juiste toewijzing te creëren in plaats van handmatige rolconfiguratie.
- Als containers VNet-service-eindpunten moeten gebruiken vanaf een VM-host, installeer dan een ondersteunde CNI-plugin zodat het verkeer per container afkomstig is van het subnet.
Applicatielogging mag geen secrets of PII lekken:
- Configureer Application Insights om gevoelige velden te redigeren of te verwijderen met Telemetry Processors; vermijd het loggen van ruwe headers, tokens of payloads die secrets of PII bevatten. Beperk datavelden tot wat zakelijk noodzakelijk is en schakel sampling in om blootstelling te verminderen.
- Stuur diagnostische gegevens naar een toegewezen Log Analytics-workspace met strikte RBAC (Log Analytics Reader als ’least privilege’) en onveranderlijke opslag bij export naar Storage (op tijd gebaseerde retentielocks).
- Beveilig telemetrie-ingestie en query-eindpunten met Private Link waar beschikbaar. Sla instrumentatie-connection-strings op in Key Vault en roteer ze regelmatig.
Veilige release-praktijken dwingen gecontroleerde promotie af:
- Goedkeuringsgates in Azure DevOps Environments of GitHub Environments vereisen aangewezen reviewers, het slagen voor kwaliteitscontroles en change tickets. Automatiseer hold-back windows voor implementaties met een hoog risico.
- Pas ’least privilege’ toe op service connections en agents; scope deze per omgeving tot resourcegroepen of abonnementen. Gebruik managed identities met nauwkeurig afgebakende rollen.
- Zorg voor omgevingsscheiding tussen Dev, Test en Prod met aparte abonnementen, VNets, Key Vaults en ACRs; sta geen laterale verplaatsing tussen omgevingen toe en gebruik in elke omgeving andere secrets/sleutels.
Praktijkscenario
Fabrikam, Inc. publiceert een multi-tenant SaaS API op het internet. Vereisten: blokkeer OWASP Top 10-aanvallen, valideer OAuth-scopes per operatie, voorkom secrets in repo’s, throttle misbruik makende clients en zorg ervoor dat alleen ondertekende container-images in productie draaien.
- Fronting en WAF
- Implementeer Azure Front Door Standard met een WAF-beleid dat de nieuwste OWASP managed rule set in preventiemodus gebruikt, plus aangepaste rate-limit-regels en geo-blocking. Rationale: gecentraliseerde, wereldwijde edge-handhaving verkleint het aanvalsoppervlak en absorbeert L7-aanvallen voordat ze de origin bereiken.
- API Gateway-beleid
- Plaats Azure API Management achter Front Door; implementeer validate-jwt met issuer/audience/scope-controles per operatie en abonnementsleutels op productniveau met quota’s. Rationale: APIM biedt identiteitsbewuste handhaving en tenant-isolatie; sleutels plus OAuth bieden een gelaagde verdediging en precieze throttling.
- Identiteit en Toestemming
- Registreer de SPA- en daemon-apps in Entra ID met gedelegeerde scopes voor user flows en applicatierollen voor de daemon; beperk gebruikerstoestemming tot geverifieerde uitgevers en vereis admin-toestemming voor app-permissies. Gebruik certificaat-credentials voor de daemon. Rationale: elimineert zwakke secrets, dwingt ’least privilege’ af en vermindert de blootstelling aan consent-phishing.
- DevSecOps met OIDC
- Configureer GitHub Actions om OIDC-federatie te gebruiken naar een Azure service principal die gescoped is naar een niet-productieabonnement voor de build en naar een productie-gescopede principal voor de release, elk met minimale rollen (AcrPush voor de build, Contributor beperkt tot een prod RG voor de release). Rationale: geen opgeslagen secrets; de blast radius is per omgeving geminimaliseerd.
- Container Supply Chain
- Bouw images via ACR Tasks, genereer SBOMs (CycloneDX) en onderteken images met cosign; sla attestations op als OCI-artefacten. Configureer AKS admission met een beleid dat geldige handtekeningen vereist. Rationale: herkomst en integriteit zijn verifieerbaar op het moment van deployment, wat gemanipuleerde images blokkeert.
- Registry- en Runtime-controles
- Schakel de ACR admin-gebruiker uit, activeer Private Endpoint, wijs AcrPull toe aan de AKS kubelet-identity via de ondersteunde attach-acr-flow, en schakel de image-scanning van Defender for Cloud in. Rationale: netwerk- en identiteitsverharding verwijderen standaard backdoors; scanning detecteert bekende CVE’s vóór runtime.
- Secrets en Configuratie
- Gebruik Key Vault met Private Endpoint en RBAC; App Service en Functions gebruiken Key Vault-referenties, en AKS gebruikt de Secret Store CSI met Workload Identity. Rationale: secrets staan nooit in repo’s of app-configuraties; rotatie is gecentraliseerd en auditeerbaar.
- Release Governance
- Beveilig de main branch van GitHub met verplichte reviews en controles; vereis omgevingsgoedkeuringen en het passeren van security-gates (geen kritieke SAST/SCA/IaC-bevindingen) vóór een productie-deployment. Rationale: zorgt ervoor dat alleen gevalideerde, veilige builds doorgaan; menselijk toezicht blijft bestaan voor wijzigingen met een hoog risico.
- Observability-hygiëne
- Configureer Application Insights om PII te redigeren met aangepaste Telemetry Processors en stuur WAF/APIM-diagnostische gegevens naar een beveiligde Log Analytics-workspace met Reader-toegang die minimale rechten heeft. Rationale: behoudt forensische waarde zonder gevoelige data bloot te stellen; toegang is auditeerbaar en beperkt.
← Microsoft Sentinel en security-operaties · Alle domeinen · Hybride en multi-cloudbeveiliging →
Oefen deze vragen → · Getimede oefening op ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Slaag voor je examen →