opencode-skills-collection 4.0.68 → 4.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +266 -1
  2. package/bundled-skills/access-review/SKILL.md +394 -0
  3. package/bundled-skills/access-review/references/details.md +121 -0
  4. package/bundled-skills/agent-evals/SKILL.md +420 -0
  5. package/bundled-skills/agent-observability/SKILL.md +346 -0
  6. package/bundled-skills/agent-observability/references/details.md +786 -0
  7. package/bundled-skills/ai-agent-security/SKILL.md +393 -0
  8. package/bundled-skills/ai-agent-security/references/details.md +912 -0
  9. package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
  10. package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
  11. package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
  12. package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
  13. package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
  14. package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
  15. package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
  16. package/bundled-skills/alerting-oncall/SKILL.md +458 -0
  17. package/bundled-skills/alerting-oncall/references/details.md +84 -0
  18. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  19. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  20. package/bundled-skills/arm-templates/SKILL.md +438 -0
  21. package/bundled-skills/arm-templates/references/details.md +64 -0
  22. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  23. package/bundled-skills/asset-inventory/references/details.md +127 -0
  24. package/bundled-skills/audit-logging/SKILL.md +476 -0
  25. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  26. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  27. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  28. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  29. package/bundled-skills/aws-iam/SKILL.md +463 -0
  30. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  31. package/bundled-skills/aws-rds/SKILL.md +380 -0
  32. package/bundled-skills/aws-s3/SKILL.md +434 -0
  33. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  34. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  35. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  36. package/bundled-skills/azure-aks/SKILL.md +423 -0
  37. package/bundled-skills/azure-devops/SKILL.md +457 -0
  38. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  39. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  40. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  41. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  42. package/bundled-skills/azure-networking/SKILL.md +448 -0
  43. package/bundled-skills/azure-networking/references/details.md +135 -0
  44. package/bundled-skills/azure-sql/SKILL.md +413 -0
  45. package/bundled-skills/azure-sql/references/details.md +113 -0
  46. package/bundled-skills/azure-vms/SKILL.md +402 -0
  47. package/bundled-skills/azure-vms/references/details.md +134 -0
  48. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  49. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  50. package/bundled-skills/bb-methodology/references/details.md +120 -0
  51. package/bundled-skills/block-storage/SKILL.md +371 -0
  52. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  53. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  54. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  55. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  56. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  57. package/bundled-skills/business-continuity/SKILL.md +463 -0
  58. package/bundled-skills/career-ops/SKILL.md +186 -0
  59. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  60. package/bundled-skills/change-management/SKILL.md +438 -0
  61. package/bundled-skills/change-management/references/details.md +105 -0
  62. package/bundled-skills/circleci/SKILL.md +475 -0
  63. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  64. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  65. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  66. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  67. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  68. package/bundled-skills/cloudformation/SKILL.md +461 -0
  69. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  70. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  71. package/bundled-skills/container-hardening/SKILL.md +126 -0
  72. package/bundled-skills/container-registries/SKILL.md +435 -0
  73. package/bundled-skills/container-scanning/SKILL.md +416 -0
  74. package/bundled-skills/convex-backend/SKILL.md +338 -0
  75. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  76. package/bundled-skills/database-backups/SKILL.md +425 -0
  77. package/bundled-skills/datadog/SKILL.md +487 -0
  78. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  79. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  80. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  81. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  82. package/bundled-skills/dns-management/SKILL.md +375 -0
  83. package/bundled-skills/docker-compose/SKILL.md +482 -0
  84. package/bundled-skills/docker-management/SKILL.md +426 -0
  85. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  86. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  87. package/bundled-skills/elk-stack/SKILL.md +487 -0
  88. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  89. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  90. package/bundled-skills/feature-flags/SKILL.md +426 -0
  91. package/bundled-skills/feature-flags/references/details.md +86 -0
  92. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  93. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  94. package/bundled-skills/firewall-config/SKILL.md +479 -0
  95. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  96. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  97. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  98. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  99. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  100. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  101. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  102. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  103. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  104. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  105. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  106. package/bundled-skills/geo-audit/SKILL.md +368 -0
  107. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  108. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  109. package/bundled-skills/geo-citability/SKILL.md +350 -0
  110. package/bundled-skills/geo-compare/SKILL.md +340 -0
  111. package/bundled-skills/geo-content/SKILL.md +383 -0
  112. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  113. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  114. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  115. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  116. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  117. package/bundled-skills/geo-report/SKILL.md +436 -0
  118. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  119. package/bundled-skills/geo-schema/SKILL.md +408 -0
  120. package/bundled-skills/geo-technical/SKILL.md +78 -0
  121. package/bundled-skills/geo-technical/references/details.md +543 -0
  122. package/bundled-skills/git-workflow/SKILL.md +460 -0
  123. package/bundled-skills/github-actions/SKILL.md +368 -0
  124. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  125. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  126. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  127. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  128. package/bundled-skills/helm-charts/SKILL.md +469 -0
  129. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  130. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  131. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  132. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  133. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  134. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  135. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  136. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  137. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  138. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  139. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  140. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  141. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  142. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  143. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  144. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  145. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  146. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  147. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  148. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  149. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  150. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  151. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  152. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  153. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  154. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  155. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  156. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  157. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  158. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  159. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  160. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  161. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  162. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  163. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  164. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  165. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  166. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  167. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  168. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  169. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  170. package/bundled-skills/hunt-rce/references/details.md +110 -0
  171. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  172. package/bundled-skills/hunt-session/SKILL.md +342 -0
  173. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  174. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  175. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  176. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  177. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  178. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  179. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  180. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  181. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  182. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  183. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  184. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  185. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  186. package/bundled-skills/identity-access-management/references/details.md +524 -0
  187. package/bundled-skills/incident-management/SKILL.md +484 -0
  188. package/bundled-skills/incident-response/SKILL.md +448 -0
  189. package/bundled-skills/incident-response/references/details.md +113 -0
  190. package/bundled-skills/interview-me/SKILL.md +248 -0
  191. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  192. package/bundled-skills/jenkins/SKILL.md +462 -0
  193. package/bundled-skills/jev-use/SKILL.md +158 -0
  194. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  195. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  196. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  197. package/bundled-skills/kustomize/SKILL.md +478 -0
  198. package/bundled-skills/linux-administration/SKILL.md +367 -0
  199. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  200. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  201. package/bundled-skills/llm-app-security/references/details.md +674 -0
  202. package/bundled-skills/llm-caching/SKILL.md +334 -0
  203. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  204. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  205. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  206. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  207. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  208. package/bundled-skills/load-balancing/SKILL.md +403 -0
  209. package/bundled-skills/loki-logging/SKILL.md +479 -0
  210. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  211. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  212. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  213. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  214. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  215. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  216. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  217. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  218. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  219. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  220. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  221. package/bundled-skills/mongodb/SKILL.md +436 -0
  222. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  223. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  224. package/bundled-skills/mysql/SKILL.md +390 -0
  225. package/bundled-skills/new-relic/SKILL.md +472 -0
  226. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  227. package/bundled-skills/object-storage/SKILL.md +378 -0
  228. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  229. package/bundled-skills/okta-attack/SKILL.md +436 -0
  230. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  231. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  232. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  233. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  234. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  235. package/bundled-skills/openshift/SKILL.md +485 -0
  236. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  237. package/bundled-skills/opentelemetry/references/details.md +78 -0
  238. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  239. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  240. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  241. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  242. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  243. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  244. package/bundled-skills/planetscale/SKILL.md +297 -0
  245. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  246. package/bundled-skills/platform-engineering/references/details.md +944 -0
  247. package/bundled-skills/podman/SKILL.md +405 -0
  248. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  249. package/bundled-skills/policy-as-code/references/details.md +204 -0
  250. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  251. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  252. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  253. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  254. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  255. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  256. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  257. package/bundled-skills/redis/SKILL.md +421 -0
  258. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  259. package/bundled-skills/report-writing/SKILL.md +426 -0
  260. package/bundled-skills/report-writing/references/details.md +187 -0
  261. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  262. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  263. package/bundled-skills/runbook-creation/references/details.md +71 -0
  264. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  265. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  266. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  267. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  268. package/bundled-skills/security-arsenal/references/details.md +540 -0
  269. package/bundled-skills/security-automation/SKILL.md +146 -0
  270. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  271. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  272. package/bundled-skills/service-mesh/SKILL.md +422 -0
  273. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  274. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  275. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  276. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  277. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  278. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  279. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  280. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  281. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  282. package/bundled-skills/systemd-services/SKILL.md +379 -0
  283. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  284. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  285. package/bundled-skills/terraform-azure/references/details.md +231 -0
  286. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  287. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  288. package/bundled-skills/user-management/SKILL.md +383 -0
  289. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  290. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  291. package/bundled-skills/vendor-management/SKILL.md +439 -0
  292. package/bundled-skills/vendor-management/references/details.md +109 -0
  293. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  294. package/bundled-skills/vllm-server/SKILL.md +236 -0
  295. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  296. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  297. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  298. package/bundled-skills/waf-setup/SKILL.md +354 -0
  299. package/bundled-skills/waf-setup/references/details.md +211 -0
  300. package/bundled-skills/web2-recon/SKILL.md +440 -0
  301. package/bundled-skills/web2-recon/references/details.md +319 -0
  302. package/bundled-skills/web3-audit/SKILL.md +445 -0
  303. package/bundled-skills/web3-audit/references/details.md +224 -0
  304. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  305. package/bundled-skills/windows-hardening/references/details.md +204 -0
  306. package/bundled-skills/windows-server/SKILL.md +318 -0
  307. package/bundled-skills/zero-trust/SKILL.md +461 -0
  308. package/package.json +1 -1
  309. package/skills_index.json +6943 -323
