Skip to content
Signals
Monitoring NVD, CISA KEV, EPSS and the Dragons Community ransomware tracker in near-real timeMonitoring NVD, CISA KEV, EPSS and the Dragons Community ransomware tracker in near-real time

Cloud Security Fundamentals

· Guide
By Dragons Community Cloud Team· Updated June 13, 2026· cloud-security · fundamentals · iam

Moving workloads to AWS, Azure, or Google Cloud changes how security works, but it does not remove your responsibility for it. The cloud gives you powerful primitives for identity, isolation, and encryption, yet the overwhelming majority of cloud breaches trace back to customer misconfiguration rather than provider failure. This guide walks beginners through the foundational controls that prevent those mistakes: understanding who secures what, treating identity as the perimeter, isolating networks, encrypting data, and continuously watching your posture. The examples are provider-neutral so the concepts transfer wherever you build. Master these fundamentals before reaching for advanced tooling, because most real-world incidents are stopped by the basics done well.

The shared responsibility model

Every major cloud provider operates on a shared responsibility model that draws a line between what they secure and what you secure. The provider is responsible for security of the cloud: the physical data centers, the hardware, the hypervisor, and the managed service infrastructure. You are responsible for security in the cloud: your data, your identity and access configuration, your network rules, your operating systems where applicable, and how you configure each service.

Where that line falls shifts with the service model. For infrastructure-as-a-service like raw virtual machines, you own patching the guest OS and everything above it. For platform and serverless services such as managed databases or functions, the provider handles more of the stack, but you still own data classification, access policies, and encryption choices. Misreading this boundary is a common beginner error that leaves real gaps, for example assuming a managed database is automatically locked down when its network exposure is still yours to control.

The practical takeaway is to map each service you use to the model and identify exactly which controls are yours. Do not assume a default is safe. Provider defaults favor ease of use and connectivity, not maximum security, so part of your job is hardening from the default state toward least exposure.

  • List every cloud service in use and note who secures each layer
  • Confirm guest OS patching ownership for any IaaS workloads
  • Treat all provider defaults as starting points, not secure baselines
  • Document data classification and protection duties as yours

Identity is the new perimeter

In the cloud there is no network edge to hide behind; identity is the control plane and therefore the real perimeter. Anyone with valid credentials and sufficient permissions can act on your resources from anywhere on the internet. This makes identity and access management the single most important security domain to get right, and the place where small mistakes have the largest blast radius.

Apply least privilege relentlessly: grant only the permissions a person or workload needs to do its job, and nothing more. Prefer roles and groups over attaching permissions directly to individual users so access stays consistent and auditable. In AWS this means IAM roles and policies, in Azure it means Entra ID role assignments and RBAC, and in Google Cloud it means IAM roles bound to principals. Avoid broad wildcard permissions and the built-in administrator or owner roles for day-to-day work.

Enforce multi-factor authentication on every human account, especially the root or global administrator account, which should be locked away and almost never used. Eliminate long-lived access keys wherever possible in favor of short-lived, automatically rotated credentials issued through roles. A leaked static key that never expires is one of the most common paths to a full account takeover.

  • Enable MFA for all human users and the root/global admin account
  • Replace long-lived access keys with short-lived role-based credentials
  • Grant permissions via roles and groups, not directly to users
  • Avoid wildcard and built-in admin policies for routine access
  • Review and remove unused identities and permissions regularly

Misconfiguration: the number one cause of breaches

If you remember one risk from this guide, make it this: misconfiguration is the leading cause of cloud data breaches, far ahead of exotic attacks. The classic examples are storage buckets accidentally made public, security groups left open to the entire internet, databases reachable without authentication, and overly permissive identity policies. These are simple settings, which is exactly why they slip through.

Public object storage is the most infamous offender. A single bucket policy or access control setting can expose millions of records to anyone who finds the URL. Default to private, enable account-level public access blocks, and require an explicit, reviewed exception for anything that must be public. The same discipline applies to network rules: opening administrative ports such as SSH or RDP to the whole internet invites constant automated attack.

Because humans make these mistakes repeatedly, the durable fix is automation and guardrails rather than vigilance alone. Detect risky configurations continuously and, where possible, prevent them from being created in the first place. The later sections on posture management and guardrails describe how.

  • Enable account-wide public access block on object storage
  • Default all storage and databases to private access
  • Never expose SSH/RDP or admin ports to 0.0.0.0/0
  • Require reviewed exceptions for any intentionally public resource
  • Scan continuously for newly introduced misconfigurations

Network isolation and segmentation

Even though identity is the primary perimeter, network isolation remains a vital layer of defense in depth. Build workloads inside a private virtual network, called a VPC in AWS and Google Cloud and a VNet in Azure, and divide it into subnets that separate public-facing components from internal ones. Resources that do not need inbound internet access belong in private subnets with no public IP address.

Control traffic with security groups and network ACLs, applying least privilege to network flows just as you do to identity. Allow only the specific ports and source ranges each component requires, and deny everything else by default. Reach private instances through a bastion host or a managed session service rather than exposing them directly, and prefer provider-native connection brokers that avoid open inbound ports entirely.

For access to managed services, use private endpoints (AWS PrivateLink, Azure Private Endpoint, or Google Private Service Connect) so traffic to storage, databases, and APIs stays on the provider backbone instead of traversing the public internet. This shrinks your exposed attack surface and keeps sensitive data flows off the open network.

  • Place internal resources in private subnets with no public IP
  • Restrict security groups to specific ports and source ranges
  • Default-deny network traffic and allow only what is needed
  • Use bastions or managed session brokers instead of open admin ports
  • Adopt private endpoints for managed service access

