Skip to main content

Zero Trust Cloud Architecture

[!IMPORTANT] Cloud Paradigm: In modern multi-cloud ecosystems, the cloud management plane is the new attack surface. Zero Trust cloud architecture enforces strict identity verification at the API control plane layer, network boundary layer, and workload data layer.


1. Cloud-Native Zero Trust Reference Matrix

CSP Capability Deep Dive

Cloud ProviderIdentity Control PlaneNetwork IsolationAccess Proxy / GatewayData Protection
Amazon Web Services (AWS)AWS IAM Identity Center, ABAC Tags, STSVPC Endpoints, AWS PrivateLinkAWS Verified Access (AVA)KMS Envelope Encryption, Macie DLP
Google Cloud (GCP)Cloud Identity, Context-Aware AccessVPC Service Controls (VPC SC)BeyondCorp Enterprise / IAPCloud KMS, Sensitive Data Protection
Microsoft AzureEntra ID Conditional Access, PIMAzure Private Link, Managed VNetAzure Application ProxyAzure Key Vault, Purview Information Protection

2. Identity-Aware Proxies (IAPs) vs. Legacy VPNs

Traditional VPNs grant blanket L3 network connectivity to entire subnets. Identity-Aware Proxies (IAPs) operate at L7, evaluating identity and device context before proxying individual TCP/HTTP requests to target application instances without ever exposing an internal IP to the client.

LEGACY VPN APPROACH:
User Workstation === (VPN Tunnel) ===> [ Corporate VPC 10.0.0.0/16 ] ===> Unrestricted Access to ALL DBs & APIs

ZERO TRUST IAP APPROACH:
User Workstation === (TLS + FIDO2 + Device Token) ===> [ Identity-Aware Proxy ]
|
+-----------------+-----------------+
| Policy Engine: Allow GET /api/v1? |
+-----------------+-----------------+
| (Allowed Request Only)
v
[ Isolated Microservice A Only ]

3. Terraform Infrastructure-as-Code (AWS Verified Access ZTA)

The following Terraform module provisions a native AWS Zero Trust environment using AWS Verified Access (AVA), routing user traffic securely through OIDC identity evaluation without exposing public IPv4 addresses.

# main.tf - AWS Verified Access Zero Trust Architecture

resource "aws_verifiedaccess_instance" "zta_instance" {
description = "Production Zero Trust Access Instance"
tags = {
Environment = "production"
ManagedBy = "Terraform"
}
}

# Attach OIDC Identity Provider (Okta / Entra ID) to Policy Engine
resource "aws_verifiedaccess_trust_provider" "oidc_provider" {
description = "Okta Enterprise IdP Trust Provider"
trust_type = "user"
user_trust_provider_type = "oidc"

oidc_options {
issuer = "https://enterprise.okta.com/oauth2/default"
authorization_endpoint = "https://enterprise.okta.com/oauth2/v1/authorize"
token_endpoint = "https://enterprise.okta.com/oauth2/v1/token"
user_endpoint = "https://enterprise.okta.com/oauth2/v1/userinfo"
client_id = var.okta_client_id
client_secret = var.okta_client_secret
scope = "openid profile email groups"
}
}

# Create Verified Access Group with Cedar Policy
resource "aws_verifiedaccess_group" "finance_access_group" {
verifiedaccess_instance_id = aws_verifiedaccess_instance.zta_instance.id
description = "Finance Application Access Group"

# Cedar Policy Language enforcing Identity + Group + MFA
policy_document = <<EOF
permit(principal, action, resource)
when {
context.identity.groups.contains("Finance-Admins") &&
context.identity.mfa_authenticated == true
};
EOF
}

# Create Endpoint mapping to internal ALB in private VPC subnet
resource "aws_verifiedaccess_endpoint" "finance_app_endpoint" {
verifiedaccess_group_id = aws_verifiedaccess_group.finance_access_group.id
endpoint_type = "load_balancer"
attachment_type = "vpc"
domain_name = "finance-internal.company.com"
endpoint_domain_prefix = "finance"

load_balancer_options {
load_balancer_arn = aws_lb.internal_alb.arn
port = 443
protocol = "https"
subnet_ids = var.private_subnet_ids
}

security_group_ids = [aws_security_group.ava_sg.id]
}

4. Cloud ZTA Nuances & Multi-Cloud Edge Cases

1. Cross-Cloud Identity Synchronization Delay

When federating identity across Okta, AWS IAM Identity Center, and Azure Entra ID, SCIM provisioning delays (5-15 minutes) can allow recently terminated employees to retain access to cross-cloud resources.

  • Mitigation: Enforce Direct OIDC JWT Validation at the API Gateway layer rather than relying solely on synced cloud IAM user objects.

2. Cloud Metadata Service (IMDSv2) Exfiltration

Attacking containers executing SSRF vulnerabilities query http://169.254.169.254 to steal temporary IAM role credentials.

  • Mitigation: Enforce AWS IMDSv2 (requiring token PUT header) with http_put_response_hop_limit = 1 to block container metadata exfiltration, and restrict egress using Kubernetes NetworkPolicies.

3. Public API Endpoint Blindspots

Exposing serverless functions (AWS Lambda, GCP Cloud Functions) via public API Gateways without identity proxies exposes workloads to unauthenticated Denial-of-Wallet attacks.

  • Mitigation: Protect Cloud Functions using GCP IAP or AWS API Gateway IAM / OIDC Authorizers coupled with WAF rate limiting.

[!WARNING] VPC Service Control Bypass: In GCP, enabling public IPs on Cloud SQL or BigQuery instances allows workloads to bypass VPC SC perimeter boundaries. Always enforce Private IP Only configurations via Organization Policies.

Share this guide