aws-networking-audit
AWS VPC networking audit covering CIDR architecture, Security Group and NACL rule analysis, Transit Gateway connectivity, VPC Flow Log forensics, Route Table validation, and ENI/EIP resource optimization using read-only AWS CLI commands.
What this skill does
# AWS VPC Networking Security Audit Cloud resource audit for AWS Virtual Private Cloud (VPC) architecture, security posture, and connectivity. This skill evaluates provider-specific AWS networking constructs — VPC design, Security Groups, NACLs, Transit Gateway topologies, VPC Flow Logs, Route Tables, and ENI placement — not generic cloud networking advice. Scope covers VPC-layer networking: CIDR planning, subnet tier layout, security filtering, inter-VPC connectivity, and traffic observability. Out of scope: CloudFront distributions, WAF rules, application-layer load balancing (ALB content routing), and DNS (Route 53) configuration. Reference `references/cli-reference.md` for read-only AWS CLI commands organized by audit step, and `references/vpc-architecture.md` for the VPC packet flow model, Security Group vs NACL evaluation order, and Transit Gateway routing architecture. ## When to Use - VPC architecture design review — validating CIDR allocation, subnet tier layout, and AZ distribution before or after deployment - Post-migration networking audit — verifying VPC connectivity, Security Group rules, and Route Table entries after workload migration - Security assessment — identifying overly permissive Security Group rules, default NACL exposure, and missing VPC Flow Log coverage - Connectivity troubleshooting — diagnosing Transit Gateway route propagation failures, VPC peering asymmetric routing, or black-hole routes - Compliance preparation — documenting VPC segmentation, Security Group justification, and Flow Log retention for auditors - Cost optimization review — identifying unused Elastic Network Interfaces (ENIs), unattached Elastic IPs (EIPs), and cross-AZ traffic patterns ## Prerequisites - **AWS CLI v2** configured with valid credentials (`aws sts get-caller-identity` succeeds) - **IAM permissions** — minimum read-only policy covering: `ec2:DescribeVpcs`, `ec2:DescribeSubnets`, `ec2:DescribeSecurityGroups`, `ec2:DescribeNetworkAcls`, `ec2:DescribeTransitGateways`, `ec2:DescribeTransitGatewayRouteTables`, `ec2:DescribeRouteTables`, `ec2:DescribeFlowLogs`, `ec2:DescribeNetworkInterfaces`, `ec2:DescribeVpcPeeringConnections`, `ec2:DescribeVpcEndpoints`, `ec2:DescribeAddresses`, `logs:FilterLogEvents`, `logs:DescribeLogGroups` - **Target scope identified** — specific VPC ID(s), AWS account, and region. Multi-account audits require cross-account IAM roles or AWS Organizations access - **VPC Flow Logs enabled** — Step 4 requires active Flow Logs publishing to CloudWatch Logs or S3. If Flow Logs are not enabled, document this as a Critical finding ## Procedure Follow these six steps sequentially. Each step builds on prior findings, moving from inventory through security analysis to optimization. ### Step 1: VPC Inventory and Design Assessment Enumerate all VPCs in the target region and assess architectural design. ``` aws ec2 describe-vpcs --region <region> --output table aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --output table ``` For each VPC, evaluate: - **CIDR block allocation:** Primary and secondary CIDR blocks. Check for RFC 1918 compliance, overlapping CIDRs across VPCs (blocks peering), and sufficient address space for growth. VPCs support up to 5 CIDR blocks. - **Subnet tier layout:** Identify public subnets (Route Table routes to Internet Gateway), private subnets (Route Table routes to NAT Gateway), and isolated subnets (no internet route). Verify each tier exists and workloads are placed in the correct tier. - **Availability Zone distribution:** Subnets should span at least 2 AZs for resilience. Single-AZ VPC designs are a High finding. - **DNS settings:** Verify `enableDnsSupport` and `enableDnsHostnames` are enabled — required for VPC endpoints and private DNS resolution. - **Tenancy:** Default vs dedicated. Dedicated tenancy has significant cost implications; verify it is intentional. ### Step 2: Security Group and NACL Analysis Audit stateful Security Group rules and stateless NACL rules for overly permissive access. **Security Group analysis:** ``` aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" ``` For each Security Group, evaluate inbound and outbound rules: - **0.0.0.0/0 inbound rules:** Any Security Group rule permitting inbound from `0.0.0.0/0` (or `::/0`) is a finding. Severity depends on port: SSH/RDP from 0.0.0.0/0 is Critical; HTTPS from 0.0.0.0/0 on a public ALB may be acceptable. - **SG-to-ENI mapping on public subnets:** Cross-reference Security Groups with ENIs on public subnets. An overly permissive Security Group attached to an ENI in a public subnet with a public IP is higher risk than the same Security Group on a private subnet. - **Default Security Group:** The VPC default Security Group allows all inbound from itself and all outbound. If any ENI uses the default Security Group, flag as Medium — workloads should use purpose-specific Security Groups. - **Unused Security Groups:** Security Groups with no associated ENIs are cleanup candidates. **NACL analysis:** ``` aws ec2 describe-network-acls --filters "Name=vpc-id,Values=<vpc-id>" ``` NACLs are stateless — evaluate both inbound and outbound rule sets: - **Rule ordering:** NACLs evaluate rules by rule number (lowest first). A broad permit at rule 100 cannot be overridden by a deny at rule 200. Verify deny rules are numbered lower than corresponding permits. - **Default NACL:** Allows all inbound and outbound traffic. Subnets using the default NACL have no network-layer filtering beyond Security Groups. Flag as Medium if used on production subnets. - **Ephemeral port range:** Outbound NACLs must permit ephemeral ports (1024–65535) for return traffic. Missing ephemeral port rules break TCP connections. ### Step 3: Transit Gateway and Connectivity Assessment Evaluate inter-VPC and hybrid connectivity through Transit Gateway (TGW), VPC Peering, and VPC Endpoints. **Transit Gateway:** ``` aws ec2 describe-transit-gateways aws ec2 describe-transit-gateway-route-tables --transit-gateway-id <tgw-id> aws ec2 search-transit-gateway-routes --transit-gateway-route-table-id <tgw-rt-id> --filters "Name=state,Values=active" ``` - **TGW route table associations:** Each VPC attachment should be associated with the correct TGW Route Table. Misassociations cause traffic to route to wrong VPCs. - **Route propagation:** Verify propagation is enabled for VPC attachments that need dynamic routing. Disabled propagation requires manual static routes — check for stale entries. - **TGW peering:** For multi-region Transit Gateway peering, verify routes are propagated across regions and CIDR blocks don't overlap. **VPC Peering:** ``` aws ec2 describe-vpc-peering-connections --filters "Name=status-code,Values=active" ``` - **Route validation:** VPC peering is non-transitive. Verify Route Tables in both VPCs contain routes pointing to the peering connection for the peer CIDR. Missing routes cause silent packet drops. - **DNS resolution:** Check `AllowDnsResolutionFromRemoteVpc` for cross-VPC private DNS. **VPC Endpoints:** ``` aws ec2 describe-vpc-endpoints --filters "Name=vpc-id,Values=<vpc-id>" ``` - **Gateway endpoints:** S3 and DynamoDB. Verify Route Table entries exist for gateway endpoint prefix lists. - **Interface endpoints (PrivateLink):** Verify ENI placement in appropriate subnets and Security Group rules permit traffic from workloads. ### Step 4: VPC Flow Log Analysis Analyze VPC Flow Logs for security events and traffic patterns. ``` aws ec2 describe-flow-logs --filter "Name=resource-id,Values=<vpc-id>" ``` Verify Flow Logs are enabled at the VPC level (not just subnet or ENI level) with REJECT and ACCEPT capture. If Flow Logs are not enabled, document as Critical and recommend enabling before further analysis. For active Flow Logs, query CloudWatch Logs: ``` aws logs filter-log-events --log-group-name <flow-log-group> --filter-pattern "REJECT" ``` Analyze patterns: - **Reject patterns:*
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.