Encryption at rest and in transit

Encryption protects your data both when it is stored and when it moves across networks. Enable encryption at rest on every storage service, volume, and database; all major providers support this and increasingly enable it by default, but you should verify it explicitly rather than assume. Encryption in transit means enforcing TLS for all connections, including internal service-to-service traffic, and rejecting unencrypted or downgraded protocols.

The harder and more important part is key management. Use the provider key management service (AWS KMS, Azure Key Vault, or Google Cloud KMS) to create, store, and control encryption keys. Decide between provider-managed keys, which are simplest, and customer-managed keys, which give you control over rotation, access policies, and the ability to revoke access by disabling a key. For most beginners, customer-managed keys for sensitive datasets offer a strong balance of control and simplicity.

Treat access to keys as a high-value privilege. Whoever can use a key can effectively read the data it protects, so apply least privilege to key policies, enable automatic rotation, and log every key use. Encryption only adds value when the keys themselves are tightly governed.

  • Verify encryption at rest is enabled on all storage and databases
  • Enforce TLS for external and internal connections
  • Manage keys with the provider KMS rather than ad hoc methods
  • Use customer-managed keys for sensitive data and enable rotation
  • Restrict and log key usage with least-privilege key policies

Logging, visibility, and threat detection

You cannot secure or investigate what you cannot see, so comprehensive logging is foundational. Enable the management-plane audit trail that records every API call and configuration change: AWS CloudTrail, Azure Activity Log and Entra ID logs, or Google Cloud Audit Logs. These records are essential for spotting suspicious activity and for reconstructing events during an incident, so enable them across all regions and accounts, not just where you actively work.

Beyond raw audit logs, turn on the provider threat-detection service that analyzes activity for known-bad patterns. Amazon GuardDuty, Microsoft Defender for Cloud, and Google Security Command Center surface findings such as credential misuse, anomalous API calls, cryptomining behavior, and communication with known malicious hosts. These services require little configuration and catch a meaningful share of real attacks early.

Protect the logs themselves so an attacker cannot cover their tracks. Centralize logs into a dedicated, tightly restricted account or storage location, enable immutability or object-lock where supported, and set retention that meets your investigative and compliance needs. Forward important findings to alerting so a human or automation responds promptly rather than discovering issues weeks later.

  • Enable management-plane audit logging across all accounts and regions
  • Turn on the provider threat-detection service
  • Centralize logs into a restricted, dedicated location
  • Enable log immutability/object-lock and a defined retention period
  • Route high-severity findings to real-time alerting

Cloud security posture management and guardrails

Because misconfiguration is the dominant risk, continuous posture management is one of the highest-value investments a beginner can make. Cloud Security Posture Management (CSPM) tools continuously assess your environment against security best practices and benchmarks such as the CIS Foundations, flagging public buckets, weak identity policies, unencrypted resources, and open ports. Providers offer native options like AWS Security Hub, Microsoft Defender for Cloud, and Google Security Command Center, alongside many third-party tools.

Shift these checks earlier by scanning infrastructure-as-code before it deploys. If you define infrastructure with Terraform, CloudFormation, or similar, run IaC scanners in your pipeline to catch insecure settings during code review rather than in production. Catching a public bucket in a pull request is far cheaper than discovering it after data exposure.

Finally, use preventive guardrails to make insecure states impossible rather than merely detectable. AWS Service Control Policies, Azure Policy, and Google Organization Policy let you enforce organization-wide rules such as denying public storage, requiring encryption, or restricting which regions can be used. Detection tells you when something went wrong; guardrails stop many mistakes from happening at all.

  • Run a CSPM tool against a recognized benchmark like CIS
  • Scan infrastructure-as-code in CI before deployment
  • Enforce org-wide guardrails (SCPs, Azure Policy, Org Policy)
  • Block public storage and require encryption by policy
  • Track and remediate posture findings on a defined cadence

Secrets, workload identity, and compliance monitoring

Applications need credentials for databases, APIs, and other services, and those secrets must never live in source code, container images, or plaintext configuration. Store them in a dedicated secrets manager such as AWS Secrets Manager, Azure Key Vault, or Google Secret Manager, which provide encryption, fine-grained access control, automatic rotation, and an audit trail of every retrieval. Scan your repositories for accidentally committed secrets and rotate anything that leaks immediately.

Even better than storing secrets is avoiding them. Workload identity lets compute resources assume an identity and obtain short-lived credentials automatically, so no static key is ever stored. Use IAM roles for EC2, ECS, and Lambda in AWS, managed identities in Azure, and service accounts with workload identity in Google Cloud. This eliminates an entire class of leaked long-lived credentials, which is one of the most impactful improvements a team can make.

Compliance monitoring ties these controls together against external requirements such as SOC 2, ISO 27001, PCI DSS, or HIPAA. Use native compliance dashboards and CSPM mappings to continuously measure your environment against the relevant framework, evidencing controls automatically instead of scrambling before an audit. Treat compliance as a continuous output of good security practice rather than a once-a-year project.

  • Store all secrets in a managed secrets service, never in code
  • Enable automatic rotation and audit logging for secrets
  • Use workload identity to eliminate static credentials
  • Scan repositories and images for committed secrets
  • Continuously map controls to your applicable compliance frameworks