@@ -0,0 +1,436 @@
1
+ ---
2
+ name: aws-vpc
3
+ description: Design and implement VPCs and networking. Configure subnets, route tables,
4
+ and security groups. Use when setting up AWS network infrastructure.
5
+ category: devops
6
+ risk: critical
7
+ source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
8
+ source_repo: BagelHole/DevOps-Security-Agent-Skills
9
+ source_type: community
10
+ date_added: '2026-09-20'
11
+ license: MIT
12
+ license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
13
+ compatibility: Requires the relevant OS/platform tooling and privileged access where
14
+ noted. Docs-only; helper scripts and templates not bundled.
15
+ metadata:
16
+ author: devops-skills
17
+ version: '1.0'
18
+ ---
19
+
20
+ # AWS VPC
21
+
22
+ Design and manage Virtual Private Cloud networking for production AWS environments with proper subnet isolation, routing, and security.
23
+
24
+ ## When to Use This Skill
25
+
26
+ - Building a new VPC for production, staging, or development
27
+ - Setting up public/private subnet architecture across multiple AZs
28
+ - Configuring NAT Gateways for private subnet internet access
29
+ - Creating security groups and NACLs for network segmentation
30
+ - Setting up VPC peering or Transit Gateway for multi-VPC connectivity
31
+ - Implementing VPC endpoints for private access to AWS services
32
+ - Troubleshooting connectivity issues between resources
33
+
34
+ ## Prerequisites
35
+
36
+ - AWS CLI v2 installed and configured
37
+ - IAM permissions: `ec2:*` (or scoped to VPC-related actions)
38
+ - CIDR range planning completed (avoid overlaps with on-premises or other VPCs)
39
+ - For VPC peering: access to both VPCs (same or different accounts)
40
+
41
+ ## Network Architecture
42
+
43
+ ```
44
+ VPC (10.0.0.0/16) - 65,536 IPs
45
+ ├── Public Subnets (internet-facing via IGW)
46
+ │ ├── 10.0.1.0/24 (us-east-1a) - 256 IPs - ALBs, NAT GW, bastion
47
+ │ ├── 10.0.2.0/24 (us-east-1b) - 256 IPs
48
+ │ └── 10.0.3.0/24 (us-east-1c) - 256 IPs
49
+ ├── Private Subnets (app tier, NAT GW for outbound)
50
+ │ ├── 10.0.11.0/24 (us-east-1a) - 256 IPs - ECS, EC2, Lambda
51
+ │ ├── 10.0.12.0/24 (us-east-1b) - 256 IPs
52
+ │ └── 10.0.13.0/24 (us-east-1c) - 256 IPs
53
+ ├── Data Subnets (isolated, no internet)
54
+ │ ├── 10.0.21.0/24 (us-east-1a) - 256 IPs - RDS, ElastiCache
55
+ │ ├── 10.0.22.0/24 (us-east-1b) - 256 IPs
56
+ │ └── 10.0.23.0/24 (us-east-1c) - 256 IPs
57
+ ├── Internet Gateway
58
+ ├── NAT Gateways (one per AZ for HA)
59
+ ├── Route Tables (public, private, data)
60
+ └── VPC Flow Logs → CloudWatch / S3
61
+ ```
62
+
63
+ ## Create a VPC with CLI
64
+
65
+ ```bash
66
+ # Create the VPC
67
+ VPC_ID=$(aws ec2 create-vpc \
68
+ --cidr-block 10.0.0.0/16 \
69
+ --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=production-vpc},{Key=Environment,Value=production}]' \
70
+ --query 'Vpc.VpcId' --output text)
71
+
72
+ # Enable DNS support and hostnames
73
+ aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-support '{"Value":true}'
74
+ aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnames '{"Value":true}'
75
+
76
+ # Create public subnets
77
+ PUB_SUB_A=$(aws ec2 create-subnet \
78
+ --vpc-id $VPC_ID \
79
+ --cidr-block 10.0.1.0/24 \
80
+ --availability-zone us-east-1a \
81
+ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=public-a},{Key=Tier,Value=public}]' \
82
+ --query 'Subnet.SubnetId' --output text)
83
+
84
+ PUB_SUB_B=$(aws ec2 create-subnet \
85
+ --vpc-id $VPC_ID \
86
+ --cidr-block 10.0.2.0/24 \
87
+ --availability-zone us-east-1b \
88
+ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=public-b},{Key=Tier,Value=public}]' \
89
+ --query 'Subnet.SubnetId' --output text)
90
+
91
+ # Enable auto-assign public IP on public subnets
92
+ aws ec2 modify-subnet-attribute --subnet-id $PUB_SUB_A --map-public-ip-on-launch
93
+ aws ec2 modify-subnet-attribute --subnet-id $PUB_SUB_B --map-public-ip-on-launch
94
+
95
+ # Create private subnets
96
+ PRIV_SUB_A=$(aws ec2 create-subnet \
97
+ --vpc-id $VPC_ID \
98
+ --cidr-block 10.0.11.0/24 \
99
+ --availability-zone us-east-1a \
100
+ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=private-a},{Key=Tier,Value=private}]' \
101
+ --query 'Subnet.SubnetId' --output text)
102
+
103
+ PRIV_SUB_B=$(aws ec2 create-subnet \
104
+ --vpc-id $VPC_ID \
105
+ --cidr-block 10.0.12.0/24 \
106
+ --availability-zone us-east-1b \
107
+ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=private-b},{Key=Tier,Value=private}]' \
108
+ --query 'Subnet.SubnetId' --output text)
109
+
110
+ # Create data subnets (isolated)
111
+ DATA_SUB_A=$(aws ec2 create-subnet \
112
+ --vpc-id $VPC_ID \
113
+ --cidr-block 10.0.21.0/24 \
114
+ --availability-zone us-east-1a \
115
+ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=data-a},{Key=Tier,Value=data}]' \
116
+ --query 'Subnet.SubnetId' --output text)
117
+
118
+ DATA_SUB_B=$(aws ec2 create-subnet \
119
+ --vpc-id $VPC_ID \
120
+ --cidr-block 10.0.22.0/24 \
121
+ --availability-zone us-east-1b \
122
+ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=data-b},{Key=Tier,Value=data}]' \
123
+ --query 'Subnet.SubnetId' --output text)
124
+ ```
125
+
126
+ ## Internet Gateway and NAT Gateway
127
+
128
+ ```bash
129
+ # Create and attach Internet Gateway
130
+ IGW_ID=$(aws ec2 create-internet-gateway \
131
+ --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=production-igw}]' \
132
+ --query 'InternetGateway.InternetGatewayId' --output text)
133
+ aws ec2 attach-internet-gateway --vpc-id $VPC_ID --internet-gateway-id $IGW_ID
134
+
135
+ # Create public route table
136
+ PUB_RT=$(aws ec2 create-route-table \
137
+ --vpc-id $VPC_ID \
138
+ --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=public-rt}]' \
139
+ --query 'RouteTable.RouteTableId' --output text)
140
+ aws ec2 create-route --route-table-id $PUB_RT --destination-cidr-block 0.0.0.0/0 --gateway-id $IGW_ID
141
+ aws ec2 associate-route-table --route-table-id $PUB_RT --subnet-id $PUB_SUB_A
142
+ aws ec2 associate-route-table --route-table-id $PUB_RT --subnet-id $PUB_SUB_B
143
+
144
+ # Allocate Elastic IPs for NAT Gateways (one per AZ for HA)
145
+ EIP_A=$(aws ec2 allocate-address --domain vpc --query 'AllocationId' --output text)
146
+ EIP_B=$(aws ec2 allocate-address --domain vpc --query 'AllocationId' --output text)
147
+
148
+ # Create NAT Gateways in public subnets
149
+ NAT_A=$(aws ec2 create-nat-gateway \
150
+ --subnet-id $PUB_SUB_A \
151
+ --allocation-id $EIP_A \
152
+ --tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=nat-a}]' \
153
+ --query 'NatGateway.NatGatewayId' --output text)
154
+
155
+ NAT_B=$(aws ec2 create-nat-gateway \
156
+ --subnet-id $PUB_SUB_B \
157
+ --allocation-id $EIP_B \
158
+ --tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=nat-b}]' \
159
+ --query 'NatGateway.NatGatewayId' --output text)
160
+
161
+ # Wait for NAT Gateways
162
+ aws ec2 wait nat-gateway-available --nat-gateway-ids $NAT_A $NAT_B
163
+
164
+ # Create private route tables (one per AZ for HA NAT)
165
+ PRIV_RT_A=$(aws ec2 create-route-table \
166
+ --vpc-id $VPC_ID \
167
+ --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=private-rt-a}]' \
168
+ --query 'RouteTable.RouteTableId' --output text)
169
+ aws ec2 create-route --route-table-id $PRIV_RT_A --destination-cidr-block 0.0.0.0/0 --nat-gateway-id $NAT_A
170
+ aws ec2 associate-route-table --route-table-id $PRIV_RT_A --subnet-id $PRIV_SUB_A
171
+
172
+ PRIV_RT_B=$(aws ec2 create-route-table \
173
+ --vpc-id $VPC_ID \
174
+ --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=private-rt-b}]' \
175
+ --query 'RouteTable.RouteTableId' --output text)
176
+ aws ec2 create-route --route-table-id $PRIV_RT_B --destination-cidr-block 0.0.0.0/0 --nat-gateway-id $NAT_B
177
+ aws ec2 associate-route-table --route-table-id $PRIV_RT_B --subnet-id $PRIV_SUB_B
178
+ ```
179
+
180
+ ## Security Groups
181
+
182
+ ```bash
183
+ # ALB security group (public-facing)
184
+ ALB_SG=$(aws ec2 create-security-group \
185
+ --group-name alb-sg \
186
+ --description "Application Load Balancer" \
187
+ --vpc-id $VPC_ID \
188
+ --query 'GroupId' --output text)
189
+ aws ec2 authorize-security-group-ingress --group-id $ALB_SG --protocol tcp --port 443 --cidr 0.0.0.0/0
190
+ aws ec2 authorize-security-group-ingress --group-id $ALB_SG --protocol tcp --port 80 --cidr 0.0.0.0/0
191
+
192
+ # Application security group (only from ALB)
193
+ APP_SG=$(aws ec2 create-security-group \
194
+ --group-name app-sg \
195
+ --description "Application tier" \
196
+ --vpc-id $VPC_ID \
197
+ --query 'GroupId' --output text)
198
+ aws ec2 authorize-security-group-ingress \
199
+ --group-id $APP_SG \
200
+ --protocol tcp \
201
+ --port 8080 \
202
+ --source-group $ALB_SG
203
+
204
+ # Database security group (only from app tier)
205
+ DB_SG=$(aws ec2 create-security-group \
206
+ --group-name db-sg \
207
+ --description "Database tier" \
208
+ --vpc-id $VPC_ID \
209
+ --query 'GroupId' --output text)
210
+ aws ec2 authorize-security-group-ingress \
211
+ --group-id $DB_SG \
212
+ --protocol tcp \
213
+ --port 5432 \
214
+ --source-group $APP_SG
215
+
216
+ # List all security groups in the VPC
217
+ aws ec2 describe-security-groups \
218
+ --filters "Name=vpc-id,Values=$VPC_ID" \
219
+ --query "SecurityGroups[].{Name:GroupName,ID:GroupId,Description:Description}" \
220
+ --output table
221
+ ```
222
+
223
+ ## VPC Endpoints (Private Access to AWS Services)
224
+
225
+ ```bash
226
+ # Gateway endpoint for S3 (free, route-table based)
227
+ aws ec2 create-vpc-endpoint \
228
+ --vpc-id $VPC_ID \
229
+ --service-name com.amazonaws.us-east-1.s3 \
230
+ --route-table-ids $PRIV_RT_A $PRIV_RT_B \
231
+ --tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=s3-endpoint}]'
232
+
233
+ # Gateway endpoint for DynamoDB (free)
234
+ aws ec2 create-vpc-endpoint \
235
+ --vpc-id $VPC_ID \
236
+ --service-name com.amazonaws.us-east-1.dynamodb \
237
+ --route-table-ids $PRIV_RT_A $PRIV_RT_B
238
+
239
+ # Interface endpoint for Secrets Manager (ENI-based, has hourly cost)
240
+ aws ec2 create-vpc-endpoint \
241
+ --vpc-id $VPC_ID \
242
+ --vpc-endpoint-type Interface \
243
+ --service-name com.amazonaws.us-east-1.secretsmanager \
244
+ --subnet-ids $PRIV_SUB_A $PRIV_SUB_B \
245
+ --security-group-ids $APP_SG \
246
+ --private-dns-enabled \
247
+ --tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=secretsmanager-endpoint}]'
248
+ ```
249
+
250
+ ## VPC Flow Logs
251
+
252
+ ```bash
253
+ # Enable VPC flow logs to CloudWatch
254
+ aws ec2 create-flow-log \
255
+ --resource-type VPC \
256
+ --resource-ids $VPC_ID \
257
+ --traffic-type ALL \
258
+ --log-destination-type cloud-watch-logs \
259
+ --log-group-name /vpc/production-flow-logs \
260
+ --deliver-logs-permission-arn arn:aws:iam::123456789012:role/VPCFlowLogRole \
261
+ --max-aggregation-interval 60 \
262
+ --tag-specifications 'ResourceType=vpc-flow-log,Tags=[{Key=Name,Value=production-flow-log}]'
263
+
264
+ # Enable VPC flow logs to S3 (cheaper for long-term storage)
265
+ aws ec2 create-flow-log \
266
+ --resource-type VPC \
267
+ --resource-ids $VPC_ID \
268
+ --traffic-type ALL \
269
+ --log-destination-type s3 \
270
+ --log-destination arn:aws:s3:::my-flow-logs-bucket/vpc-logs/ \
271
+ --max-aggregation-interval 60
272
+ ```
273
+
274
+ ## VPC Peering
275
+
276
+ ```bash
277
+ # Request peering connection
278
+ PEERING_ID=$(aws ec2 create-vpc-peering-connection \
279
+ --vpc-id vpc-requester \
280
+ --peer-vpc-id vpc-accepter \
281
+ --peer-owner-id 987654321098 \
282
+ --peer-region us-west-2 \
283
+ --tag-specifications 'ResourceType=vpc-peering-connection,Tags=[{Key=Name,Value=prod-to-shared}]' \
284
+ --query 'VpcPeeringConnection.VpcPeeringConnectionId' --output text)
285
+
286
+ # Accept peering (from the accepter account/region)
287
+ aws ec2 accept-vpc-peering-connection --vpc-peering-connection-id $PEERING_ID
288
+
289
+ # Add routes in both VPCs
290
+ aws ec2 create-route --route-table-id rtb-requester --destination-cidr-block 10.1.0.0/16 --vpc-peering-connection-id $PEERING_ID
291
+ aws ec2 create-route --route-table-id rtb-accepter --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id $PEERING_ID
292
+ ```
293
+
294
+ ## Terraform VPC Module
295
+
296
+ ```hcl
297
+ resource "aws_vpc" "main" {
298
+ cidr_block = "10.0.0.0/16"
299
+ enable_dns_support = true
300
+ enable_dns_hostnames = true
301
+
302
+ tags = {
303
+ Name = "production-vpc"
304
+ Environment = "production"
305
+ }
306
+ }
307
+
308
+ resource "aws_subnet" "public" {
309
+ count = 3
310
+ vpc_id = aws_vpc.main.id
311
+ cidr_block = cidrsubnet(aws_vpc.main.cidr_block, 8, count.index + 1)
312
+ availability_zone = data.aws_availability_zones.available.names[count.index]
313
+ map_public_ip_on_launch = true
314
+
315
+ tags = {
316
+ Name = "public-${data.aws_availability_zones.available.names[count.index]}"
317
+ Tier = "public"
318
+ }
319
+ }
320
+
321
+ resource "aws_subnet" "private" {
322
+ count = 3
323
+ vpc_id = aws_vpc.main.id
324
+ cidr_block = cidrsubnet(aws_vpc.main.cidr_block, 8, count.index + 11)
325
+ availability_zone = data.aws_availability_zones.available.names[count.index]
326
+
327
+ tags = {
328
+ Name = "private-${data.aws_availability_zones.available.names[count.index]}"
329
+ Tier = "private"
330
+ }
331
+ }
332
+
333
+ resource "aws_subnet" "data" {
334
+ count = 3
335
+ vpc_id = aws_vpc.main.id
336
+ cidr_block = cidrsubnet(aws_vpc.main.cidr_block, 8, count.index + 21)
337
+ availability_zone = data.aws_availability_zones.available.names[count.index]
338
+
339
+ tags = {
340
+ Name = "data-${data.aws_availability_zones.available.names[count.index]}"
341
+ Tier = "data"
342
+ }
343
+ }
344
+
345
+ resource "aws_internet_gateway" "main" {
346
+ vpc_id = aws_vpc.main.id
347
+ tags = { Name = "production-igw" }
348
+ }
349
+
350
+ resource "aws_eip" "nat" {
351
+ count = 2
352
+ domain = "vpc"
353
+ tags = { Name = "nat-eip-${count.index}" }
354
+ }
355
+
356
+ resource "aws_nat_gateway" "main" {
357
+ count = 2
358
+ allocation_id = aws_eip.nat[count.index].id
359
+ subnet_id = aws_subnet.public[count.index].id
360
+ tags = { Name = "nat-${count.index}" }
361
+ }
362
+
363
+ resource "aws_route_table" "public" {
364
+ vpc_id = aws_vpc.main.id
365
+ route {
366
+ cidr_block = "0.0.0.0/0"
367
+ gateway_id = aws_internet_gateway.main.id
368
+ }
369
+ tags = { Name = "public-rt" }
370
+ }
371
+
372
+ resource "aws_route_table_association" "public" {
373
+ count = 3
374
+ subnet_id = aws_subnet.public[count.index].id
375
+ route_table_id = aws_route_table.public.id
376
+ }
377
+
378
+ resource "aws_route_table" "private" {
379
+ count = 2
380
+ vpc_id = aws_vpc.main.id
381
+ route {
382
+ cidr_block = "0.0.0.0/0"
383
+ nat_gateway_id = aws_nat_gateway.main[count.index].id
384
+ }
385
+ tags = { Name = "private-rt-${count.index}" }
386
+ }
387
+
388
+ resource "aws_route_table_association" "private" {
389
+ count = 2
390
+ subnet_id = aws_subnet.private[count.index].id
391
+ route_table_id = aws_route_table.private[count.index].id
392
+ }
393
+
394
+ resource "aws_vpc_endpoint" "s3" {
395
+ vpc_id = aws_vpc.main.id
396
+ service_name = "com.amazonaws.${data.aws_region.current.name}.s3"
397
+ route_table_ids = aws_route_table.private[*].id
398
+ tags = { Name = "s3-endpoint" }
399
+ }
400
+
401
+ resource "aws_flow_log" "main" {
402
+ vpc_id = aws_vpc.main.id
403
+ traffic_type = "ALL"
404
+ log_destination_type = "s3"
405
+ log_destination = "${aws_s3_bucket.flow_logs.arn}/vpc-logs/"
406
+ max_aggregation_interval = 60
407
+ }
408
+ ```
409
+
410
+ ## Troubleshooting
411
+
412
+ | Problem | Cause | Fix |
413
+ |---|---|---|
414
+ | Cannot reach internet from private subnet | NAT Gateway route missing | Add 0.0.0.0/0 route to NAT GW in private route table |
415
+ | Cannot reach internet from public subnet | IGW not attached or route missing | Attach IGW; add 0.0.0.0/0 route to IGW in public RT |
416
+ | EC2 cannot reach S3 | No VPC endpoint or NAT | Add S3 gateway endpoint (free) or ensure NAT GW route |
417
+ | Security group rule not working | Wrong direction (ingress vs egress) | SG is stateful; check inbound rule on destination |
418
+ | NACL blocking traffic | NACLs are stateless; need both directions | Add matching inbound AND outbound rules with correct ports |
419
+ | VPC peering one-way only | Routes missing in one VPC | Add routes in BOTH VPC route tables |
420
+ | DNS resolution failing | DNS hostnames not enabled on VPC | Enable `enableDnsHostnames` on VPC |
421
+ | NAT Gateway charges high | All AZs routing through one NAT | Deploy NAT GW per AZ with separate route tables |
422
+ | Cross-AZ data transfer costs | Resources in different AZs communicating | Co-locate tightly coupled services in same AZ |
423
+
424
+ ## Related Skills
425
+
426
+ - aws-ec2 (`aws-ec2`) - Instances deployed in VPC subnets
427
+ - aws-ecs-fargate (`aws-ecs-fargate`) - ECS tasks in VPC networking
428
+ - aws-rds (`aws-rds`) - Database subnet groups
429
+ - terraform-aws (`terraform-aws`) - IaC for VPC infrastructure
430
+ - firewall-config (`firewall-config`) - Network security controls
431
+
432
+ ## Limitations
433
+
434
+ - Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
435
+ - Docs-only import: upstream scripts and templates not bundled.
436
+
@@ -50,7 +50,7 @@ const client = DocumentIntelligence(
50
50
  );
51
51
  ```
52
52
 
53
- ## Analyze Document (URL)
53
+ ## Analyze Document https://example.com
54
54
 
55
55
  ```typescript
56
56
  import DocumentIntelligence, {