Deze beveiligingscontrole waarborgt de correcte configuratie van toegangssleutels voor Azure Storage-accounts en beschermt tegen beveiligingsrisico's door periodieke rotatie van authenticatie-referenties.
Aanbeveling
IMPLEMENTEER KWARTALGEBONDEN SLEUTELROTATIE
Risico zonder
High
Risk Score
7/10
Implementatie
5u (tech: 3u)
Van toepassing op:
✓ Azure opslag
Langlevende toegangssleutels vormen een aanzienlijk beveiligingsrisico voor Azure Storage-accounts. Wanneer toegangssleutels gedurende lange perioden onveranderd blijven, wordt het compromitteringsvenster drastisch verlengd. Als een toegangssleutel wordt gelekt, gestolen of gecompromitteerd, blijft deze onbeperkt geldig totdat deze handmatig wordt gewijzigd. Dit betekent dat aanvallers onbeperkt toegang kunnen behouden tot gevoelige opslagaccounts, wat kan leiden tot ongeautoriseerde gegevenstoegang, datalekken en gegevensexfiltratie. Periodieke rotatie van toegangssleutels beperkt dit risico door de geldigheidsduur van gecompromitteerde sleutels te verkorten. Bovendien vormt periodieke rotatie een essentiële vereiste voor compliance met talrijke beveiligingsstandaarden, waaronder de CIS Azure Foundations Benchmark, BIO-normen en ISO 27001. Deze maatregel voorkomt bekende aanvalsvectoren door het afdwingen van beveiligingsbest practices en draagt bij aan een verdediging in diepte-strategie.
PowerShell Modules Vereist
Primary API: Azure API Connection:Connect-AzAccount Required Modules: Az.Accounts, Az.opslag
Implementatie
Azure Storage-toegangssleutels moeten periodiek worden geregenereerd, bij voorkeur elke 90 dagen of minimaal vier keer per jaar. Deze rotatie omvat het genereren van nieuwe sleutels voor zowel de primaire als secundaire sleutel van het opslagaccount, waarbij de nieuwe sleutels worden uitgerold naar alle toepassingen en diensten die afhankelijk zijn van deze referenties voordat de oude sleutels worden gedeactiveerd. Waar mogelijk moeten organisaties overwegen om Shared Access Signature-tokens (SAS-tokens) of beheerde identiteiten te gebruiken in plaats van toegangssleutels, aangezien deze alternatieven meer granulair toegangsbeheer bieden en het risico op compromittering verminderen. Beheerde identiteiten elimineren de noodzaak voor geheime opslag volledig, terwijl SAS-tokens kunnen worden geconfigureerd met beperkte geldigheidsperioden en specifieke toegangsrechten. Automatisering van het rotatieproces via Azure Automation of andere orchestratie-tools is sterk aanbevolen om consistentie te garanderen en menselijke fouten te voorkomen.
Vereisten
Monitoring
Gebruik PowerShell-script access-keys-periodically-regenerated.ps1 (functie Invoke-Monitoring) – Controleren.
Compliance en Toetsing
Remediatie
Gebruik PowerShell-script access-keys-periodically-regenerated.ps1 (functie Invoke-Remediation) – Herstellen.
Compliance & Frameworks
CIS M365: Control 3.3 (L2) - sleutelrotatie
BIO: 09.04 - Referentiebeheer
ISO 27001:2022: A.5.17 - Authentication
Automation
Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).
PowerShell
<#
================================================================================
AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud
================================================================================
.SYNOPSIS
Access Keys Periodically Regenerated
.DESCRIPTION
CIS Azure Foundations Benchmark - Control 3.1
Controleert of storage access keys periodiek worden geregenereerd.
.NOTES
Filename: access-keys-periodically-regenerated.ps1
Author: Nederlandse Baseline voor Veilige Cloud
Version: 1.0
CIS Control: 3.1#>#Requires -Version 5.1#Requires -Modules Az.Accounts, Az.Storage
[CmdletBinding()]
param([Parameter()][switch]$Monitoring)
$ErrorActionPreference = 'Stop'
$PolicyName = "Access Keys Periodically Regenerated"
function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } }
try {
Connect-RequiredServices
if ($Monitoring) {
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "$PolicyName" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "⚠️ Manual verification required" -ForegroundColor Yellow
Write-Host "Controleer key rotation logs en implementeer:" -ForegroundColor Gray
Write-Host " - 90-daagse key rotation policy" -ForegroundColor Gray
Write-Host " - Automatische key rotation met Key Vault" -ForegroundColor Gray
Write-Host " - Monitoring van key age" -ForegroundColor Gray
}
else {
Write-Host "`n⚠️ Manual verification: Access key rotation" -ForegroundColor Yellow
}
}
catch { Write-Error$_; exit 1 }
# ================================================================================
# Standaard Invoke-* Functions (Auto-generated)
# ================================================================================
function Invoke-Implementation {
<#
.SYNOPSIS
Implementeert de configuratie
#>
[CmdletBinding()]
param()
Invoke-Remediation
}
function Invoke-Monitoring {
<#
.SYNOPSIS
Controleert de huidige configuratie status
#>
[CmdletBinding()]
param()
$Monitoring = $truetry {
Connect-RequiredServices
if ($Monitoring) {
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "$PolicyName" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "⚠️ Manual verification required" -ForegroundColor Yellow
Write-Host "Controleer key rotation logs en implementeer:" -ForegroundColor Gray
Write-Host " - 90-daagse key rotation policy" -ForegroundColor Gray
Write-Host " - Automatische key rotation met Key Vault" -ForegroundColor Gray
Write-Host " - Monitoring van key age" -ForegroundColor Gray
}
else {
Write-Host "`n⚠️ Manual verification: Access key rotation" -ForegroundColor Yellow
}
}
catch { Write-Error$_; exit 1 }
}
function Invoke-Remediation {
<#
.SYNOPSIS
Herstelt de configuratie naar de gewenste staat
.DESCRIPTION
Dit is een monitoring-only control, remediation delegeert naar monitoring
#>
[CmdletBinding()]
param()
Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow
Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan
Invoke-Monitoring
}
Risico zonder implementatie
Risico zonder implementatie
High: Langlevende toegangssleutels voor opslagaccounts creëren een aanzienlijk beveiligingsrisico door een verlengd compromitteringsvenster. Wanneer een toegangssleutel wordt gelekt, gestolen of gecompromitteerd, blijft deze onbeperkt geldig totdat deze handmatig wordt gewijzigd. Dit betekent dat aanvallers onbeperkt toegang kunnen behouden tot gevoelige opslagaccounts, wat kan leiden tot ongeautoriseerde gegevenstoegang, datalekken en gegevensexfiltratie. Zonder periodieke rotatie van toegangssleutels voldoen organisaties niet aan compliance-vereisten voor CIS 3.3, BIO 9.04 en ISO 27001 A.5.17. Het risico is hoog vanwege de verlengde geldigheidsduur van authenticatiereferenties. Voor productieomgevingen waar opslagaccounts kritieke of gevoelige gegevens bevatten, kan het falen om toegangssleutels periodiek te roteren leiden tot ernstige beveiligingsincidenten, compliance-overtredingen en potentiële financiële en reputatieschade.
Management Samenvatting
Toegangssleutels periodiek geregenereerd: Roteer toegangssleutels voor opslagaccounts elke 90 dagen of minimaal elk kwartaal. Automatiseer het rotatieproces via Azure Automation runbooks om consistentie te garanderen en het compromitteringsvenster te beperken. Activatie vereist het configureren van Azure Automation, het ontwikkelen van rotatie-runbooks, en het instellen van geplande triggers. Deze maatregel is kosteloos in termen van Azure-services maar vereist ontwikkeltijd voor automatisering. Verplicht voor compliance met CIS 3.3, BIO 9.04 en ISO 27001 A.5.17. De implementatietijd bedraagt ongeveer drie tot vijf uur voor de initiële setup, gevolgd door periodieke rotatie-activiteiten elk kwartaal. Deze maatregel vermindert het risico op langdurige blootstelling van toegangssleutels aanzienlijk en vormt een essentieel onderdeel van een verdediging in diepte-strategie voor opslagbeveiliging.