semgrep-s3-scanner
v1.0.5
Published
Run semgrep scans using rules stored in S3
Maintainers
Readme
Semgrep S3 Scanner
A command-line utility that integrates with your projects to run semgrep scans using rules stored in S3. This tool is designed to be easily installed via npm and configured in your project's package.json.
Installation
npm install -g semgrep-s3-scannerPrerequisites
- Install semgrep:
# For macOS
brew install semgrep
# For other platforms, see: https://semgrep.dev/docs/getting-started/installation/- Configure AWS credentials (for S3 access):
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_keyUsage
Basic usage:
semgrep-s3-scanner scanWith options:
semgrep-s3-scanner scan \
--bucket your-bucket-name \
--prefix rules/ \
--target ./src \
--output report.json \
--format jsonOptions
-b, --bucket <bucket>: S3 bucket name (default: 'semgrep-rules')-p, --prefix <prefix>: Rules prefix in S3 (default: 'rules/')-t, --target <target>: Target directory or file to scan (default: '.')-o, --output <output>: Output file for the report (default: 'semgrep-report.json')-f, --format <format>: Output format (json or sarif) (default: 'json')
Integration with CI/CD
Add to your CI pipeline:
steps:
- name: Run Semgrep Scan
run: |
npm install -g semgrep-s3-scanner
semgrep-s3-scanner scan --output scan-results.jsonDevelopment
- Clone the repository
- Install dependencies:
npm install- Build the project:
npm run build- Run tests:
npm testLicense
MIT
Command Line Options
-d, --directory <path>: Directory to scan (required)-b, --bucket <name>: S3 bucket name (required, can be set via SEMGREP_S3_BUCKET env variable)-r, --rules-path <path>: Path to rules in S3 bucket (default: 'rules/')-o, --output <path>: Output path for the report (default: 'semgrep-report.md')
S3 Rules Format
The rules should be stored in your S3 bucket as a YAML file. Example:
rules:
- id: example-rule
pattern: $X = $Y
message: "Found assignment"
languages: [python]
severity: WARNINGOutput
The tool generates two files:
semgrep-results.json- Raw semgrep resultssemgrep-report.md- Human-readable markdown report
Requirements
- Node.js 14+
- AWS credentials configured
- semgrep CLI installed
