Blog

Cloud articles

  • Home
  • Blog
  • Cloud
  • Cloud Security Basics: Shared Responsibility Explained

Cloud Security Basics: Shared Responsibility Explained

The shared responsibility model explained: what your cloud provider secures, what stays your job, and the basic controls every cloud account needs.

4 min read Cloud

One of the most persistent misunderstandings about the cloud is that moving to AWS, Azure or Google Cloud makes security "their problem". It does not. Every major provider works under a shared responsibility model: they secure the cloud itself, and you secure what you put in it. Most cloud security incidents that make the news involve the customer's half, such as an open storage bucket, a leaked access key or an unpatched server, not a failure of the provider's data centre.

The shared responsibility model in one line

AWS summarises it neatly as security "of" the cloud versus security "in" the cloud. The provider is responsible for the physical buildings, hardware, network backbone and the virtualisation layer. You are responsible for how you configure and use the services on top.

Where exactly the line falls depends on the service type:

ResponsibilityIaaS (virtual machines)PaaS (managed DB, app platform)SaaS (email, CRM)
Physical security, hardware, hypervisorProviderProviderProvider
Operating system patchingYouProviderProvider
Network controls (firewall rules, security groups)YouMostly youProvider
Application code and configurationYouYouProvider (you configure settings)
Identity and access managementYouYouYou
Your data and who can see itYouYouYou

Notice the bottom two rows. Whatever service you use, identity and data are always yours. The official descriptions are worth a read: AWS, Microsoft Azure.

Your half: the essential controls

1. Lock down the root or owner account

The account you used to sign up has unlimited power, including the ability to delete everything and change billing. Enable multi-factor authentication (MFA) on it, store its credentials securely, and stop using it for daily work. Create individual administrator accounts instead.

2. Use individual identities and least privilege

Every person gets their own login; shared accounts make it impossible to know who did what. Grant only the permissions each role needs. A developer deploying to one project should not be able to delete production databases in another. Review permissions when people change roles or leave.

3. Avoid long-lived access keys

Static API keys pasted into scripts, CI pipelines or, worst of all, committed to Git repositories are a frequent cause of breaches. Prefer temporary credentials: IAM roles for servers, workload identity for containers, and single sign-on for people. Where keys are unavoidable, rotate them and scope them narrowly. Tools such as git-secrets or gitleaks can scan repositories for accidentally committed secrets.

4. Control network exposure

Security groups and network firewall rules decide what the internet can reach. A frequent mistake is opening SSH (port 22), RDP (3389) or database ports (3306 for MySQL, 5432 for PostgreSQL) to 0.0.0.0/0, meaning everyone. Restrict administrative ports to known IP addresses or a VPN, keep databases in private subnets, and expose only ports 80 and 443 for web traffic. You can confirm what is reachable from outside with our port checker.

5. Keep storage private by default

Object storage buckets are private when created on the major platforms today, but someone can still make them public. Turn on account-level settings that block public access (for example S3 Block Public Access), and grant access to specific files through signed, time-limited URLs instead of public buckets.

6. Encrypt data

Enable encryption at rest for disks, databases and storage; on most services this is a setting or already the default. Use TLS for data in transit, including connections between your application and its database. Check public endpoints with an SSL checker to confirm certificates are valid and current.

7. Patch what you run

On IaaS, the operating system and every package on it are your responsibility. Enable automatic security updates where suitable. On Ubuntu and Debian:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

On RHEL-based systems, dnf-automatic serves the same purpose.

8. Turn on logging and alerts

Enable the provider's audit log (AWS CloudTrail, Azure Activity Log, Google Cloud Audit Logs) in every region and account, and keep the logs somewhere attackers cannot easily delete them. Add alerts for high-risk events: root account logins, changes to IAM policies, security groups opened to the world, and unusual spending, which can indicate stolen credentials being used for cryptocurrency mining.

9. Back up independently

The provider keeps its infrastructure available, not your data recoverable from your own mistakes. Keep backups with separate credentials, ideally in a separate account, and test restores.

10. Use the provider's built-in posture tools

AWS Security Hub, Microsoft Defender for Cloud and Google Security Command Center scan your configuration for common mistakes against recognised benchmarks such as those from the Center for Internet Security (CIS). Start with their free or basic tiers and fix the high-severity findings first.

Where businesses commonly slip

  • Assuming a managed service is configured securely by default for their use case.
  • Test environments with real customer data and weaker controls.
  • Former employees or contractors whose access was never removed.
  • No one assigned to review security alerts, so they pile up unread.

Good cloud security is mostly consistent basics rather than exotic tools. If you would like help reviewing an existing setup, see our cloud solutions page.

Key takeaways

  • Under the shared responsibility model, the provider secures the infrastructure; you secure your configuration, identities and data.
  • The more managed the service, the less you patch, but access control and data are always yours.
  • Protect the root account with MFA, use least privilege, and avoid long-lived keys.
  • Restrict open ports, keep storage private, encrypt, log, back up and act on alerts.

Need help with this?

Netifi helps businesses around the world with Cloud. Tell us what you are working on.