Data
security is a huge topic and it’s one of the most important types of security
in space today. Lots of hackers and world governments are trying to break into
databases because Data has got a lot of financial and other value.
Azure has a multi-layer view of security that you can’t just have one single fence around your data. You need to have multiple layers of security that each one of those has to be violated effectively in order to get to the customer data sitting at the canter.
1. Network Security: The topmost layer is Network security.
- Block by default: Azure SQL database has a
firewall off by default. So you cannot connect to it unless the IP is
white listed. You have to explicitly allow other Azure services even to
connect to it. And it’s not just open to the world even if you had
credentials like your username and password. You need to have the firewall
enabled.
- Protect the whole server or
protect individual databases: Once you white list an IP, the database DV 1 and
the data warehouse also will be able to be accessed. But we can actually
go into the database and put server level firewalls as well. So there are
SQL commands effectively that allow you to create firewalls to allow and
block. So if you have multiple databases but you only want them to access
one, you can allow the IP address through the server but block that IP on
many of the databases.
You can
allow or restrict other Azure Services and you can even add an endpoint into a
virtual network that allows you to control traffic through the network security
group through typical virtual network security protections.
2. Access
management: It
deals with identity management and authentication effectively. There are two
ways to achieve this:
- SQL authentication (username and
password)
- Azure Active Directory (Azure
AD)
All servers
have a root username and password to the main user that we create during setup.
But then we can enable the Azure Active Directory. We have to enable a root ID
for that, and then we can create Azure Active Directory users that can then be
granted access as well. So once you’ve set up the admin user then you’re
opening the door for other users to authenticate through Azure Active Directory
and not SQL Server authentication. It allows you to manage your security
centralized location instead of having SQL Server has its own authentication
database.
Once you are logged in with the user ID and password. You have certain levels
of access:
- Principle of The Least
Privilege: Microsoft
recommends the principle of the least privilege which goes on to state
that you should not give people excessive permissions. i.e Everyone should
not be admin, Admin account should not be used to do your day-to-day work
and Your applications should not be running in DB owner permissions.
Creating the right levels, right users, and roles for the permissions can
save you if there is a compromise that account doesn’t have
excessive privileges.
- Role-Based Access
Control (RBAC): Azure Role-Based Access Control (Azure RBAC)
helps you manage who has access to Azure ‘s resources, what they can do
with those resources, and the areas they have access to. RBAC is another
way that protects people from getting access to things they are not
supposed to have access to.
- Row Level Security: SQL server itself has
security in things such as Row-level security where you can allow users to
access specific regions. It’s in the same database and it’s just a column
filter that’s going to determine whether you have access to it or not. So
you can do all the way down to the data level types of authorization which
is fine-grained.
3. Threat
Protection: Azure
Monitor is the centralized source for alerts, log files, monitoring, and things
like that.
- Advanced-Data Security: If you sign up for advanced data
security, there’s a free trial for that and then it costs around $20-$30 a
month per server. After that, you get these three cool features in terms
of threat protection.
- Data Discovery and
Classification: Data discovery and classification is pretty cool. It will actually
go and examine your data to an audit effectively and determine which of
your data fields are potentially and personally identifiable information
subject to deep GDP restrictions subject at API. You might want to
implement some security rules around personally identifiable information.
So you can actually tag these columns as potentially sensitive information
and again implement certain rules based on the tags on the columns.
- Vulnerability Assessment: If people can read people’s
names and addresses without a certain level of authorization,
vulnerability assessment will look at your server and determine if you’ve
got too many IP addresses enabled. If you’re set to based on your firewall
settings, your server if you’ve got roles in users that are of excessive
privileges or don’t have any use and it’s going to tell you important
security things about your setup.
- Advanced Threat
Protection: Advanced threat protection is more like protecting against SQL
injection attacks and some of those common things where we’ve got hackers
actively trying to hack into your server guessing the password multiple
times.
4.
Information Security
- Data Security – At Rest: Data is encrypted by
default in Azure- Transparent Data Encryption(TDE). Azure Controls the
keys, and often the encryption is transparent to you. You can control the
keys using the Azure Key Vault. If someone breaks into an Azure Data
Center, they can’t read your data. But if they pass network, identify, and
authorization checks, then they can.
- Data Security – In
Transit: This
is an important one because the Internet is a series of connected nodes.
Anyone sitting in between one server and another can read the data so it
is important to encrypt it using SSL/TLS(i.e. HTTPS). All data traveling
outside of Azure should travel encrypted
- Always Encrypted: Some Azure Database
services support an “always encrypted” mode. The data is encrypted at the
client and is stored in the encrypted state. Nothing can read it without
the key, and only the client has the key. If the client is hacked, they
can read the data.
- Data Masking – Anonymizing: Sometimes, you don’t need
access to sensitive data fields all the time. i.e You might need to know
the order dollar amounts, order id, order date, the product ordered, etc.
You have the ability to restrict access to customer personally
identifiable information to only some accounts. Data masking returns *****
for certain fields that are needed by a query.
- Store Data Encrypted: You can always choose to
have the application do the encryption. If you are storing passwords, hash
them using a good hashing algorithm and a salt. Instead of having your
password being sent across in plain text and encrypted at the server side
you can do the hashing and use salts in the proper algorithm.
5. Customer Data:
SQL
Database and SQL Managed Instance secure customer data by means of Transport
Layer Security (TLS) encryption in motion.
No comments:
Post a Comment