prowler-sdk-check
Creates Prowler security checks following SDK architecture patterns. Trigger: When creating or updating a Prowler SDK security check (implementation + metadata) for any provider (AWS, Azure, GCP, K8s, GitHub, etc.).
Оригинален текст · няма потвърден превод на българскиПърво прочетете инструкцията.
Файлът се зарежда от посочения източник само по ваше действие. Можете да го прочетете тук, да го копирате или да го запазите като .md.
GitHub хранилище- Звезди на репото
- 13 160
- Лиценз
- Не е посочен. Проверете в репозитория.
- Последна проверка на записа
- Няма посочена дата
Добавете в своя инструмент.
Командата отваря избора на skills от репозитория. Прочетете файла и условията на автора преди изпълнение.
npx skills add prowler-cloud/prowlerСтраницата копира текст. Не инсталира и не изпълнява нищо на устройството ви.
Откъс от SKILL.md
Началото на файла на автора, без превод.
Check Structure
prowler/providers/{provider}/services/{service}/{check_name}/
├── __init__.py
├── {check_name}.py
└── {check_name}.metadata.json
Step-by-Step Creation Process
1. Prerequisites
- Verify check doesn't exist: Search
prowler/providers/{provider}/services/{service}/ - Ensure provider and service exist - create them first if not
- Confirm service has required methods - may need to add/modify service methods to get data
2. Create Check Files
mkdir -p prowler/providers/{provider}/services/{service}/{check_name}
touch prowler/providers/{provider}/services/{service}/{check_name}/__init__.py
touch prowler/providers/{provider}/services/{service}/{check_name}/{check_name}.py
touch prowler/providers/{provider}/services/{service}/{check_name}/{check_name}.metadata.json
3. Implement Check Logic
from prowler.lib.check.models import Check, Check_Report_{Provider}
from prowler.providers.{provider}.services.{service}.{service}_client import {service}_client
class {check_name}(Check):
"""Ensure that {resource} meets {security_requirement}."""
def execute(self) -> list[Check_Report_{Provider}]:
"""Execute the check logic.
Returns:
A list of reports containing the result of the check.
"""
findings = []
for resource in {service}_client.{resources}:
report = Check_Report_{Provider}(metadata=self.metadata(), resource=resource)
report.status = "PASS" if resource.is_compliant else "FAIL"
report.status_extended = f"Resource {resource.name} compliance status."
findings.append(report)
return findings
4. Create Metadata File
See complete schema below and assets/ folder for complete templates.
For detailed field documentation, see references/metadata-docs.md.
5. Verify Check Detection
uv run python prowler-cli.py {provider} --list-checks | grep {check_name}
6. Run Check Locally
uv run python prowler-cli.py {provider} --log-level ERROR --verbose --check {check_name}
7. Create Tests
See prowler-test-sdk skill for test patterns (PASS, FAIL, no resources, error handling).
Check Naming Convention
{service}_{resource}_{security_control}
Examples:
ec2_instance_public_ip_disableds3_bucket_encryption_enablediam_user_mfa_enabled