opencode-skills-collection 4.0.67 → 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.
- package/bundled-skills/.antigravity-install-manifest.json +281 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/artifact-yylo/SKILL.md +122 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/google-no-code/SKILL.md +136 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/wiki-yylo/SKILL.md +114 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aws-ec2
|
|
3
|
+
description: Manage EC2 instances, AMIs, and auto-scaling groups. Configure security
|
|
4
|
+
groups, key pairs, and instance types. Use when deploying compute resources on AWS.
|
|
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 EC2
|
|
21
|
+
|
|
22
|
+
Deploy and manage Amazon EC2 compute instances for production, staging, and development workloads.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
- Launching new compute instances for application hosting
|
|
27
|
+
- Building golden AMIs for consistent deployments
|
|
28
|
+
- Setting up auto-scaling groups behind load balancers
|
|
29
|
+
- Migrating workloads to Spot instances for cost savings
|
|
30
|
+
- Troubleshooting instance connectivity, performance, or launch failures
|
|
31
|
+
- Creating launch templates for repeatable infrastructure
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- AWS CLI v2 installed and configured (`aws configure`)
|
|
36
|
+
- IAM permissions: `ec2:*`, `autoscaling:*`, `elasticloadbalancing:*`, `iam:PassRole`
|
|
37
|
+
- An existing VPC with subnets (see aws-vpc (`aws-vpc`))
|
|
38
|
+
- SSH key pair created (`aws ec2 create-key-pair --key-name my-key --query 'KeyMaterial' --output text > my-key.pem`)
|
|
39
|
+
|
|
40
|
+
## Instance Type Selection Guide
|
|
41
|
+
|
|
42
|
+
| Category | Types | Use Case |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| General Purpose | t3, t3a, m6i, m7g | Web servers, small databases, dev/test |
|
|
45
|
+
| Compute Optimized | c6i, c7g | Batch processing, media encoding, ML inference |
|
|
46
|
+
| Memory Optimized | r6i, r7g, x2idn | In-memory caches, large databases |
|
|
47
|
+
| Storage Optimized | i3, i4i, d3 | Data warehousing, distributed file systems |
|
|
48
|
+
| Accelerated | p4d, g5, inf2 | ML training, GPU rendering, inference |
|
|
49
|
+
| Burstable | t3.micro-t3.2xlarge | Low-steady-state with occasional bursts |
|
|
50
|
+
|
|
51
|
+
## Launch an Instance
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Launch a production web server
|
|
55
|
+
aws ec2 run-instances \
|
|
56
|
+
--image-id ami-0abcdef1234567890 \
|
|
57
|
+
--instance-type t3.medium \
|
|
58
|
+
--key-name my-key \
|
|
59
|
+
--security-group-ids sg-12345678 \
|
|
60
|
+
--subnet-id subnet-12345678 \
|
|
61
|
+
--iam-instance-profile Name=EC2AppProfile \
|
|
62
|
+
--metadata-options "HttpTokens=required,HttpEndpoint=enabled" \
|
|
63
|
+
--block-device-mappings '[{
|
|
64
|
+
"DeviceName": "/dev/xvda",
|
|
65
|
+
"Ebs": {
|
|
66
|
+
"VolumeSize": 30,
|
|
67
|
+
"VolumeType": "gp3",
|
|
68
|
+
"Iops": 3000,
|
|
69
|
+
"Throughput": 125,
|
|
70
|
+
"Encrypted": true
|
|
71
|
+
}
|
|
72
|
+
}]' \
|
|
73
|
+
--tag-specifications 'ResourceType=instance,Tags=[
|
|
74
|
+
{Key=Name,Value=web-server-01},
|
|
75
|
+
{Key=Environment,Value=production},
|
|
76
|
+
{Key=Team,Value=platform}
|
|
77
|
+
]' \
|
|
78
|
+
--user-data file://userdata.sh
|
|
79
|
+
|
|
80
|
+
# Launch with IMDSv2 required (security best practice)
|
|
81
|
+
aws ec2 run-instances \
|
|
82
|
+
--image-id ami-0abcdef1234567890 \
|
|
83
|
+
--instance-type t3.micro \
|
|
84
|
+
--metadata-options "HttpTokens=required,HttpPutResponseHopLimit=1,HttpEndpoint=enabled" \
|
|
85
|
+
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=secure-instance}]'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## User Data Scripts
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
#!/bin/bash
|
|
92
|
+
# userdata.sh - Bootstrap a web server on Amazon Linux 2023
|
|
93
|
+
set -euxo pipefail
|
|
94
|
+
|
|
95
|
+
# System updates
|
|
96
|
+
dnf update -y
|
|
97
|
+
|
|
98
|
+
# Install and start web server
|
|
99
|
+
dnf install -y nginx
|
|
100
|
+
systemctl enable nginx
|
|
101
|
+
systemctl start nginx
|
|
102
|
+
|
|
103
|
+
# Install CloudWatch agent
|
|
104
|
+
dnf install -y amazon-cloudwatch-agent
|
|
105
|
+
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
|
|
106
|
+
-a fetch-config -m ec2 \
|
|
107
|
+
-s -c ssm:AmazonCloudWatch-linux
|
|
108
|
+
|
|
109
|
+
# Install CodeDeploy agent
|
|
110
|
+
dnf install -y ruby wget
|
|
111
|
+
cd /home/ec2-user
|
|
112
|
+
wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/latest/install
|
|
113
|
+
chmod +x ./install
|
|
114
|
+
./install auto
|
|
115
|
+
|
|
116
|
+
# Signal CloudFormation (if launched via CFN)
|
|
117
|
+
# /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource ASG --region ${AWS::Region}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Launch Templates
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Create a launch template with full configuration
|
|
124
|
+
aws ec2 create-launch-template \
|
|
125
|
+
--launch-template-name web-server-template \
|
|
126
|
+
--version-description "v1 - AL2023 with nginx" \
|
|
127
|
+
--launch-template-data '{
|
|
128
|
+
"ImageId": "ami-0abcdef1234567890",
|
|
129
|
+
"InstanceType": "t3.medium",
|
|
130
|
+
"KeyName": "my-key",
|
|
131
|
+
"SecurityGroupIds": ["sg-12345678"],
|
|
132
|
+
"IamInstanceProfile": {"Name": "EC2AppProfile"},
|
|
133
|
+
"MetadataOptions": {
|
|
134
|
+
"HttpTokens": "required",
|
|
135
|
+
"HttpEndpoint": "enabled"
|
|
136
|
+
},
|
|
137
|
+
"BlockDeviceMappings": [{
|
|
138
|
+
"DeviceName": "/dev/xvda",
|
|
139
|
+
"Ebs": {
|
|
140
|
+
"VolumeSize": 30,
|
|
141
|
+
"VolumeType": "gp3",
|
|
142
|
+
"Encrypted": true
|
|
143
|
+
}
|
|
144
|
+
}],
|
|
145
|
+
"TagSpecifications": [{
|
|
146
|
+
"ResourceType": "instance",
|
|
147
|
+
"Tags": [
|
|
148
|
+
{"Key": "Environment", "Value": "production"},
|
|
149
|
+
{"Key": "ManagedBy", "Value": "launch-template"}
|
|
150
|
+
]
|
|
151
|
+
}],
|
|
152
|
+
"Monitoring": {"Enabled": true},
|
|
153
|
+
"UserData": "'"$(base64 -w0 userdata.sh)"'"
|
|
154
|
+
}'
|
|
155
|
+
|
|
156
|
+
# Create a new version of the launch template
|
|
157
|
+
aws ec2 create-launch-template-version \
|
|
158
|
+
--launch-template-name web-server-template \
|
|
159
|
+
--source-version 1 \
|
|
160
|
+
--version-description "v2 - updated AMI" \
|
|
161
|
+
--launch-template-data '{"ImageId": "ami-0newami1234567890"}'
|
|
162
|
+
|
|
163
|
+
# Set the default version
|
|
164
|
+
aws ec2 modify-launch-template \
|
|
165
|
+
--launch-template-name web-server-template \
|
|
166
|
+
--default-version 2
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Auto Scaling Group
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Create ASG with mixed instances (on-demand + spot)
|
|
173
|
+
aws autoscaling create-auto-scaling-group \
|
|
174
|
+
--auto-scaling-group-name web-asg \
|
|
175
|
+
--mixed-instances-policy '{
|
|
176
|
+
"LaunchTemplate": {
|
|
177
|
+
"LaunchTemplateSpecification": {
|
|
178
|
+
"LaunchTemplateName": "web-server-template",
|
|
179
|
+
"Version": "$Default"
|
|
180
|
+
},
|
|
181
|
+
"Overrides": [
|
|
182
|
+
{"InstanceType": "t3.medium"},
|
|
183
|
+
{"InstanceType": "t3a.medium"},
|
|
184
|
+
{"InstanceType": "m5.large"}
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
"InstancesDistribution": {
|
|
188
|
+
"OnDemandBaseCapacity": 2,
|
|
189
|
+
"OnDemandPercentageAboveBaseCapacity": 25,
|
|
190
|
+
"SpotAllocationStrategy": "capacity-optimized"
|
|
191
|
+
}
|
|
192
|
+
}' \
|
|
193
|
+
--min-size 2 --max-size 10 --desired-capacity 4 \
|
|
194
|
+
--vpc-zone-identifier "subnet-aaa,subnet-bbb" \
|
|
195
|
+
--target-group-arns "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/web-tg/abc123" \
|
|
196
|
+
--health-check-type ELB \
|
|
197
|
+
--health-check-grace-period 300 \
|
|
198
|
+
--tags '[
|
|
199
|
+
{"Key":"Name","Value":"web-asg","PropagateAtLaunch":true},
|
|
200
|
+
{"Key":"Environment","Value":"production","PropagateAtLaunch":true}
|
|
201
|
+
]'
|
|
202
|
+
|
|
203
|
+
# Create target tracking scaling policy (target 60% CPU)
|
|
204
|
+
aws autoscaling put-scaling-policy \
|
|
205
|
+
--auto-scaling-group-name web-asg \
|
|
206
|
+
--policy-name cpu-target-tracking \
|
|
207
|
+
--policy-type TargetTrackingScaling \
|
|
208
|
+
--target-tracking-configuration '{
|
|
209
|
+
"PredefinedMetricSpecification": {
|
|
210
|
+
"PredefinedMetricType": "ASGAverageCPUUtilization"
|
|
211
|
+
},
|
|
212
|
+
"TargetValue": 60.0,
|
|
213
|
+
"ScaleInCooldown": 300,
|
|
214
|
+
"ScaleOutCooldown": 60
|
|
215
|
+
}'
|
|
216
|
+
|
|
217
|
+
# Create scheduled scaling for known traffic patterns
|
|
218
|
+
aws autoscaling put-scheduled-update-group-action \
|
|
219
|
+
--auto-scaling-group-name web-asg \
|
|
220
|
+
--scheduled-action-name scale-up-morning \
|
|
221
|
+
--recurrence "0 8 * * MON-FRI" \
|
|
222
|
+
--min-size 4 --max-size 20 --desired-capacity 8
|
|
223
|
+
|
|
224
|
+
aws autoscaling put-scheduled-update-group-action \
|
|
225
|
+
--auto-scaling-group-name web-asg \
|
|
226
|
+
--scheduled-action-name scale-down-evening \
|
|
227
|
+
--recurrence "0 20 * * MON-FRI" \
|
|
228
|
+
--min-size 2 --max-size 10 --desired-capacity 2
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Spot Instances
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Request Spot instances
|
|
235
|
+
aws ec2 request-spot-instances \
|
|
236
|
+
--spot-price "0.05" \
|
|
237
|
+
--instance-count 3 \
|
|
238
|
+
--type "one-time" \
|
|
239
|
+
--launch-specification '{
|
|
240
|
+
"ImageId": "ami-0abcdef1234567890",
|
|
241
|
+
"InstanceType": "c5.xlarge",
|
|
242
|
+
"KeyName": "my-key",
|
|
243
|
+
"SecurityGroupIds": ["sg-12345678"],
|
|
244
|
+
"SubnetId": "subnet-12345678"
|
|
245
|
+
}'
|
|
246
|
+
|
|
247
|
+
# Check current Spot prices
|
|
248
|
+
aws ec2 describe-spot-price-history \
|
|
249
|
+
--instance-types t3.medium t3a.medium m5.large \
|
|
250
|
+
--availability-zone us-east-1a \
|
|
251
|
+
--product-descriptions "Linux/UNIX" \
|
|
252
|
+
--start-time "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
253
|
+
--query "SpotPriceHistory[].{Type:InstanceType,Price:SpotPrice,AZ:AvailabilityZone}" \
|
|
254
|
+
--output table
|
|
255
|
+
|
|
256
|
+
# Create a Spot Fleet request
|
|
257
|
+
aws ec2 request-spot-fleet \
|
|
258
|
+
--spot-fleet-request-config '{
|
|
259
|
+
"IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-role",
|
|
260
|
+
"TargetCapacity": 10,
|
|
261
|
+
"SpotPrice": "0.10",
|
|
262
|
+
"AllocationStrategy": "capacityOptimized",
|
|
263
|
+
"LaunchSpecifications": [
|
|
264
|
+
{"ImageId": "ami-xxx", "InstanceType": "c5.xlarge", "SubnetId": "subnet-aaa"},
|
|
265
|
+
{"ImageId": "ami-xxx", "InstanceType": "c5a.xlarge", "SubnetId": "subnet-bbb"}
|
|
266
|
+
]
|
|
267
|
+
}'
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## AMI Management
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# Create an AMI from a running instance
|
|
274
|
+
aws ec2 create-image \
|
|
275
|
+
--instance-id i-0abc123def456 \
|
|
276
|
+
--name "web-server-$(date +%Y%m%d)" \
|
|
277
|
+
--description "Web server golden AMI" \
|
|
278
|
+
--no-reboot \
|
|
279
|
+
--tag-specifications 'ResourceType=image,Tags=[
|
|
280
|
+
{Key=Name,Value=web-server-golden},
|
|
281
|
+
{Key=Version,Value=2026.03.24}
|
|
282
|
+
]'
|
|
283
|
+
|
|
284
|
+
# Copy AMI to another region for disaster recovery
|
|
285
|
+
aws ec2 copy-image \
|
|
286
|
+
--source-image-id ami-0abcdef1234567890 \
|
|
287
|
+
--source-region us-east-1 \
|
|
288
|
+
--region us-west-2 \
|
|
289
|
+
--name "web-server-dr-copy"
|
|
290
|
+
|
|
291
|
+
# Deregister old AMIs and delete associated snapshots
|
|
292
|
+
aws ec2 deregister-image --image-id ami-old123
|
|
293
|
+
aws ec2 delete-snapshot --snapshot-id snap-old123
|
|
294
|
+
|
|
295
|
+
# Share AMI with another AWS account
|
|
296
|
+
aws ec2 modify-image-attribute \
|
|
297
|
+
--image-id ami-0abcdef1234567890 \
|
|
298
|
+
--launch-permission "Add=[{UserId=987654321098}]"
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
## Instance Management
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
# List running instances with key details
|
|
305
|
+
aws ec2 describe-instances \
|
|
306
|
+
--filters "Name=instance-state-name,Values=running" \
|
|
307
|
+
--query "Reservations[].Instances[].{ID:InstanceId,Type:InstanceType,IP:PrivateIpAddress,Name:Tags[?Key=='Name']|[0].Value,State:State.Name}" \
|
|
308
|
+
--output table
|
|
309
|
+
|
|
310
|
+
# Stop and start instances
|
|
311
|
+
aws ec2 stop-instances --instance-ids i-0abc123def456
|
|
312
|
+
aws ec2 start-instances --instance-ids i-0abc123def456
|
|
313
|
+
|
|
314
|
+
# Resize an instance (stop first)
|
|
315
|
+
aws ec2 stop-instances --instance-ids i-0abc123def456
|
|
316
|
+
aws ec2 wait instance-stopped --instance-ids i-0abc123def456
|
|
317
|
+
aws ec2 modify-instance-attribute \
|
|
318
|
+
--instance-id i-0abc123def456 \
|
|
319
|
+
--instance-type '{"Value": "t3.large"}'
|
|
320
|
+
aws ec2 start-instances --instance-ids i-0abc123def456
|
|
321
|
+
|
|
322
|
+
# Get console output for debugging boot issues
|
|
323
|
+
aws ec2 get-console-output --instance-id i-0abc123def456
|
|
324
|
+
|
|
325
|
+
# Get instance screenshot (helps debug GUI issues)
|
|
326
|
+
aws ec2 get-console-screenshot --instance-id i-0abc123def456
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Terraform EC2 with Auto Scaling
|
|
330
|
+
|
|
331
|
+
```hcl
|
|
332
|
+
resource "aws_launch_template" "web" {
|
|
333
|
+
name_prefix = "web-"
|
|
334
|
+
image_id = data.aws_ami.amazon_linux.id
|
|
335
|
+
instance_type = "t3.medium"
|
|
336
|
+
|
|
337
|
+
iam_instance_profile {
|
|
338
|
+
name = aws_iam_instance_profile.web.name
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
metadata_options {
|
|
342
|
+
http_tokens = "required"
|
|
343
|
+
http_endpoint = "enabled"
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
block_device_mappings {
|
|
347
|
+
device_name = "/dev/xvda"
|
|
348
|
+
ebs {
|
|
349
|
+
volume_size = 30
|
|
350
|
+
volume_type = "gp3"
|
|
351
|
+
encrypted = true
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
user_data = base64encode(file("userdata.sh"))
|
|
356
|
+
|
|
357
|
+
tag_specifications {
|
|
358
|
+
resource_type = "instance"
|
|
359
|
+
tags = {
|
|
360
|
+
Name = "web-server"
|
|
361
|
+
Environment = "production"
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
resource "aws_autoscaling_group" "web" {
|
|
367
|
+
name = "web-asg"
|
|
368
|
+
min_size = 2
|
|
369
|
+
max_size = 10
|
|
370
|
+
desired_capacity = 4
|
|
371
|
+
vpc_zone_identifier = [aws_subnet.private_a.id, aws_subnet.private_b.id]
|
|
372
|
+
target_group_arns = [aws_lb_target_group.web.arn]
|
|
373
|
+
health_check_type = "ELB"
|
|
374
|
+
|
|
375
|
+
launch_template {
|
|
376
|
+
id = aws_launch_template.web.id
|
|
377
|
+
version = "$Latest"
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
tag {
|
|
381
|
+
key = "Name"
|
|
382
|
+
value = "web-asg"
|
|
383
|
+
propagate_at_launch = true
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
resource "aws_autoscaling_policy" "cpu" {
|
|
388
|
+
name = "cpu-target-tracking"
|
|
389
|
+
autoscaling_group_name = aws_autoscaling_group.web.name
|
|
390
|
+
policy_type = "TargetTrackingScaling"
|
|
391
|
+
|
|
392
|
+
target_tracking_configuration {
|
|
393
|
+
predefined_metric_specification {
|
|
394
|
+
predefined_metric_type = "ASGAverageCPUUtilization"
|
|
395
|
+
}
|
|
396
|
+
target_value = 60.0
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
## Troubleshooting
|
|
402
|
+
|
|
403
|
+
| Problem | Cause | Fix |
|
|
404
|
+
|---|---|---|
|
|
405
|
+
| Instance stuck in `pending` | Insufficient capacity | Try a different AZ or instance type |
|
|
406
|
+
| Cannot SSH to instance | Security group or NACL blocks port 22 | Check SG ingress rules and route tables |
|
|
407
|
+
| Instance immediately terminates | EBS volume limit or AMI issue | Check `describe-instances` for StateReason |
|
|
408
|
+
| IMDSv1 deprecation warnings | Metadata options not set | Set `HttpTokens=required` in launch template |
|
|
409
|
+
| User data not running | Script missing shebang or not base64 | Verify `#!/bin/bash` header; check `/var/log/cloud-init-output.log` |
|
|
410
|
+
| Spot instance terminated | Capacity reclaimed by AWS | Use capacity-optimized allocation and diversify types |
|
|
411
|
+
| ASG not replacing unhealthy | Health check grace period too short | Increase grace period to cover app boot time |
|
|
412
|
+
| EBS throughput bottleneck | gp2 volume too small for IOPS | Migrate to gp3 and set explicit IOPS/throughput |
|
|
413
|
+
|
|
414
|
+
## Related Skills
|
|
415
|
+
|
|
416
|
+
- aws-vpc (`aws-vpc`) - VPC networking, subnets, and security groups
|
|
417
|
+
- aws-iam (`aws-iam`) - Instance profiles and roles
|
|
418
|
+
- aws-cost-optimization (`aws-cost-optimization`) - Rightsizing and Spot strategies
|
|
419
|
+
- terraform-aws (`terraform-aws`) - Infrastructure as Code deployment
|
|
420
|
+
- cloudformation (`cloudformation`) - AWS-native IaC templates
|
|
421
|
+
|
|
422
|
+
## Limitations
|
|
423
|
+
|
|
424
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
425
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
426
|
+
|