[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AFFYKH33PR14MT9G53CBJJ":3,"skill-same:01M6AFFYKH33PR14MT9G53CBJJ":107},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":65,"repositoryHtmlUrl":66,"repositoryHomepageUrl":67,"ownerHtmlUrl":68,"ownerBlogUrl":69,"ownerDescription":70,"updatedAt":71,"install":72,"resources":85},"01M6AFFYKH33PR14MT9G53CBJJ","implementing-zero-trust-network-access",null,"Configures Zero Trust Network Access (ZTNA) in AWS, Azure, and GCP using identity-aware proxies, micro-segmentation, and continuous verification with conditional access policies, replacing VPN-based access with BeyondCorp-style architectures. Use when replacing VPN remote access with identity-based controls, limiting lateral movement via micro-segmentation, or exposing cloud workloads to authenticated users without public internet exposure.","mukul975\u002FAnthropic-Cybersecurity-Skills","mukul975","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42860185?v=4","01M6ADEQR8T5M4EEG6C67BQCWF","Mahipal","01M6ADJPMYWG1E5GM1FWBE3128",35990,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fimplementing-zero-trust-network-access\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"implementing zero trust network access","ZeRO","network","gcp","micro-segmentation","segmentation","beyondcorp","t1078","identity-aware","identity-aware-proxy","ztna","zero-trust","security","cloud-security","proxy","verification","pr","azure","identity","cybersecurity","2026-11-10 10:12:30",false,"---\nname: implementing-zero-trust-network-access\ndescription: Configures Zero Trust Network Access (ZTNA) in AWS, Azure, and GCP using identity-aware proxies, micro-segmentation, and continuous verification with conditional access policies, replacing VPN-based access with BeyondCorp-style architectures. Use when replacing VPN remote access with identity-based controls, limiting lateral movement via micro-segmentation, or exposing cloud workloads to authenticated users without public internet exposure.\ndomain: cybersecurity\nsubdomain: cloud-security\ntags:\n- cloud-security\n- zero-trust\n- ztna\n- beyondcorp\n- identity-aware-proxy\n- micro-segmentation\nversion: '1.0'\nauthor: mahipal\nlicense: Apache-2.0\nnist_csf:\n- PR.IR-01\n- ID.AM-08\n- GV.SC-06\n- DE.CM-01\nmitre_attack:\n- T1078.004\n- T1530\n- T1537\n- T1580\n---\n\n# Implementing Zero Trust Network Access\n\n## When to Use\n\n- When replacing traditional VPN-based remote access with identity-based access controls\n- When implementing micro-segmentation to limit lateral movement within cloud networks\n- When compliance or security strategy requires zero trust architecture adoption\n- When providing secure access to cloud workloads without exposing them to the public internet\n- When building context-aware access policies based on user identity, device health, and location\n\n**Do not use** as a complete replacement for network security controls (ZTNA complements but does not replace firewalls and network ACLs), for protecting internet-facing public applications (use WAF), or for IoT device access where identity-based authentication is not feasible.\n\n## Prerequisites\n\n- Identity provider (Entra ID, Okta, Google Workspace) with MFA enforcement\n- Cloud-native networking capabilities (AWS PrivateLink, Azure Private Link, GCP IAP)\n- Device management solution (Intune, Jamf, CrowdStrike) for device posture assessment\n- Service mesh or zero trust proxy (Cloudflare Access, Zscaler ZPA, or cloud-native IAP)\n- Centralized logging for access decisions and policy enforcement\n\n## Workflow\n\n### Step 1: Deploy GCP Identity-Aware Proxy (IAP) for Application Access\n\nConfigure IAP to provide authenticated access to web applications without VPN.\n\n```bash\n# Enable IAP API\ngcloud services enable iap.googleapis.com\n\n# Configure OAuth consent screen\ngcloud iap oauth-brands create \\\n  --application_title=\"Corporate Apps\" \\\n  --support_email=security@company.com\n\n# Enable IAP on an App Engine application\ngcloud iap web enable \\\n  --resource-type=app-engine \\\n  --oauth2-client-id=CLIENT_ID \\\n  --oauth2-client-secret=CLIENT_SECRET\n\n# Enable IAP on a backend service (GCE\u002FGKE)\ngcloud compute backend-services update BACKEND_SERVICE \\\n  --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET \\\n  --global\n\n# Set IAP access policy (who can access)\ngcloud iap web add-iam-policy-binding \\\n  --resource-type=app-engine \\\n  --member=\"group:engineering@company.com\" \\\n  --role=\"roles\u002Fiap.httpsResourceAccessor\"\n\n# Configure access levels based on device and context\ngcloud access-context-manager levels create corporate-device \\\n  --title=\"Corporate Managed Device\" \\\n  --basic-level-spec=level-spec.yaml \\\n  --policy=POLICY_ID\n```\n\n### Step 2: Implement AWS Verified Access for Zero Trust\n\nDeploy AWS Verified Access to provide identity-based access to internal applications.\n\n```bash\n# Create a Verified Access trust provider (OIDC)\naws ec2 create-verified-access-trust-provider \\\n  --trust-provider-type user \\\n  --user-trust-provider-type oidc \\\n  --oidc-options '{\n    \"Issuer\": \"https:\u002F\u002Flogin.microsoftonline.com\u002FTENANT_ID\u002Fv2.0\",\n    \"AuthorizationEndpoint\": \"https:\u002F\u002Flogin.microsoftonline.com\u002FTENANT_ID\u002Foauth2\u002Fv2.0\u002Fauthorize\",\n    \"TokenEndpoint\": \"https:\u002F\u002Flogin.microsoftonline.com\u002FTENANT_ID\u002Foauth2\u002Fv2.0\u002Ftoken\",\n    \"UserInfoEndpoint\": \"https:\u002F\u002Fgraph.microsoft.com\u002Foidc\u002Fuserinfo\",\n    \"ClientId\": \"CLIENT_ID\",\n    \"ClientSecret\": \"CLIENT_SECRET\",\n    \"Scope\": \"openid profile email\"\n  }'\n\n# Create a Verified Access instance\naws ec2 create-verified-access-instance \\\n  --description \"Zero Trust Access Instance\"\n\n# Attach trust provider to instance\naws ec2 attach-verified-access-trust-provider \\\n  --verified-access-instance-id vai-INSTANCE_ID \\\n  --verified-access-trust-provider-id vatp-PROVIDER_ID\n\n# Create a Verified Access group with policy\naws ec2 create-verified-access-group \\\n  --verified-access-instance-id vai-INSTANCE_ID \\\n  --policy-document '{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [{\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"verified-access:AllowAccess\",\n      \"Condition\": {\n        \"StringEquals\": {\n          \"verified-access:user\u002Fgroups\": \"engineering\"\n        }\n      }\n    }]\n  }'\n\n# Create endpoint for an internal application\naws ec2 create-verified-access-endpoint \\\n  --verified-access-group-id vag-GROUP_ID \\\n  --endpoint-type load-balancer \\\n  --attachment-type vpc \\\n  --domain-certificate-arn arn:aws:acm:REGION:ACCOUNT:certificate\u002FCERT_ID \\\n  --application-domain app.internal.company.com \\\n  --endpoint-domain-prefix app \\\n  --load-balancer-options '{\n    \"LoadBalancerArn\": \"arn:aws:elasticloadbalancing:REGION:ACCOUNT:loadbalancer\u002Fapp\u002Finternal-app\u002Fxxx\",\n    \"Port\": 443,\n    \"Protocol\": \"https\",\n    \"SubnetIds\": [\"subnet-xxx\"]\n  }'\n```\n\n### Step 3: Configure Azure Private Link and Conditional Access\n\nSet up Azure Private Link for network isolation and conditional access for identity-based controls.\n\n```bash\n# Create Private Endpoint for an Azure service\naz network private-endpoint create \\\n  --name app-private-endpoint \\\n  --resource-group production-rg \\\n  --vnet-name production-vnet \\\n  --subnet private-endpoint-subnet \\\n  --private-connection-resource-id \u002Fsubscriptions\u002FSUB_ID\u002FresourceGroups\u002FRG\u002Fproviders\u002FMicrosoft.Web\u002Fsites\u002Finternal-app \\\n  --group-ids sites \\\n  --connection-name app-connection\n\n# Configure private DNS zone for the service\naz network private-dns zone create \\\n  --resource-group production-rg \\\n  --name privatelink.azurewebsites.net\n\naz network private-dns link vnet create \\\n  --resource-group production-rg \\\n  --zone-name privatelink.azurewebsites.net \\\n  --name production-link \\\n  --virtual-network production-vnet \\\n  --registration-enabled false\n```\n\n```powershell\n# Create Conditional Access policy requiring compliant device + MFA\nConnect-MgGraph -Scopes \"Policy.ReadWrite.ConditionalAccess\"\n\n$params = @{\n    DisplayName = \"Zero Trust - Require MFA and Compliant Device\"\n    State = \"enabled\"\n    Conditions = @{\n        Applications = @{\n            IncludeApplications = @(\"All\")\n        }\n        Users = @{\n            IncludeUsers = @(\"All\")\n            ExcludeGroups = @(\"BreakGlass-Group-ID\")\n        }\n        Locations = @{\n            IncludeLocations = @(\"All\")\n            ExcludeLocations = @(\"AllTrusted\")\n        }\n    }\n    GrantControls = @{\n        Operator = \"AND\"\n        BuiltInControls = @(\"mfa\", \"compliantDevice\")\n    }\n    SessionControls = @{\n        SignInFrequency = @{\n            Value = 4\n            Type = \"hours\"\n            IsEnabled = $true\n        }\n    }\n}\n\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $params\n```\n\n### Step 4: Implement Micro-Segmentation with Network Policies\n\nDeploy network-level micro-segmentation to complement identity-based access controls.\n\n```bash\n# AWS: Create security groups for micro-segmentation\naws ec2 create-security-group \\\n  --group-name web-tier-sg \\\n  --description \"Web tier - only HTTPS from ALB\" \\\n  --vpc-id vpc-PROD\n\naws ec2 authorize-security-group-ingress \\\n  --group-id sg-WEB \\\n  --protocol tcp --port 443 \\\n  --source-group sg-ALB\n\naws ec2 create-security-group \\\n  --group-name app-tier-sg \\\n  --description \"App tier - only from web tier\"\n\naws ec2 authorize-security-group-ingress \\\n  --group-id sg-APP \\\n  --protocol tcp --port 8080 \\\n  --source-group sg-WEB\n\n# Kubernetes NetworkPolicy for pod-level segmentation\ncat \u003C\u003C 'EOF' | kubectl apply -f -\napiVersion: networking.k8s.io\u002Fv1\nkind: NetworkPolicy\nmetadata:\n  name: api-allow-web-only\n  namespace: production\nspec:\n  podSelector:\n    matchLabels:\n      app: api-server\n  policyTypes:\n    - Ingress\n  ingress:\n    - from:\n        - podSelector:\n            matchLabels:\n              app: web-frontend\n      ports:\n        - protocol: TCP\n          port: 8080\nEOF\n```\n\n### Step 5: Enable Continuous Verification and Logging\n\nImplement continuous trust verification rather than one-time authentication.\n\n```bash\n# Configure CloudWatch to monitor access decisions\naws logs create-log-group --log-group-name \u002Fverified-access\u002Faccess-logs\n\n# Enable Verified Access logging\naws ec2 modify-verified-access-instance-logging-configuration \\\n  --verified-access-instance-id vai-INSTANCE_ID \\\n  --access-logs '{\n    \"CloudWatchLogs\": {\n      \"Enabled\": true,\n      \"LogGroup\": \"\u002Fverified-access\u002Faccess-logs\"\n    }\n  }'\n\n# Query access logs for denied requests\naws logs start-query \\\n  --log-group-name \u002Fverified-access\u002Faccess-logs \\\n  --start-time $(date -d \"24 hours ago\" +%s) \\\n  --end-time $(date +%s) \\\n  --query-string '\n    fields @timestamp, identity.user, http_request.url, decision\n    | filter decision = \"deny\"\n    | sort @timestamp desc\n    | limit 50\n  '\n```\n\n## Key Concepts\n\n| Term | Definition |\n|------|------------|\n| Zero Trust | Security model that requires strict identity verification for every person and device accessing resources, regardless of network location |\n| ZTNA | Zero Trust Network Access, the technology that implements zero trust principles by providing identity-aware, context-based access to applications |\n| Identity-Aware Proxy | Proxy service that verifies user identity and device context before allowing access to backend applications, replacing VPN-based access |\n| Micro-Segmentation | Network security technique that creates fine-grained security zones around individual workloads or applications to limit lateral movement |\n| BeyondCorp | Google's implementation of zero trust architecture that shifts access controls from the network perimeter to individual users and devices |\n| Continuous Verification | Ongoing assessment of user identity, device health, and access context throughout a session rather than only at authentication time |\n\n## Tools & Systems\n\n- **GCP Identity-Aware Proxy**: Google's BeyondCorp implementation providing context-aware access to web applications and VMs\n- **AWS Verified Access**: AWS service for zero trust access to applications based on identity and device posture verification\n- **Azure Conditional Access**: Microsoft's policy engine for enforcing context-based access controls based on user, device, location, and risk\n- **Cloudflare Access**: Cloud-delivered ZTNA solution providing identity-aware access to internal applications\n- **Zscaler ZPA**: Enterprise ZTNA platform replacing VPN with application-level access based on identity and context\n\n## Common Scenarios\n\n### Scenario: Replacing Corporate VPN with Zero Trust Access for Cloud Applications\n\n**Context**: An organization with 2,000 employees accesses 30+ internal cloud applications through a traditional VPN concentrator. VPN performance issues and security concerns drive the decision to implement ZTNA.\n\n**Approach**:\n1. Inventory all applications currently accessed through VPN and classify by sensitivity\n2. Deploy GCP IAP or AWS Verified Access for web-based internal applications\n3. Configure conditional access policies requiring MFA and device compliance for all applications\n4. Implement micro-segmentation using security groups to limit lateral movement between application tiers\n5. Set up continuous verification with re-authentication every 4 hours for sensitive applications\n6. Migrate users in phases, starting with low-risk applications, monitoring access logs for issues\n7. Decommission VPN after all applications are accessible through ZTNA with full logging\n\n**Pitfalls**: Not all applications support identity-aware proxy integration. Legacy thick-client applications may require agent-based ZTNA solutions instead of proxy-based approaches. Device posture assessment requires an endpoint management solution deployed to all corporate devices. Break-glass access procedures must be documented for scenarios where the identity provider is unavailable.\n\n## Output Format\n\n```\nZero Trust Network Access Implementation Report\n==================================================\nOrganization: Acme Corp\nImplementation Date: 2026-02-23\nApplications Migrated: 24 \u002F 30\n\nZTNA ARCHITECTURE:\n  Identity Provider: Microsoft Entra ID\n  Access Proxy: AWS Verified Access + GCP IAP\n  Device Management: Microsoft Intune\n  MFA: FIDO2 + Authenticator App\n\nACCESS POLICY COVERAGE:\n  Applications requiring MFA:          30 \u002F 30 (100%)\n  Applications requiring compliant device: 24 \u002F 30 (80%)\n  Applications with continuous verification: 18 \u002F 30 (60%)\n  Applications with location restrictions:  12 \u002F 30 (40%)\n\nSECURITY IMPROVEMENTS:\n  VPN-related incidents (before):      12\u002Fmonth\n  ZTNA-related incidents (after):       2\u002Fmonth\n  Mean time to detect unauthorized access: 4 min (was 2 hours)\n  Lateral movement paths eliminated:   85%\n\nMIGRATION STATUS:\n  Phase 1 (low-risk apps):     12\u002F12 complete\n  Phase 2 (medium-risk apps):  12\u002F12 complete\n  Phase 3 (high-risk apps):     0\u002F6  in progress\n  VPN decommission:            Scheduled after Phase 3\n```\n","# Implementing Zero Trust Network Access\n\n## When to Use\n\n- When replacing traditional VPN-based remote access with identity-based access controls\n- When implementing micro-segmentation to limit lateral movement within cloud networks\n- When compliance or security strategy requires zero trust architecture adoption\n- When providing secure access to cloud workloads without exposing them to the public internet\n- When building context-aware access policies based on user identity, device health, and location\n\n**Do not use** as a complete replacement for network security controls (ZTNA complements but does not replace firewalls and network ACLs), for protecting internet-facing public applications (use WAF), or for IoT device access where identity-based authentication is not feasible.\n\n## Prerequisites\n\n- Identity provider (Entra ID, Okta, Google Workspace) with MFA enforcement\n- Cloud-native networking capabilities (AWS PrivateLink, Azure Private Link, GCP IAP)\n- Device management solution (Intune, Jamf, CrowdStrike) for device posture assessment\n- Service mesh or zero trust proxy (Cloudflare Access, Zscaler ZPA, or cloud-native IAP)\n- Centralized logging for access decisions and policy enforcement\n\n## Workflow\n\n### Step 1: Deploy GCP Identity-Aware Proxy (IAP) for Application Access\n\nConfigure IAP to provide authenticated access to web applications without VPN.\n\n```bash\n# Enable IAP API\ngcloud services enable iap.googleapis.com\n\n# Configure OAuth consent screen\ngcloud iap oauth-brands create \\\n  --application_title=\"Corporate Apps\" \\\n  --support_email=security@company.com\n\n# Enable IAP on an App Engine application\ngcloud iap web enable \\\n  --resource-type=app-engine \\\n  --oauth2-client-id=CLIENT_ID \\\n  --oauth2-client-secret=CLIENT_SECRET\n\n# Enable IAP on a backend service (GCE\u002FGKE)\ngcloud compute backend-services update BACKEND_SERVICE \\\n  --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET \\\n  --global\n\n# Set IAP access policy (who can access)\ngcloud iap web add-iam-policy-binding \\\n  --resource-type=app-engine \\\n  --member=\"group:engineering@company.com\" \\\n  --role=\"roles\u002Fiap.httpsResourceAccessor\"\n\n# Configure access levels based on device and context\ngcloud access-context-manager levels create corporate-device \\\n  --title=\"Corporate Managed Device\" \\\n  --basic-level-spec=level-spec.yaml \\\n  --policy=POLICY_ID\n```\n\n### Step 2: Implement AWS Verified Access for Zero Trust\n\nDeploy AWS Verified Access to provide identity-based access to internal applications.\n\n```bash\n# Create a Verified Access trust provider (OIDC)\naws ec2 create-verified-access-trust-provider \\\n  --trust-provider-type user \\\n  --user-trust-provider-type oidc \\\n  --oidc-options '{\n    \"Issuer\": \"https:\u002F\u002Flogin.microsoftonline.com\u002FTENANT_ID\u002Fv2.0\",\n    \"AuthorizationEndpoint\": \"https:\u002F\u002Flogin.microsoftonline.com\u002FTENANT_ID\u002Foauth2\u002Fv2.0\u002Fauthorize\",\n    \"TokenEndpoint\": \"https:\u002F\u002Flogin.microsoftonline.com\u002FTENANT_ID\u002Foauth2\u002Fv2.0\u002Ftoken\",\n    \"UserInfoEndpoint\": \"https:\u002F\u002Fgraph.microsoft.com\u002Foidc\u002Fuserinfo\",\n    \"ClientId\": \"CLIENT_ID\",\n    \"ClientSecret\": \"CLIENT_SECRET\",\n    \"Scope\": \"openid profile email\"\n  }'\n\n# Create a Verified Access instance\naws ec2 create-verified-access-instance \\\n  --description \"Zero Trust Access Instance\"\n\n# Attach trust provider to instance\naws ec2 attach-verified-access-trust-provider \\\n  --verified-access-instance-id vai-INSTANCE_ID \\\n  --verified-access-trust-provider-id vatp-PROVIDER_ID\n\n# Create a Verified Access group with policy\naws ec2 create-verified-access-group \\\n  --verified-access-instance-id vai-INSTANCE_ID \\\n  --policy-document '{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [{\n      \"Effect\": \"Allow\",\n      \"Principal\": \"*\",\n      \"Action\": \"verified-access:AllowAccess\",\n      \"Condition\": {\n        \"StringEquals\": {\n          \"verified-access:user\u002Fgroups\": \"engineering\"\n        }\n      }\n    }]\n  }'\n\n# Create endpoint for an internal application\naws ec2 create-verified-access-endpoint \\\n  --verified-access-group-id vag-GROUP_ID \\\n  --endpoint-type load-balancer \\\n  --attachment-type vpc \\\n  --domain-certificate-arn arn:aws:acm:REGION:ACCOUNT:certificate\u002FCERT_ID \\\n  --application-domain app.internal.company.com \\\n  --endpoint-domain-prefix app \\\n  --load-balancer-options '{\n    \"LoadBalancerArn\": \"arn:aws:elasticloadbalancing:REGION:ACCOUNT:loadbalancer\u002Fapp\u002Finternal-app\u002Fxxx\",\n    \"Port\": 443,\n    \"Protocol\": \"https\",\n    \"SubnetIds\": [\"subnet-xxx\"]\n  }'\n```\n\n### Step 3: Configure Azure Private Link and Conditional Access\n\nSet up Azure Private Link for network isolation and conditional access for identity-based controls.\n\n```bash\n# Create Private Endpoint for an Azure service\naz network private-endpoint create \\\n  --name app-private-endpoint \\\n  --resource-group production-rg \\\n  --vnet-name production-vnet \\\n  --subnet private-endpoint-subnet \\\n  --private-connection-resource-id \u002Fsubscriptions\u002FSUB_ID\u002FresourceGroups\u002FRG\u002Fproviders\u002FMicrosoft.Web\u002Fsites\u002Finternal-app \\\n  --group-ids sites \\\n  --connection-name app-connection\n\n# Configure private DNS zone for the service\naz network private-dns zone create \\\n  --resource-group production-rg \\\n  --name privatelink.azurewebsites.net\n\naz network private-dns link vnet create \\\n  --resource-group production-rg \\\n  --zone-name privatelink.azurewebsites.net \\\n  --name production-link \\\n  --virtual-network production-vnet \\\n  --registration-enabled false\n```\n\n```powershell\n# Create Conditional Access policy requiring compliant device + MFA\nConnect-MgGraph -Scopes \"Policy.ReadWrite.ConditionalAccess\"\n\n$params = @{\n    DisplayName = \"Zero Trust - Require MFA and Compliant Device\"\n    State = \"enabled\"\n    Conditions = @{\n        Applications = @{\n            IncludeApplications = @(\"All\")\n        }\n        Users = @{\n            IncludeUsers = @(\"All\")\n            ExcludeGroups = @(\"BreakGlass-Group-ID\")\n        }\n        Locations = @{\n            IncludeLocations = @(\"All\")\n            ExcludeLocations = @(\"AllTrusted\")\n        }\n    }\n    GrantControls = @{\n        Operator = \"AND\"\n        BuiltInControls = @(\"mfa\", \"compliantDevice\")\n    }\n    SessionControls = @{\n        SignInFrequency = @{\n            Value = 4\n            Type = \"hours\"\n            IsEnabled = $true\n        }\n    }\n}\n\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $params\n```\n\n### Step 4: Implement Micro-Segmentation with Network Policies\n\nDeploy network-level micro-segmentation to complement identity-based access controls.\n\n```bash\n# AWS: Create security groups for micro-segmentation\naws ec2 create-security-group \\\n  --group-name web-tier-sg \\\n  --description \"Web tier - only HTTPS from ALB\" \\\n  --vpc-id vpc-PROD\n\naws ec2 authorize-security-group-ingress \\\n  --group-id sg-WEB \\\n  --protocol tcp --port 443 \\\n  --source-group sg-ALB\n\naws ec2 create-security-group \\\n  --group-name app-tier-sg \\\n  --description \"App tier - only from web tier\"\n\naws ec2 authorize-security-group-ingress \\\n  --group-id sg-APP \\\n  --protocol tcp --port 8080 \\\n  --source-group sg-WEB\n\n# Kubernetes NetworkPolicy for pod-level segmentation\ncat \u003C\u003C 'EOF' | kubectl apply -f -\napiVersion: networking.k8s.io\u002Fv1\nkind: NetworkPolicy\nmetadata:\n  name: api-allow-web-only\n  namespace: production\nspec:\n  podSelector:\n    matchLabels:\n      app: api-server\n  policyTypes:\n    - Ingress\n  ingress:\n    - from:\n        - podSelector:\n            matchLabels:\n              app: web-frontend\n      ports:\n        - protocol: TCP\n          port: 8080\nEOF\n```\n\n### Step 5: Enable Continuous Verification and Logging\n\nImplement continuous trust verification rather than one-time authentication.\n\n```bash\n# Configure CloudWatch to monitor access decisions\naws logs create-log-group --log-group-name \u002Fverified-access\u002Faccess-logs\n\n# Enable Verified Access logging\naws ec2 modify-verified-access-instance-logging-configuration \\\n  --verified-access-instance-id vai-INSTANCE_ID \\\n  --access-logs '{\n    \"CloudWatchLogs\": {\n      \"Enabled\": true,\n      \"LogGroup\": \"\u002Fverified-access\u002Faccess-logs\"\n    }\n  }'\n\n# Query access logs for denied requests\naws logs start-query \\\n  --log-group-name \u002Fverified-access\u002Faccess-logs \\\n  --start-time $(date -d \"24 hours ago\" +%s) \\\n  --end-time $(date +%s) \\\n  --query-string '\n    fields @timestamp, identity.user, http_request.url, decision\n    | filter decision = \"deny\"\n    | sort @timestamp desc\n    | limit 50\n  '\n```\n\n## Key Concepts\n\n| Term | Definition |\n|------|------------|\n| Zero Trust | Security model that requires strict identity verification for every person and device accessing resources, regardless of network location |\n| ZTNA | Zero Trust Network Access, the technology that implements zero trust principles by providing identity-aware, context-based access to applications |\n| Identity-Aware Proxy | Proxy service that verifies user identity and device context before allowing access to backend applications, replacing VPN-based access |\n| Micro-Segmentation | Network security technique that creates fine-grained security zones around individual workloads or applications to limit lateral movement |\n| BeyondCorp | Google's implementation of zero trust architecture that shifts access controls from the network perimeter to individual users and devices |\n| Continuous Verification | Ongoing assessment of user identity, device health, and access context throughout a session rather than only at authentication time |\n\n## Tools & Systems\n\n- **GCP Identity-Aware Proxy**: Google's BeyondCorp implementation providing context-aware access to web applications and VMs\n- **AWS Verified Access**: AWS service for zero trust access to applications based on identity and device posture verification\n- **Azure Conditional Access**: Microsoft's policy engine for enforcing context-based access controls based on user, device, location, and risk\n- **Cloudflare Access**: Cloud-delivered ZTNA solution providing identity-aware access to internal applications\n- **Zscaler ZPA**: Enterprise ZTNA platform replacing VPN with application-level access based on identity and context\n\n## Common Scenarios\n\n### Scenario: Replacing Corporate VPN with Zero Trust Access for Cloud Applications\n\n**Context**: An organization with 2,000 employees accesses 30+ internal cloud applications through a traditional VPN concentrator. VPN performance issues and security concerns drive the decision to implement ZTNA.\n\n**Approach**:\n1. Inventory all applications currently accessed through VPN and classify by sensitivity\n2. Deploy GCP IAP or AWS Verified Access for web-based internal applications\n3. Configure conditional access policies requiring MFA and device compliance for all applications\n4. Implement micro-segmentation using security groups to limit lateral movement between application tiers\n5. Set up continuous verification with re-authentication every 4 hours for sensitive applications\n6. Migrate users in phases, starting with low-risk applications, monitoring access logs for issues\n7. Decommission VPN after all applications are accessible through ZTNA with full logging\n\n**Pitfalls**: Not all applications support identity-aware proxy integration. Legacy thick-client applications may require agent-based ZTNA solutions instead of proxy-based approaches. Device posture assessment requires an endpoint management solution deployed to all corporate devices. Break-glass access procedures must be documented for scenarios where the identity provider is unavailable.\n\n## Output Format\n\n```\nZero Trust Network Access Implementation Report\n==================================================\nOrganization: Acme Corp\nImplementation Date: 2026-02-23\nApplications Migrated: 24 \u002F 30\n\nZTNA ARCHITECTURE:\n  Identity Provider: Microsoft Entra ID\n  Access Proxy: AWS Verified Access + GCP IAP\n  Device Management: Microsoft Intune\n  MFA: FIDO2 + Authenticator App\n\nACCESS POLICY COVERAGE:\n  Applications requiring MFA:          30 \u002F 30 (100%)\n  Applications requiring compliant device: 24 \u002F 30 (80%)\n  Applications with continuous verification: 18 \u002F 30 (60%)\n  Applications with location restrictions:  12 \u002F 30 (40%)\n\nSECURITY IMPROVEMENTS:\n  VPN-related incidents (before):      12\u002Fmonth\n  ZTNA-related incidents (after):       2\u002Fmonth\n  Mean time to detect unauthorized access: 4 min (was 2 hours)\n  Lateral movement paths eliminated:   85%\n\nMIGRATION STATUS:\n  Phase 1 (low-risk apps):     12\u002F12 complete\n  Phase 2 (medium-risk apps):  12\u002F12 complete\n  Phase 3 (high-risk apps):     0\u002F6  in progress\n  VPN decommission:            Scheduled after Phase 3\n```\n",{"name":5,"tags":49,"author":50,"domain":43,"license":15,"version":51,"nist_csf":52,"subdomain":37,"description":7,"mitre_attack":57},[37,35,34,30,33,28],"mahipal","1.0",[53,54,55,56],"PR.IR-01","ID.AM-08","GV.SC-06","DE.CM-01",[58,59,60,61],"T1078.004","T1530","T1537","T1580","main","54a798831d2266a3ca61ce68a7acb80b81160d57","skills\u002Fimplementing-zero-trust-network-access",4395,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills","https:\u002F\u002Fmahipal.engineer\u002FAnthropic-Cybersecurity-Skills\u002F","https:\u002F\u002Fgithub.com\u002Fmukul975","Mahipal.engineer","🔐 Cybersecurity | 💻 Dev | 📷 Street Photographer\r\n🎓 MSc | 📚 Research & AI Security","2026-08-31 12:32:44",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":84},[74,77,80],{"tool":75,"command":76},"npx","npx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill implementing-zero-trust-network-access",{"tool":78,"command":79},"bunx","bunx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill implementing-zero-trust-network-access",{"tool":81,"command":82},"pnpm","pnpm dlx skills add mukul975\u002FAnthropic-Cybersecurity-Skills --skill implementing-zero-trust-network-access","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fimplementing-zero-trust-network-access\u002FSKILL.md",true,[86,91,95,101],{"path":87,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"LICENSE","许可证",11255,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fimplementing-zero-trust-network-access\u002FLICENSE",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"LICENSE.txt",143,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-competitor-pages\u002FLICENSE.txt",{"path":96,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fapi-reference.md","REFERENCE","参考文档",2786,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fimplementing-zero-trust-network-access\u002Freferences\u002Fapi-reference.md",{"path":102,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":105,"sourceHtmlUrl":106},"scripts\u002Fagent.py","SCRIPT","脚本",6808,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fimplementing-zero-trust-network-access\u002Fscripts\u002Fagent.py",[108,132,154,181,207,234],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":115,"publishedAt":44},"01M6AGDM3HJXTKXX15ZZ0ZVCJ3","verifying-build-provenance-with-slsa-sigstore","Verifies artifact signatures and SLSA provenance using Sigstore's cosign (verify, verify-attestation, verify-blob-attestation) and slsa-verifier (verify-artifact), enforcing keyless OIDC builder identity and source repo against SLSA Build levels. Use in CI\u002FCD before deploying artifacts, when consuming third-party attestations, establishing a SLSA Build L3 pipeline, or confirming provenance during incident response or admission control.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-build-provenance-with-slsa-sigstore\u002FSKILL.md",[114],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[116,117,118,119,36,43,120,42,40,121,122,123,124,125,126,127,128,129,130,131],"sigstore","provenance","slsa","verifying build provenance with slsa sigstore","incident response","code","artifacts","ci","supply-chain","pipeline","supply-chain-security","t1195","attestation","code-signing","cosign","keyless",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":139,"publishedAt":44},"01M6AGDGBPWYVZ2F11GFKJ4HZ9","validating-tpm-measured-boot-attestation","Verifies TPM 2.0 measured-boot integrity and remote attestation with tpm2-tools -- reading PCRs (tpm2_pcrread), replaying the boot event log, generating and checking signed quotes (tpm2_quote\u002Ftpm2_checkquote), and sealing secrets to a PCR policy. Use to confirm a system booted trusted firmware\u002Fkernel for Zero Trust device posture, detect boot-chain tampering via PCR drift, or build a golden-value baseline for fleet attestation.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fvalidating-tpm-measured-boot-attestation\u002FSKILL.md",[138],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[140,128,141,142,36,143,43,40,39,25,144,145,146,147,148,149,150,151,152,153],"boot","TPM","validating tpm measured boot attestation","policy","firmware","Tools","measured-boot","PCR","integrity","secrets","remote-attestation","tpm2-tools","integrity-verification","trusted-computing",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":164,"publishedAt":44},"01M6AGDCW0Y4FXZ3362GT1941M","validating-backup-integrity-for-recovery","Validates backup integrity through cryptographic hash verification, automated restore testing, corruption detection, and recoverability checks to confirm backups are reliable for disaster recovery and ransomware response. Use before relying on backups for recovery, when building post-backup validation pipelines, auditing backup infrastructure for compliance, or checking immutable\u002Fair-gapped backups for silent corruption or tampering.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fvalidating-backup-integrity-for-recovery\u002FSKILL.md",[160,163],{"categoryNo":161,"categoryName":162,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[148,165,166,167,168,43,169,170,39,171,172,173,174,175,176,31,177,178,179,180],"backup","recovery","validating backup integrity for recovery","testing","infrastructure","validation","compliance","hash-verification","incident-response","ransomware","cryptocurrency","detection","t1490","immutable","disaster-recovery","restore-testing",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":44},"01M6AGD9GBG2KZ336AE763J3WH","triaging-windows-with-kape","Runs KAPE (Kroll Artifact Parser and Extractor) to collect targeted forensic artifacts (registry hives, $MFT, event logs, prefetch, browser data) via Targets and parse them with Modules wrapping Eric Zimmerman's EZ Tools (PECmd, MFTECmd, RECmd). Use during early incident containment\u002Ftriage when full disk imaging is impractical but a defensible, parseable Windows artifact set is needed quickly, including at-scale remote collection.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-windows-with-kape\u002FSKILL.md",[187],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[189,190,191,43,192,193,194,195,196,197,198,199,200,201,202,203,145,204,205,206],"windows","kape","triaging windows with kape","registry","browser","logs","windows-forensics","dfir","mft","mftecmd","data","prefetch","eric-zimmerman","digital-forensics","SET","collection","pecmd","artifact-collection",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":214,"publishedAt":44},"01M6AGD5PW5J4EVZM958WD74ZQ","triaging-vulnerabilities-with-ssvc-framework","Triages and prioritizes vulnerabilities with CISA's Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree, weighing exploitation status (via the CISA KEV catalog and FIRST EPSS API), technical impact, automatability, and mission prevalence to output Track\u002FTrack*\u002FAttend\u002FAct decisions. Use when prioritizing vulnerability scan results (OpenVAS, Nessus, Qualys) for remediation planning beyond raw CVSS scores.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-vulnerabilities-with-ssvc-framework\u002FSKILL.md",[213],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[215,216,217,43,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233],"vulnerabilities","framework","triaging vulnerabilities with ssvc framework","status","planning","CISA","vulnerability-management","risk-management","nessus","qualys","openvas","cvss","remediation","risk","vulnerability","api","prioritization","ssvc","decision-tree",{"skillNo":235,"name":236,"nameZh":6,"description":237,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":238,"categories":239,"keywords":241,"publishedAt":44},"01M6AGD24TTQQM4CXG69E3B9TJ","triaging-security-incident","Performs initial triage of security incidents using the NIST SP 800-61r3 and SANS PICERL frameworks, classifying incident type, assigning priority by business impact, and routing to the appropriate response team. Use when a SIEM\u002FEDR alert needs human classification, concurrent alerts must be prioritized, or a user report or threat-intel IOC match requires initial incident categorization.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriaging-security-incident\u002FSKILL.md",[240],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[36,242,43,243,244,245,246,247,248,249,250,31,251,177,252,253,254,255,256,257],"triaging security incident","siem","file","ioc","soc","NIST-800-61","NIST","severity","edr","execution","analysis","classification","severity-classification","incident-triage","SANS-PICERL","SOC-operations"]