Start >
M365 >
Identity Governance >
Third Party Opslag Restricted
L1
BIO 16.01
ISO A.12.4.1
CIS 18.9.19.2
Third Party Opslag Restricted
π
2025-10-30
β’
β±οΈ 2 minuten lezen
β’
π΄ Must-Have
π₯ Download
π Bookmark
π€ Share
πΌ Management Samenvatting
Deze security regelen waarborgt de correcte configuratie van beveiligingsinstellingen op Windows endpoints.
Implementatie
2u (tech: 1u)
Van toepassing op:
β Windows
Deze instelling is onderdeel van de Windows security baseline en beschermt tegen bekende aanvalsvectoren door het afdwingen van veilige configuraties.
PowerShell Modules Vereist
Primary API: Graph
Connection: Connect-MgGraph
Required Modules: Microsoft.Graph.DeviceManagement
Implementatie
Dit regelen configureert third party opslag restricted via Microsoft Intune apparaat configuratie beleid of compliance policies om Windows endpoints te beveiligen volgens security best practices.
Vereisten
m365
Implementatie
Gebruik PowerShell-script third-party-opslag-restricted.ps1 (functie Invoke-Monitoring) β Monitoren.
monitoring
Gebruik PowerShell-script third-party-storage-restricted.ps1 (functie Invoke-Monitoring) β Controleren.
Gebruik PowerShell-script third-party-storage-restricted.ps1 (functie Invoke-Remediation) β Herstellen.
Compliance en Auditing
Beleid documentatie
Compliance & Frameworks
CIS M365: Control 18.9.19.2 (L1) - CIS Security Benchmark aanbevelingen
BIO: 16.01 - BIO Baseline Informatiebeveiliging Overheid - 16.01 - Gebeurtenissen logging en audittrails
ISO 27001:2022: A.12.4.1 - ISO 27001:2022 - Gebeurtenissen logging en audittrails
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).
<
.SYNOPSIS
Third-Party Storage Restricted
.DESCRIPTION
Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box)
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference = 'Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
function Invoke-Revert {
Write-Host "`nReverting configuration..." -ForegroundColor Cyan
try {
if ($WhatIf ) {
Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow
return
}
Write-Host " Configuration reverted" -ForegroundColor Green
Write-Host "`nRevert completed" -ForegroundColor Green
}
catch {
Write-Error "Error during revert: <
.SYNOPSIS
Third-Party Storage Restricted
.DESCRIPTION
Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box)
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference ='Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
$result = @{ total = $policies .Count; restricted = 0 ; allowed = 0 }
foreach ($policy in $policies ) {
$providers = $policy .AdditionalStorageProvidersAvailable
if ($providers .Count -eq 0 ) {
$result .restricted++
Write-Host " [OK] RESTRICTED: $($policy .Name)" -ForegroundColor Green
}
else {
$result .allowed++
Write-Host " [FAIL] ALLOWED: $($policy .Name)" -ForegroundColor Red
Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray
}
}
Write-Host "`n Summary:" -ForegroundColor Cyan
Write-Host " Total OWA Policies: $($result .total)" -ForegroundColor White
Write-Host " Restricted: $($result .restricted)" -ForegroundColor Green
Write-Host " Allowed: $($result .allowed)" -ForegroundColor $(if ($result .allowed -eq 0 ){'Green'}else {'Red'})
if ($result .allowed -eq 0 ) {
Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
foreach ($policy in $policies ) {
Set-OwaMailboxPolicy -Identity $policy .Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop
Write-Host " [OK] Restricted: $($policy .Name)" -ForegroundColor Green
}
Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
"
throw
}
}
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
$result = @{ total = $policies .Count; restricted = 0 ; allowed = 0 }
foreach ($policy in $policies ) {
$providers = $policy .AdditionalStorageProvidersAvailable
if ($providers .Count -eq 0 ) {
$result .restricted++
Write-Host " [OK] RESTRICTED: $($policy .Name)" -ForegroundColor Green
}
else {
$result .allowed++
Write-Host " [FAIL] ALLOWED: $($policy .Name)" -ForegroundColor Red
Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray
}
}
Write-Host "`n Summary:" -ForegroundColor Cyan
Write-Host " Total OWA Policies: $($result .total)" -ForegroundColor White
Write-Host " Restricted: $($result .restricted)" -ForegroundColor Green
Write-Host " Allowed: $($result .allowed)" -ForegroundColor $(if ($result .allowed -eq 0 ) { 'Green' }else { 'Red' })
if ($result .allowed -eq 0 ) {
Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
function Invoke-Revert {
Write-Host "`nReverting configuration..." -ForegroundColor Cyan
try {
if ($WhatIf ) {
Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow
return
}
Write-Host " Configuration reverted" -ForegroundColor Green
Write-Host "`nRevert completed" -ForegroundColor Green
}
catch {
Write-Error "Error during revert: <
.SYNOPSIS
Third-Party Storage Restricted
.DESCRIPTION
Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box)
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference ='Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
$result = @{ total = $policies .Count; restricted = 0 ; allowed = 0 }
foreach ($policy in $policies ) {
$providers = $policy .AdditionalStorageProvidersAvailable
if ($providers .Count -eq 0 ) {
$result .restricted++
Write-Host " [OK] RESTRICTED: $($policy .Name)" -ForegroundColor Green
}
else {
$result .allowed++
Write-Host " [FAIL] ALLOWED: $($policy .Name)" -ForegroundColor Red
Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray
}
}
Write-Host "`n Summary:" -ForegroundColor Cyan
Write-Host " Total OWA Policies: $($result .total)" -ForegroundColor White
Write-Host " Restricted: $($result .restricted)" -ForegroundColor Green
Write-Host " Allowed: $($result .allowed)" -ForegroundColor $(if ($result .allowed -eq 0 ){'Green'}else {'Red'})
if ($result .allowed -eq 0 ) {
Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
foreach ($policy in $policies ) {
Set-OwaMailboxPolicy -Identity $policy .Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop
Write-Host " [OK] Restricted: $($policy .Name)" -ForegroundColor Green
}
Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
"
throw
}
}
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
foreach ($policy in $policies ) {
Set-OwaMailboxPolicy -Identity $policy .Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop
Write-Host " [OK] Restricted: $($policy .Name)" -ForegroundColor Green
}
Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Revert {
Write-Host "`nReverting configuration..." -ForegroundColor Cyan
try {
if ($WhatIf ) {
Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow
return
}
Write-Host " Configuration reverted" -ForegroundColor Green
Write-Host "`nRevert completed" -ForegroundColor Green
}
catch {
Write-Error "Error during revert: <
.SYNOPSIS
Third-Party Storage Restricted
.DESCRIPTION
Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box)
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference ='Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
$result = @{ total = $policies .Count; restricted = 0 ; allowed = 0 }
foreach ($policy in $policies ) {
$providers = $policy .AdditionalStorageProvidersAvailable
if ($providers .Count -eq 0 ) {
$result .restricted++
Write-Host " [OK] RESTRICTED: $($policy .Name)" -ForegroundColor Green
}
else {
$result .allowed++
Write-Host " [FAIL] ALLOWED: $($policy .Name)" -ForegroundColor Red
Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray
}
}
Write-Host "`n Summary:" -ForegroundColor Cyan
Write-Host " Total OWA Policies: $($result .total)" -ForegroundColor White
Write-Host " Restricted: $($result .restricted)" -ForegroundColor Green
Write-Host " Allowed: $($result .allowed)" -ForegroundColor $(if ($result .allowed -eq 0 ){'Green'}else {'Red'})
if ($result .allowed -eq 0 ) {
Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policies = Get-OwaMailboxPolicy
foreach ($policy in $policies ) {
Set-OwaMailboxPolicy -Identity $policy .Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop
Write-Host " [OK] Restricted: $($policy .Name)" -ForegroundColor Green
}
Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
"
throw
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
Risico zonder implementatie
Risico zonder implementatie
High: No auth tracking.
Management Samenvatting
Schakel in audit logging.
Implementatietijd: 2 uur
FTE required: 0.01 FTE