skillfed

prowler-provider

Prowler-provider guides you through adding new cloud providers or services to the Prowler SDK. It provides the required directory structure, class templates for providers and services, and patterns for handling authentication and CLI arguments securely.

Prowler-provider helps you add new cloud providers or services to the Prowler SDK using established architecture patterns.

AI-generated summary based on this skill's SKILL.md

14,491 2,285 Apache-2.0 updated by prowler-cloud

Install

prowler-cloud/prowler/prowler-provider · repository language: Python

git clone https://github.com/prowler-cloud/prowler
cp -r prowler/skills/prowler-provider ~/.claude/skills/prowler-provider
npx skillfed install prowler-cloud/prowler/prowler-provider

Frequently asked questions

AI-generated answers based on this skill's SKILL.md and metadata

How do I extend prowler SDK with a new cloud provider?

Prowler-provider guides you through extending the Prowler SDK by adding new cloud providers. Start by creating a provider folder under the providers directory following the established structure. Implement a provider class that inherits from the base provider, set up authentication handling, and create service classes for each cloud service you want to support. The skill provides templates and patterns for folder organization, credential management, and resource fetchers to accelerate development.

What is the prowler provider architecture and folder structure?

Prowler-provider explains the provider architecture through its directory layout and class hierarchy. Providers live in dedicated folders containing a __init__.py file, a provider class file, and service subfolders. Each service folder holds a service class and checks. The architecture separates concerns: the provider manages authentication and region handling, services encapsulate API clients as singletons, and checks implement audit logic. This structure ensures consistency across all Prowler providers.

How do I add a service to an existing prowler provider?

Prowler-provider teaches you to add services by creating a new service folder within your provider directory. Implement a service class that instantiates and manages the cloud API client as a singleton. Define resource fetcher methods that retrieve cloud resources, then create check files that use these fetchers to audit compliance. Follow the naming conventions and inheritance patterns shown in the skill to ensure your service integrates seamlessly with Prowler's check discovery and execution system.

How should prowler provider authentication and credentials be handled?

Prowler-provider covers secure credential handling for providers. Authentication logic belongs in the provider class __init__ method, where you validate and store credentials from environment variables or CLI arguments. Use Prowler's credential management patterns to avoid exposing secrets in logs or error messages. The skill shows how to implement provider-specific authentication flows, handle multiple credential types, and integrate with Prowler's existing credential resolution order for consistency.

How do I handle sensitive CLI arguments and environment variables in prowler?

Prowler-provider addresses secure handling of sensitive data by teaching you to mark CLI arguments as secret-bearing and exclude them from debug output. Store sensitive values in environment variables rather than passing them directly through code. The skill demonstrates patterns for sanitizing logs, protecting credentials during provider initialization, and following Prowler's conventions for argument naming and validation to prevent accidental exposure.

What patterns should I follow for prowler service class implementation?

Prowler-provider provides service class patterns that establish consistency across the SDK. Services instantiate cloud API clients as singletons to avoid repeated authentication. Implement resource fetcher methods that query the cloud API and return structured data. Use exception handling to gracefully manage API errors and region availability. The skill shows how to organize checks within service folders, name them following Prowler conventions, and ensure they access resources through the service's client interface.

SKILL.md

rendered from the published skill — quoted content, verbatim

When to Use

Use this skill when: - Adding a new cloud provider to Prowler - Adding a new service to an existing provider - Understanding the provider architecture pattern

Provider Architecture Pattern

Every provider MUST follow this structure:

```text prowler/providers/{provider}/ ├── init.py ├── {provider}_provider.py # Main provider class ├── models.py # Provider-specific models ├── config.py # Provider configuration ├── exceptions/ # Provider-specific exceptions ├── lib/ │ ├── service/ # Base service class │ ├── arguments/ # CLI arguments parser │ └── mutelist/ #

(truncated - see the full file via the links below)

Read as markdown · JSON record · Browse the source repository

File tree — 5 files
skills/prowler-provider/SKILL.md
skills/prowler-provider/assets/client.py
skills/prowler-provider/assets/provider.py
skills/prowler-provider/assets/service.py
skills/prowler-provider/references/provider-docs.md

Related skills

Tags

cloud-provider-sdk security-scanning-framework multi-cloud-architecture credential-management api-client-pattern compliance-automation infrastructure-auditing singleton-pattern