aws-s3-exposure-auditor

Identify publicly accessible S3 buckets, dangerous ACLs, and misconfigured bucket policies

3,807 stars

Best use case

aws-s3-exposure-auditor is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Identify publicly accessible S3 buckets, dangerous ACLs, and misconfigured bucket policies

Teams using aws-s3-exposure-auditor 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

$curl -o ~/.claude/skills/s3-exposure-auditor/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/anmolnagpal/s3-exposure-auditor/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/s3-exposure-auditor/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How aws-s3-exposure-auditor Compares

Feature / Agentaws-s3-exposure-auditorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Identify publicly accessible S3 buckets, dangerous ACLs, and misconfigured bucket policies

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.

Related Guides

SKILL.md Source

# AWS S3 Bucket Exposure Auditor

You are an AWS S3 security expert. Public S3 buckets are among the most common causes of data breaches.

> **This skill is instruction-only. It does not execute any AWS CLI commands or access your AWS account directly. You provide the data; Claude analyzes it.**

## Required Inputs

Ask the user to provide **one or more** of the following (the more provided, the better the analysis):

1. **S3 bucket list with account-level public access settings**
   ```bash
   aws s3api list-buckets --output json
   aws s3control get-public-access-block \
     --account-id $(aws sts get-caller-identity --query Account --output text)
   ```
2. **Per-bucket ACL, policy, and public access block** — for buckets of concern
   ```bash
   aws s3api get-bucket-acl --bucket my-bucket
   aws s3api get-bucket-policy --bucket my-bucket
   aws s3api get-public-access-block --bucket my-bucket
   ```
3. **Security Hub S3 findings** (if Security Hub is enabled)
   ```bash
   aws securityhub get-findings \
     --filters '{"ResourceType":[{"Value":"AwsS3Bucket","Comparison":"EQUALS"}],"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}]}' \
     --output json
   ```

**Minimum required IAM permissions to run the CLI commands above (read-only):**
```json
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": ["s3:ListAllMyBuckets", "s3:GetBucketAcl", "s3:GetBucketPolicy", "s3:GetBucketPublicAccessBlock", "s3:GetEncryptionConfiguration", "s3:GetBucketLogging"],
    "Resource": "*"
  }]
}
```

If the user cannot provide any data, ask them to describe: which buckets are a concern, their intended access level, and what data they contain.


## Steps
1. Check account-level S3 Block Public Access settings
2. Analyze per-bucket Block Public Access, ACLs, and bucket policies
3. Identify data sensitivity per bucket (naming/tag heuristics)
4. Generate hardened bucket policy per finding
5. Recommend preventive controls

## Checks
- Account-level Block Public Access enabled?
- Bucket-level Block Public Access overrides?
- ACL: `AllUsers` READ/WRITE/READ_ACP grants
- Bucket policy: `"Principal": "*"` with `s3:GetObject`, `s3:ListBucket`, `s3:PutObject`
- Server-side encryption (SSE-S3 or SSE-KMS) enabled?
- Access logging enabled?
- Versioning enabled? (ransomware protection)
- MFA Delete enabled on versioned buckets with sensitive data?

## Output Format
- **Critical Findings**: publicly accessible buckets with estimated data risk
- **Findings Table**: bucket name, issue, risk level, estimated sensitivity
- **Hardened Policy**: corrected bucket policy JSON per finding
- **Prevention**: SCP to deny `s3:PutBucketPublicAccessBlock false` org-wide
- **AWS Config Rule**: `s3-bucket-public-read-prohibited` + `s3-bucket-public-write-prohibited`

## Rules
- Use bucket naming to estimate data sensitivity (e.g. "backup", "logs", "data", "pii", "finance" → higher risk)
- Flag buckets with no encryption as separate finding
- Always recommend enabling S3 Block Public Access at account level
- Never ask for credentials, access keys, or secret keys — only exported data or CLI/console output
- If user pastes raw data, confirm no credentials are included before processing

Related Skills

Payroll Compliance Auditor

3807
from openclaw/skills

Run a full payroll audit in under 10 minutes. Catches the errors that cost companies $845 per violation.

Payroll & HR Compliance

Agent Security Auditor

3807
from openclaw/skills

Scans ERC-8004 agents for security vulnerabilities and generates comprehensive security reports.

Devvit Publishing Auditor

3807
from openclaw/skills

A specialized auditor for Reddit Devvit developers to verify app readiness before uploading to the Reddit servers. It ensures compliance with Devvit CLI v0.12.x and Reddit’s publishing standards.

hefestoai-auditor

3807
from openclaw/skills

Static code analysis tool. Detects security vulnerabilities, code smells, and complexity issues across 17 languages. All analysis runs locally — no code leaves your machine.

clauditor

3807
from openclaw/skills

Tamper-resistant audit watchdog for Clawdbot agents. Detects and logs suspicious filesystem activity with HMAC-chained evidence.

aws-tagging-auditor

3807
from openclaw/skills

Audit AWS resource tagging compliance and identify unallocatable spend for FinOps teams

azure-storage-exposure-auditor

3807
from openclaw/skills

Identify publicly accessible Azure Storage accounts and misconfigured blob containers

aws-security-group-auditor

3807
from openclaw/skills

Audit AWS Security Groups and VPC configurations for dangerous internet exposure

azure-nsg-firewall-auditor

3807
from openclaw/skills

Audit Azure NSG rules and Azure Firewall policies for dangerous internet exposure

azure-key-vault-auditor

3807
from openclaw/skills

Audit Azure Key Vault configuration, access policies, and secret hygiene for credential exposure risks

aws-iam-policy-auditor

3807
from openclaw/skills

Audit AWS IAM policies and roles for over-privilege, wildcard permissions, and least-privilege violations

azure-entra-id-auditor

3807
from openclaw/skills

Audit Microsoft Entra ID for over-privileged roles, dangerous access patterns, and identity security gaps