Skip to main content
Prowler enables automated provisioning of multiple cloud providers through the Bulk Provider Provisioning tool. This approach streamlines the onboarding process for organizations managing numerous cloud accounts, subscriptions, and projects across AWS, Azure, GCP, Kubernetes, Microsoft 365, and GitHub. The tool is available in the Prowler repository at: util/prowler-bulk-provisioning

Overview

The Bulk Provider Provisioning tool automates the creation of cloud providers in Prowler Cloud or Prowler Local Server by:
  • Reading provider configurations from YAML files
  • Creating providers with appropriate authentication credentials
  • Testing connections to verify successful authentication
  • Processing multiple providers concurrently for efficiency
Using AWS Organizations? For organizations with many AWS accounts, use the automated AWS Organizations Bulk Provisioning tool to automatically discover and generate configuration for all accounts in your organization.

Prerequisites

Requirements

  • Python 3.7 or higher
  • Prowler API key (from Prowler Cloud or Prowler Local Server)
  • Authentication credentials for target cloud providers

Installation

Clone the repository and install the required dependencies:

Authentication Setup

Configure your Prowler API key:
To create an API key:
  1. Log in to Prowler Cloud or Prowler Local Server
  2. Click ProfileAccount
  3. Click Create API Key
  4. Provide a descriptive name and optionally set an expiration date
  5. Copy the generated API key (it will only be shown once)
For detailed instructions, see: Prowler Cloud API Keys

Configuration File Structure

Create a YAML file listing your cloud providers and credentials:

Running the Bulk Provisioning Tool

Basic Usage

To provision all providers from your configuration file:
The tool automatically tests each provider connection after creation (enabled by default).

Dry Run Mode

Test your configuration without making API calls:

Skip Connection Testing

To provision providers without testing connections:

Test Existing Providers Only

To verify connections for already provisioned providers:

Provider-Specific Configuration

AWS Provider Configuration

Using Access Keys

Azure Provider Configuration

GCP Provider Configuration

Using Service Account JSON

Using OAuth2 Credentials

Kubernetes Provider Configuration

Microsoft 365 Provider Configuration

GitHub Provider Configuration

Using Personal Access Token

Using GitHub App

Advanced Configuration

Concurrent Processing

Adjust the number of concurrent provider creations:

Custom API Endpoints

For Prowler Local Server installations:

Timeout Configuration

Set custom timeout for API requests:

Bulk Provider Management

Deleting Multiple Providers

To remove all providers from your Prowler account:
Filter deletions by provider type:
Filter deletions by alias pattern:

Configuration File Format

The tool uses YAML format for provider configuration files. Each provider entry requires:
  • provider: The cloud provider type (aws, azure, gcp, kubernetes, m365, github)
  • uid: Unique identifier for the provider (account ID, subscription ID, project ID, etc.)
  • alias: A friendly name for the provider
  • auth_method: Authentication method to use
  • credentials: Authentication credentials specific to the provider and method
Example YAML structure:

Example Output

Successful provider provisioning:

Troubleshooting

Invalid API Key

Network Timeouts

Provider Already Exists

Authentication Failures