cloud-security
Multi-cloud security assessment skill for AWS, Azure, and GCP. This skill should be used when performing cloud security audits, scanning for misconfigurations, testing IAM policies, auditing storage permissions, and identifying privilege escalation paths. Triggers on requests to audit cloud security, scan AWS/Azure/GCP, check cloud misconfigurations, or perform cloud penetration testing.
Best use case
cloud-security is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Multi-cloud security assessment skill for AWS, Azure, and GCP. This skill should be used when performing cloud security audits, scanning for misconfigurations, testing IAM policies, auditing storage permissions, and identifying privilege escalation paths. Triggers on requests to audit cloud security, scan AWS/Azure/GCP, check cloud misconfigurations, or perform cloud penetration testing.
Teams using cloud-security should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/cloud-security/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How cloud-security Compares
| Feature / Agent | cloud-security | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Multi-cloud security assessment skill for AWS, Azure, and GCP. This skill should be used when performing cloud security audits, scanning for misconfigurations, testing IAM policies, auditing storage permissions, and identifying privilege escalation paths. Triggers on requests to audit cloud security, scan AWS/Azure/GCP, check cloud misconfigurations, or perform cloud penetration testing.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Cloud Security Assessment This skill enables comprehensive security testing of AWS, Azure, and GCP cloud environments using industry-standard tools like ScoutSuite, Prowler, and CloudSploit. It covers misconfiguration scanning, IAM analysis, and privilege escalation testing. ## When to Use This Skill This skill should be invoked when: - Performing cloud security assessments - Scanning for cloud misconfigurations - Auditing IAM policies and permissions - Testing storage bucket/blob permissions - Identifying privilege escalation paths - Checking CIS benchmark compliance - Reviewing cloud security posture ### Trigger Phrases - "audit AWS security" - "scan Azure for misconfigurations" - "check GCP security" - "test cloud IAM" - "find S3 bucket issues" - "cloud penetration test" - "CIS benchmark audit" --- ## Prerequisites ### Required Tools | Tool | Purpose | Installation | |------|---------|--------------| | ScoutSuite | Multi-cloud security auditing | `pip install scoutsuite` | | Prowler | AWS security assessment | `pip install prowler` | | CloudSploit | Cloud security scanning | `npm install -g cloudsploit` | | Steampipe | SQL for cloud APIs | steampipe.io download | | Pacu | AWS exploitation framework | `pip install pacu` | | enumerate-iam | IAM enumeration | GitHub | | S3Scanner | S3 bucket scanner | `pip install s3scanner` | ### Authentication Setup #### AWS ```bash # Configure AWS CLI aws configure # Or use environment variables export AWS_ACCESS_KEY_ID="AKIA..." export AWS_SECRET_ACCESS_KEY="..." export AWS_DEFAULT_REGION="us-east-1" # Assume role for cross-account aws sts assume-role --role-arn arn:aws:iam::ACCOUNT:role/ROLE --role-session-name audit ``` #### Azure ```bash # Login with CLI az login # Service Principal az login --service-principal -u CLIENT_ID -p SECRET --tenant TENANT_ID # Set subscription az account set --subscription "SUBSCRIPTION_ID" ``` #### GCP ```bash # Application default credentials gcloud auth application-default login # Service account export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account.json" # Set project gcloud config set project PROJECT_ID ``` --- ## Multi-Cloud Security Scanning ### ScoutSuite (All Clouds) ```bash # AWS Assessment scout aws --profile default --report-dir ./scout-aws # Azure Assessment scout azure --cli --report-dir ./scout-azure # GCP Assessment scout gcp --project-id PROJECT_ID --report-dir ./scout-gcp # Key findings to review: # - Danger (red): Critical misconfigurations # - Warning (orange): High-risk issues # - Info: Informational findings ``` ### Quick Start Workflow ```markdown 1. **Credentials Setup** - Obtain read-only access credentials - Verify minimum required permissions 2. **Initial Scan** - Run ScoutSuite for comprehensive view - Run Prowler/CloudSploit for specific checks 3. **Deep Dive** - IAM policy analysis - Storage permissions review - Network security assessment - Logging/monitoring verification 4. **Exploitation Testing** (if authorized) - Privilege escalation attempts - Lateral movement testing - Data exfiltration simulation 5. **Reporting** - Document findings with evidence - Prioritize by risk and impact - Provide remediation guidance ``` --- ## AWS Security Testing ### Prowler Assessment ```bash # Full assessment prowler aws # Specific checks prowler aws --checks check11,check12,check13 # CIS Benchmark prowler aws --compliance cis_2.0_aws # Output formats prowler aws -M csv,html,json # Check categories prowler aws -g group1 # IAM prowler aws -g group2 # Logging prowler aws -g group3 # Monitoring prowler aws -g group4 # Networking ``` ### IAM Analysis ```bash # Enumerate IAM permissions enumerate-iam --access-key AKIA... --secret-key ... # Check for privilege escalation # Using Pacu pacu > import_keys --access-key AKIA... --secret-key ... > run iam__enum_permissions > run iam__privesc_scan # Manual checks aws iam list-users aws iam list-roles aws iam list-policies --scope Local aws iam get-account-authorization-details ``` ### S3 Security ```bash # Scan for public buckets s3scanner --bucket-file buckets.txt # Check bucket policies aws s3api get-bucket-policy --bucket BUCKET aws s3api get-bucket-acl --bucket BUCKET aws s3api get-public-access-block --bucket BUCKET # Test bucket permissions aws s3 ls s3://bucket-name --no-sign-request aws s3 cp test.txt s3://bucket-name --no-sign-request ``` ### Common AWS Misconfigurations ```markdown ### Critical - [ ] Public S3 buckets with sensitive data - [ ] IAM users with admin access - [ ] Root account used for daily operations - [ ] No MFA on root or privileged accounts - [ ] Hardcoded credentials in Lambda/EC2 ### High - [ ] Security groups with 0.0.0.0/0 ingress - [ ] RDS instances publicly accessible - [ ] CloudTrail not enabled - [ ] Default VPC in use - [ ] IAM policies with * resources ### Medium - [ ] S3 buckets without versioning - [ ] EBS volumes unencrypted - [ ] Access keys not rotated - [ ] VPC flow logs disabled - [ ] GuardDuty not enabled ``` ### AWS Privilege Escalation ```markdown ## Common Paths 1. **iam:CreatePolicyVersion** - Create new policy version with admin access - aws iam create-policy-version --policy-arn ARN --policy-document file://admin.json --set-as-default 2. **iam:SetDefaultPolicyVersion** - Switch to overly permissive version 3. **iam:AttachUserPolicy/AttachRolePolicy** - Attach AdministratorAccess 4. **iam:CreateAccessKey** - Create keys for other users 5. **iam:PassRole + Lambda/EC2** - Create Lambda with powerful role - Launch EC2 with powerful role 6. **sts:AssumeRole** - Assume more privileged role 7. **lambda:UpdateFunctionCode** - Modify Lambda to exfiltrate credentials ## Detection - CloudTrail logs - IAM Access Analyzer - GuardDuty findings ``` --- ## Azure Security Testing ### Azure Security Assessment ```bash # Using ScoutSuite scout azure --cli # Azure native tools az security assessment list az security alert list # Storage account checks az storage account list az storage account show --name ACCOUNT --query allowBlobPublicAccess ``` ### Azure Misconfigurations ```markdown ### Critical - [ ] Storage accounts with public access - [ ] Key Vault access policies too permissive - [ ] No MFA for privileged accounts - [ ] Service Principal with Owner role - [ ] Exposed management ports (RDP/SSH) ### High - [ ] Network Security Groups too open - [ ] Azure AD users with Global Admin - [ ] Defender for Cloud disabled - [ ] Diagnostic logs not configured - [ ] Azure Policy not enforced ### Medium - [ ] Managed disk encryption disabled - [ ] Activity logs retention < 90 days - [ ] Resource locks not applied - [ ] Azure Bastion not used - [ ] Just-in-time VM access disabled ``` ### Azure AD / Entra ID Testing ```bash # Using Azure CLI az ad user list az ad group list az ad app list az role assignment list # Check privileged roles az role assignment list --role "Owner" az role assignment list --role "Contributor" az role assignment list --role "User Access Administrator" # Service Principal enumeration az ad sp list --all ``` ### Azure Privilege Escalation ```markdown ## Common Paths 1. **Automation Account RunAs** - Runbooks often have high privileges - Check for stored credentials 2. **Key Vault Access** - Extract secrets/certificates - Impersonate service principals 3. **Managed Identity Abuse** - IMDS endpoint token theft - curl http://169.254.169.254/metadata/identity/oauth2/token 4. **Resource Group Permissions** - Contributor can reset VM passwords - Can add new users to VMs 5. **Azure AD Roles** - Global Admin = full control - Application Admin can create apps with high privileges 6. **Subscription Permissions** - User Access Administrator can grant roles ``` --- ## GCP Security Testing ### GCP Assessment ```bash # Using ScoutSuite scout gcp --project-id PROJECT_ID # Using gcloud gcloud projects get-iam-policy PROJECT_ID gcloud compute instances list gcloud storage buckets list ``` ### GCP Misconfigurations ```markdown ### Critical - [ ] Public Cloud Storage buckets - [ ] Service accounts with Owner role - [ ] Default service account in use - [ ] Public GCE instances - [ ] No organization policies ### High - [ ] Firewall rules too permissive - [ ] Cloud Logging disabled - [ ] No VPC Service Controls - [ ] Compute Engine default encryption - [ ] IAM binding with allUsers ### Medium - [ ] Uniform bucket access not enforced - [ ] Cloud Armor not configured - [ ] Binary Authorization disabled - [ ] Container Registry public - [ ] Access Transparency not enabled ``` ### GCP IAM Analysis ```bash # List IAM bindings gcloud projects get-iam-policy PROJECT_ID --flatten="bindings[].members" \ --format="table(bindings.role, bindings.members)" # Service accounts gcloud iam service-accounts list gcloud iam service-accounts get-iam-policy SA_EMAIL # Check for wide permissions gcloud asset search-all-iam-policies --scope=projects/PROJECT_ID \ --query="resource:*" --flatten="policy.bindings[].members" ``` ### GCP Privilege Escalation ```markdown ## Common Paths 1. **Service Account Key Creation** - iam.serviceAccountKeys.create - Create key for privileged SA 2. **Service Account Impersonation** - iam.serviceAccounts.getAccessToken - Act as another service account 3. **Compute Instance Access** - SSH to instance with service account - Metadata token extraction 4. **Cloud Functions** - cloudfunctions.functions.update - Modify function code to exfil credentials 5. **GKE/Kubernetes** - Access workload identity - Container escape to node 6. **IAM Policy Modification** - resourcemanager.projects.setIamPolicy - Grant self Owner role ## Metadata Exploitation curl -H "Metadata-Flavor: Google" \ http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token ``` --- ## Steampipe Queries ### Installation ```bash # Install Steampipe brew install turbot/tap/steampipe # Install plugins steampipe plugin install aws steampipe plugin install azure steampipe plugin install gcp ``` ### Security Queries ```sql -- AWS: Public S3 buckets SELECT name, acl, policy FROM aws_s3_bucket WHERE bucket_policy_is_public = true; -- AWS: Security groups with 0.0.0.0/0 SELECT group_id, group_name, ip_permissions FROM aws_vpc_security_group_rule WHERE cidr_ipv4 = '0.0.0.0/0'; -- AWS: IAM users without MFA SELECT name, mfa_enabled FROM aws_iam_user WHERE mfa_enabled = false; -- Azure: Storage accounts with public access SELECT name, allow_blob_public_access FROM azure_storage_account WHERE allow_blob_public_access = true; -- GCP: Service accounts with Owner SELECT distinct member FROM gcp_iam_policy_binding WHERE role = 'roles/owner' AND member LIKE 'serviceAccount:%'; ``` --- ## CIS Benchmark Compliance ### AWS CIS Checks ```bash # Using Prowler for CIS prowler aws --compliance cis_2.0_aws # Key CIS controls: # 1.x - Identity and Access Management # 2.x - Storage # 3.x - Logging # 4.x - Monitoring # 5.x - Networking ``` ### Compliance Frameworks | Framework | AWS | Azure | GCP | |-----------|-----|-------|-----| | CIS Benchmark | v2.0 | v2.0 | v2.0 | | SOC 2 | Prowler | Defender | SCC | | PCI DSS | Config Rules | Policy | SCC | | HIPAA | Config Rules | Policy | SCC | | GDPR | Artifact | Compliance | SCC | --- ## Cloud Metadata Services ### SSRF to Cloud Credentials ```markdown ## AWS IMDS http://169.254.169.254/latest/meta-data/ http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLE_NAME http://169.254.169.254/latest/user-data/ ## Azure IMDS (requires header: Metadata: true) http://169.254.169.254/metadata/instance?api-version=2021-02-01 http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/ ## GCP (requires header: Metadata-Flavor: Google) http://metadata.google.internal/computeMetadata/v1/ http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token ## Bypass techniques for SSRF filters http://[::ffff:169.254.169.254] http://169.254.169.254.nip.io http://0xA9FEA9FE # Decimal encoding ``` --- ## Reporting Template ```markdown # Cloud Security Assessment Report ## Executive Summary - Cloud provider(s) assessed - Assessment period - Critical findings count - Overall risk rating ## Scope - Accounts/subscriptions/projects - Services in scope - Testing methodology ## Findings ### [CRITICAL] Finding Title **Cloud**: AWS/Azure/GCP **Service**: S3/IAM/Storage **CIS Control**: 2.1.1 **Description** Detailed description of the misconfiguration. **Evidence** - Screenshots - CLI output - Policy documents **Impact** - Data exposure risk - Compliance violation - Attack scenarios **Remediation** 1. Immediate steps 2. Long-term fixes 3. Monitoring recommendations **References** - CIS Benchmark - Cloud documentation ``` --- ## Bundled Resources ### scripts/ - `aws_enum.py` - AWS enumeration automation - `azure_enum.py` - Azure enumeration automation - `gcp_enum.py` - GCP enumeration automation - `cloud_privesc.py` - Privilege escalation checker - `bucket_scanner.py` - Multi-cloud storage scanner ### references/ - `aws_security.md` - AWS security best practices - `azure_security.md` - Azure security best practices - `gcp_security.md` - GCP security best practices - `cis_controls.md` - CIS benchmark mappings ### checklists/ - `aws_audit.md` - AWS security audit checklist - `azure_audit.md` - Azure security audit checklist - `gcp_audit.md` - GCP security audit checklist
Related Skills
web-security-testing
Web application security testing workflow for OWASP Top 10 vulnerabilities including injection, XSS, authentication flaws, and access control issues.
solidity-security
Master smart contract security best practices to prevent common vulnerabilities and implement secure Solidity patterns. Use when writing smart contracts, auditing existing contracts, or implementin...
securitytrails-automation
Automate Securitytrails tasks via Rube MCP (Composio). Always search tools first for current schemas.
security-threat-model
Repository-grounded threat modeling that enumerates trust boundaries, assets, attacker capabilities, abuse paths, and mitigations, and writes a concise Markdown threat model. Use when the user asks to threat model a codebase or path, enumerate threats or abuse paths, or perform AppSec threat modeling. Do NOT use for general architecture summaries, code review, security best practices (use security-best-practices), or non-security design work.
security-scanning-security-sast
Static Application Security Testing (SAST) for code vulnerability analysis across multiple languages and frameworks
security-scanning-security-hardening
Coordinate multi-layer security scanning and hardening across application, infrastructure, and compliance controls.
security-scanning-security-dependencies
You are a security expert specializing in dependency vulnerability analysis, SBOM generation, and supply chain security. Scan project dependencies across ecosystems to identify vulnerabilities, ass...
security-requirement-extraction
Derive security requirements from threat models and business context. Use when translating threats into actionable requirements, creating security user stories, or building security test cases.
security-ownership-map
Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization. Use when the user explicitly wants a security-oriented ownership or bus-factor analysis grounded in git history (for example: orphaned sensitive code, security maintainers, CODEOWNERS reality checks for risk, sensitive hotspots, or ownership clusters). Do NOT use for general maintainer lists, non-security ownership questions, or threat modeling (use security-threat-model).
security-compliance-compliance-check
You are a compliance expert specializing in regulatory requirements for software systems including GDPR, HIPAA, SOC2, PCI-DSS, and other industry standards. Perform compliance audits and provide im...
security-bluebook-builder
Build security Blue Books for sensitive apps
security-best-practices
Perform language and framework specific security best-practice reviews and suggest improvements. Use when the user explicitly requests security best practices guidance, a security review or report, or secure-by-default coding help. Supports Python, JavaScript/TypeScript, and Go. Do NOT use for general code review, debugging, threat modeling (use security-threat-model), or non-security tasks.