#datasatpn
February 27th, 2021
Data Saturday #1
Securing a full-PaaS architecture
Marco Obinu - @OmegaMadLab
Marco Obinu
• Advisory Engineer @
• Geek to the 🦴😁
• 💘Azure and SQL Server
ABOUTME.OMEGAMADLAB.COM
Why PaaS?
IaaS
MANAGED
BY
VENDOR
APPLICATION
HYPERVISOR
OS
RUNTIME
DATA
STORAGE
NETWORK
YOU
MANAGE
SERVERS
MANAGED
BY
VENDOR
APPLICATION
HYPERVISOR
OS
RUNTIME
DATA
STORAGE
NETWORK
PaaS
YOU
MANAGE
SERVERS
LESS
DUTIES
Why PaaS?
LESS
DUTIES
EASIER
TO SIZE
Azure Storage
(remote storage)
Virtualization host
OsDisk DataDisk DataDisk
VM
VM NIC vSwitch Host
NIC
BlobCache (local storage)
TempDisk
RAM cache
SSD cache
CACHED
THROUGHPUT UNCACHEDTHROUGHPUT
Standard HDD
Standard SSD
Premium SSD
Ultra disks
Why PaaS?
Less
duties
Easier
to size
Built-
in HA
SQL CLUSTER IP
SQL CLUSTER IP
PREMIUM FILE SHARE
S2D
STORAGE REPLICATION
SQL CLUSTER IP
DATABASE REPLICATION
LISTENER
Why PaaS?
LESS
DUTIES
EASIER
TO SIZE
BUILT-IN
HA
SCALABLE
Why PaaS?
LESS
DUTIES
EASIER
TO SIZE
BUILT-IN
HA
SCALABLE
COOL
FEATURES
Why PaaS?
LESS
DUTIES
EASIER TO
SIZE
BUILT-IN
HA
SCALABLE
COOL
FEATURES
ADOPTION
SPEED
Any risk?
Less control over the infrastructure
Who did what?
Usually outside of your network boundaries
• Can be an issue with security policies
• What about data exfiltration?
How to mitigate?
Enforce authentication and authorization
Protect your data at rest, in transit, in use
Secure your network
How to mitigate?
IT Team
• Define guidelines
• Enforce rules
• Monitor the environment
Dev Team
• Don't be shy with the architecture
• Follow the best practices
A real-world scenario
Users WebApp
Azure SQL DB
ADF
Blob
Console VM
VNET
managementSubnet
Azure Hosted IR
A real-world scenario: week points
Users WebApp
Azure SQL DB
Blob
Console VM
VNET
managementSubnet
Auth? TLS?
WAF?
IP Restriction?
Auth?
Encryption?
Firewall?
Traffic flow?
Auth?
Encryption?
Firewall?
Data
exfiltration?
ADF
Azure Hosted IR
Securing the webapp
Disable anonymous access
Disable anonymous access
Enforce HTTPS
Enforce HTTPS
Introduce a Web Application Firewall
Introduce a Web Application Firewall
Users WebApp
Introduce a Web Application Firewall
Users WebApp
WAF
Vnet
Public IP
Introduce a Web Application Firewal
Introduce a Web Application Firewal
Apply IP Restrictions
Disable anonymous access
Disable anonymous access
Disable anonymous access
Disable anonymous access
A real-world scenario: week points
Users WebApp Azure SQL DB Blob
Console VM
VNET
managementSubnet
Auth? TLS?
WAF?
IP Restriction?
Auth?
Encryption?
Firewall?
Traffic flow?
Auth?
Encryption?
Firewall?
Data
exfiltration?
ADF
Azure Hosted IR
WAF
wafSubnet
Public IP
Securing the database
Azure AD integration
Azure AD integration
Server=tcp:sqlsrv-secure-jecptzwgjjo7o.database.windows.net,1433;Initial
Catalog=DemoDB;Persist Security Info=False;User
ID=*************;Password=**************;MultipleActiveResultSets=False;Encrypt=
True;TrustServerCertificate=False;Connection Timeout=30;
Azure AD integration
Azure AD integration
Azure AD integration
Azure AD integration
Azure AD integration
Azure AD integration
Azure AD integration
Server=tcp:sqlsrv-secure-jecptzwgjjo7o.database.windows.net,1433;Initial
Catalog=DemoDB;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=Fa
lse;Connection Timeout=30;
Encryption at rest
Encryption at rest
Encryption in transit
Encryption in transit
Encryption in use
Encryption in use
Always Encripted
Row Level Security
Dynamic Data Masking
Network security
Network security
VPN GW
VM
VNET
Public endpoint Public endpoint
On-prem IP
Azure Svcs
1 2
Network security
VPN GW
VM
VNET
Public endpoint Public endpoint
On-prem IP
Subnet 1
1 2
Subnet 2
Network security
VPN GW
VM
VNET
Public endpoint Public endpoint
1 2
Private
link
A real-world scenario: week points
Users WebApp Azure SQL DB Blob
Console VM
VNET
managementSubnet
Auth? TLS?
WAF?
IP Restriction?
Auth?
Encryption?
Firewall?
Traffic flow?
Auth?
Encryption?
Firewall?
Data
exfiltration?
ADF
Azure Hosted IR
WAF
wafSubnet IntSubnet privateLinkSubnet
Public IP
Securing the storage account
Encryption at rest
Encryption in transit
Encryption in transit
Azure AD integration
Azure AD integration
Azure AD integration
Azure AD integration
Azure AD integration
Network security
Network Security
Network Security
A real-world scenario: week points
Users WebApp
Azure SQL DB
Blob
Console VM
VNET
managementSubnet
Auth? TLS?
WAF?
IP Restriction?
Auth?
Encryption?
Firewall?
Traffic flow?
Auth?
Encryption?
Firewall?
Data
exfiltration?
ADF
Azure Hosted IR
WAF
wafSubnet IntSubnet privateLinkSubnet
Public IP
What about Data Factory?
Azure AD integration
Resource connectivity
What about Data Factory?
Azure AD integration
Resource connectivity
VNET
Azure Hosted IR
What about Data Factory?
Azure AD integration
Resource connectivity
VNET
Azure Hosted IR
ADF Managed VNET
(Preview)
What about Data Factory?
Azure AD integration
Resource connectivity
VNET
Self Hosted IR
A real-world scenario: week points
Users
WebApp Blob
Azure SQL DB
Console VM
ADF
WAF
wafSubnet
Public IP
VNET
IntSubnet managementSubnet
Self-hosted IR
adfSubnet
privateLinkSubnet
Auth? TLS?
WAF?
IP Restriction?
Auth?
Encryption?
Firewall?
Traffic flow?
Auth?
Encryption?
Firewall?
Data
exfiltration?
Limiting the exposure to data exfiltration
Users
WebApp Blob
Azure SQL DB
Console VM
ADF
WAF
wafSubnet
Public IP
VNET
IntSubnet managementSubnet
Self-hosted IR
adfSubnet
privateLinkSubnet
Limiting the exposure to data exfiltration
Users
WebApp Blob
Azure SQL DB
Console VM
ADF
WAF
wafSubnet
Public IP
VNET
IntSubnet managementSubnet
Self-hosted IR
adfSubnet
privateLinkSubnet
NSG
Outbound traffic
Priority Source Destination Action
100 ConsoleVM IP, any port AzSQLDB private IP, 1433 Allow
110 ConsoleVM IP, any port AzSQLDB Service Tag
120 ConsoleVM IP, any port AzStorage Service Tag
A real-world scenario: a good starting point
Users
WebApp Blob
Azure SQL DB
Console VM
ADF
WAF
wafSubnet
Public IP
VNET
IntSubnet managementSubnet
Self-hosted IR
adfSubnet
privateLinkSubnet
NSG
NSG
NSG
A different approach
Users
Blob
Console VM
ADF
WAF
wafSubnet
Public IP
VNET
AseSubnet managementSubnet
Self-hosted IR
adfSubnet
privateLinkSubnet
ASE
sqlmiSubnet
Az SQL MI
NSG
NSG
NSG NSG
Checking for any blind spot
Azure SQL Database
• Label sensitive data
• Enable audit
Azure Security Center
• Check your security posture (free tier)
• Integrate with Defender for SQL, App Service, Storage
(former standard tier)
Some useful resources
• What is Azure Private Link? | Microsoft Docs
• Managed virtual network & managed private endpoints - Azure Data
Factory | Microsoft Docs
• Tutorial: Access data with managed identity - Azure App Service |
Microsoft Docs
• Manage traffic to multi-tenant apps using the portal - Azure
Application Gateway | Microsoft Docs
Let’s keep
in touch!
ABOUTME.OMEGAMADLAB.COM

Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone