ZERO TRUST / AWS

AWS Verified Access: Secure Application Access Without a VPN

Broad, network-level VPN access is a liability every application inherits by default. Verified Access replaces it with per-request, per-application decisions based on identity and device posture.

Published July 2026 · ~14 min read · Implementation guide

Executive Summary

Traditional VPNs grant network-level access: once connected, a user (or an attacker with stolen credentials) typically has a path to far more of the network than any single task requires. It's a coarse, all-or-nothing model that predates zero-trust thinking, and it shows — in over-permissive access, inconsistent device checks, and audit logs that can't answer "who accessed which application, from what device."

AWS Verified Access is a managed service that replaces VPN-based access with per-application, per-request policy decisions. It sits in front of each application and evaluates every request against configurable policies that combine identity (via IAM Identity Center or an external IdP) and device posture (via an MDM/EDR integration) — with no VPN client, no split-tunnel configuration, and no broad network access granted by default.

This guide covers what Verified Access is, the problems it solves, reference architectures for both single-application and multi-application environments, and a step-by-step implementation walkthrough.

01 What Is AWS Verified Access?

AWS Verified Access sits in front of your applications and resources and enforces conditional access policies on every request. It integrates with identity providers (IdPs) and device posture providers to continuously verify who the user is and whether their device meets your security requirements, before allowing access to a specific application.

Instead of "connect to VPN, then you're on the network," Verified Access applies per-application, least-privilege access, and logs every attempt for audit and incident response.

Key benefits

02 Problems It Solves

ProblemHow it shows up
Over-permissive VPN accessTraditional VPNs often expose entire subnets once connected, making lateral movement easier for a compromised account or device.
Inconsistent device postureHard to ensure only compliant devices connect; posture checks are often one-time (at VPN connect) rather than continuous.
Complex user experienceVPN client issues, split-tunnel misconfigurations, and credential problems drive a disproportionate amount of support load.
Fragmented access policiesDifferent stacks — VPN, reverse proxies, app-level auth — lead to duplicated, inconsistent, and hard-to-audit rules.
Limited observabilityNetwork-level logs rarely show which user accessed which app, with what device posture, at what time.

03 Common Use Cases

Secure remote workforce at scale

Remote employees and contractors can access only the applications they need, with access conditioned on identity, group membership, and device posture. When a contract ends, access is revoked centrally via the IdP and Verified Access policies — no VPN credential to separately deprovision.

Zero-trust access to internal web apps

Internal admin portals, dashboards, and line-of-business apps can be exposed through Verified Access endpoints. Each app has its own policy — for example, "only members of the Admins group, using a compliant corporate device, from specific countries."

Consistent access for web and non-web resources

Verified Access can front both web-based applications and infrastructure resources (e.g. SSH/RDP/TCP access to EC2 or databases via appropriate endpoints), giving you one consistent policy model across different protocols instead of a patchwork of tools.

04 Architecture: Single Application Access

The simplest deployment fronts a single application. A user requests the application URL, which resolves to a Verified Access endpoint. The endpoint evaluates the request against configured trust providers — identity and device posture — before forwarding traffic to the target application in your VPC.

Remote User (Browser)Verified Access EndpointPublic endpointper application1. Request app URLTrust ProvidersIdentity ProviderIAM Identity Center / external IdPDevice Posture ProviderMDM / EDR compliance signal2. Evaluate identity& device posture3. Apply policy (identity + device posture)Application VPCTarget ApplicationALB / NLB / EC2 / ECSLoggingCloudWatch / S3
Figure 1 — Browser-based access to an internal web application: the endpoint evaluates identity and device posture via trust providers before forwarding traffic.

05 Architecture: Multi-Application, Policy-Grouped

In larger environments, applications are organized into groups that share similar security requirements — for example, Admin Apps, Finance Apps, and Dev/Test Apps. Each group can apply its own policy set while still giving every application its own dedicated endpoint and hostname.

Verified Access InstancePolicy GroupsGroup: Admin AppsVA Endpointadmin.example.comTarget AppAdmin App (ALB/VPC)Group: Finance AppsVA Endpointfinance.example.comTarget AppFinance App (ALB/VPC)Group: Dev/Test AppsVA Endpointdev.example.comTarget AppDev/Test Apps (ALB/VPC)
Figure 2 — A single Verified Access instance governing multiple policy groups, each with its own endpoint and target application.

06 Detailed Implementation Guide

  1. Confirm prerequisites

    Before you start, make sure you have:

    • An AWS account and VPC — your applications should be deployed behind an ALB/NLB or directly on EC2.
    • An identity provider — AWS IAM Identity Center, or an external IdP (Okta, Azure AD, etc.) integrated with AWS.
    • A device posture provider (recommended) — an MDM/EDR solution that can expose device compliance signals to Verified Access.
    • DNS control — the ability to create public DNS records (e.g. in Route 53) for your Verified Access endpoints.
  2. Create a trust provider

    Trust providers are how Verified Access obtains identity and device posture information. Configure one or more and reference them in your policies:

    • Identity trust provider — integrate with IAM Identity Center or an external IdP using OIDC/SAML.
    • Device trust provider — integrate with your device management solution to expose signals like "corporate-managed," "OS version," or "disk encryption enabled."
    Design tip. Start with identity-only policies, then progressively add device posture conditions once you've validated the integration and logging.
  3. Create a Verified Access instance

    The instance is the top-level container for your configuration. Within it, you define groups and endpoints.

    • Scope — decide whether you want one instance per environment (e.g. prod, non-prod) or per business unit.
    • Logging — enable logging to CloudWatch Logs or an S3 bucket for all access attempts from the outset.
  4. Define groups and policies

    Groups let you apply policies to sets of applications with similar security requirements. Each group can reference one or more trust providers and define conditional access rules.

    • Example groups — "Admin Apps," "Finance Apps," "Contractor Apps," "Developer Tools."
    • Example policy — only allow access if the user is in the Admins IdP group, device posture is "compliant" and "corporate-managed," and (optionally) the request originates from an allowed country or IP range.
  5. Create Verified Access endpoints

    Endpoints are what users actually connect to. Each endpoint is associated with a group and a target application in your VPC.

    • Endpoint type — choose the appropriate type (e.g. web application) and configure the target: ALB, NLB, or EC2.
    • Network configuration — place endpoints in subnets that can reach your application's load balancer or instances.
    • Security groups — ensure security groups allow traffic from the Verified Access endpoint to the target application.
  6. Configure DNS for endpoints

    For a good user experience, map friendly hostnames to your Verified Access endpoints via Route 53 CNAME (or equivalent) records — e.g. admin.example.com, finance.example.com, dev.example.com.

  7. Add and refine access policies

    Once endpoints are live, attach policies that reference your trust providers and enforce zero-trust access.

    • Start simple — identity-only policies (e.g. "user is in the Admins group").
    • Iterate — add device posture conditions and contextual rules (time of day, IP ranges, etc.).
    • Test — validate with test users and devices; confirm non-compliant devices are blocked as expected.
  8. Set up observability and logging

    Verified Access logs every access attempt, including whether it was allowed or denied and which policy was applied.

    • CloudWatch Logs — stream logs for dashboards and alerts (e.g. spikes in denied access).
    • S3 / SIEM — export logs to S3 and ingest into your SIEM for correlation with other security events.
    • Audit trails — use logs to answer "who accessed which app, when, and with what device posture?"
  9. Harden and integrate

    • Combine with AWS WAF — place WAF in front of your application load balancers to protect against common web exploits, while Verified Access handles identity and posture.
    • Least privilege — ensure each endpoint's policies only allow the minimum necessary roles or groups.
    • Lifecycle management — integrate with HR/IdP processes so user offboarding automatically revokes access.
    • Environment separation — use separate instances or groups for prod vs. non-prod to avoid accidental cross-access.

07 End-to-End Flow Example

To make this concrete, here's an example flow for an internal admin portal protected by AWS Verified Access.

User BrowserVerified AccessEndpointPolicy Evaluation(Trust Providers)Admin Portal(ALB/EC2 in VPC)1. HTTPS request2. Identity + deviceposture checks3. Allow / denydecision4. Application response returned to browserEvery step logged to CloudWatch / S3 for audit and monitoring
Figure 3 — End-to-end request flow for an internal admin portal, from initial request through to logged decision.
  1. User navigates to https://admin.example.com, which resolves to a Verified Access endpoint.
  2. Verified Access validates identity via the configured IdP (e.g. IAM Identity Center).
  3. Device posture is checked via the device trust provider (e.g. MDM/EDR) to confirm compliance.
  4. Policies are evaluated — the user must be in the Admins group and the device must be compliant.
  5. If allowed, traffic is forwarded to the admin portal behind an ALB in the VPC.
  6. The access attempt is logged with identity, device posture, decision (allow/deny), and endpoint details.

08 Summary

AWS Verified Access brings zero-trust principles directly to your application access layer, replacing broad VPN-based network access with granular, per-request decisions based on identity and device posture. By grouping applications, centralizing policies, and enabling rich logging, you can improve your security posture, simplify operations, and give users a smoother way to reach the tools they need — without the friction of traditional VPNs.