Skip to main content
Prowler supports security scanning of Oracle Cloud Infrastructure (OCI) environments. This guide will help you get started with using Prowler to audit your OCI tenancy.

Prowler Cloud

The following steps apply to Prowler Cloud and Prowler Local Server.

Step 1: Collect OCI Identifiers

  1. Sign in to the OCI Console and open Tenancy Details to copy the Tenancy OCID.
  2. Go to Identity & SecurityUsers, select the principal that owns the API key, and copy the User OCID.
  3. Generate or locate the API key fingerprint and private key for that user. Follow the Config File Authentication steps to create or rotate the key pair and copy the fingerprint.
  4. Note the Region identifier to scan (for example, us-ashburn-1).

Step 2: Access Prowler Cloud

  1. Navigate to Prowler Cloud or launch Prowler Local Server.
  2. Go to ConfigurationProviders and click Add Provider. Add OCI Provider
  3. Select Oracle Cloud and enter the Tenancy OCID and an optional alias, then choose Next. Add OCI Cloud Tenancy

Step 3: Add OCI API Key Credentials

Prowler Cloud connects to OCI with API key credentials. Provide:
  • User OCID for the API key owner
  • Fingerprint of the API key
  • Region (for example, us-ashburn-1)
  • Private Key Content (paste the full PEM value)
  • Passphrase (Optional) if the private key is encrypted
Select Next, then Launch Scan to validate the connection and start the first OCI scan. The private key content is encoded for secure transmission. Add OCI API Key Credentials

Prowler CLI

Prerequisites

Before you begin, ensure you have:
  1. Prowler installed with OCI dependencies:
  2. OCI Python SDK (automatically installed with Prowler):
  3. OCI Account Access with appropriate permissions to read resources in your tenancy.

Authentication

Prowler supports multiple authentication methods for OCI. For detailed authentication setup, see the OCI Authentication Guide. Note: OCI Session Authentication and Config File Authentication both use the same ~/.oci/config file. The difference is how the config file is generated - automatically via browser (session auth) or manually with API keys. The easiest and most secure method is using OCI session authentication, which automatically generates your config file via browser login. Prerequisites: You need to have the OCI CLI installed. See the OCI CLI Installation Guide for installation instructions.
  1. Authenticate using the OCI CLI:
    This will open your browser for OCI Console login and automatically generate the config file.
  2. Add your user OCID to ~/.oci/config: Get your user OCID from the OCI Console: Navigate to: Identity & SecurityUsers → Click your username → Copy the OCID Get User OCID from OCI Console Direct link: OCI Console - Users Or use the OCI CLI:
    Edit ~/.oci/config and add the user parameter:
  3. Run Prowler:

Alternative: Manual API Key Setup

If you prefer to manually generate API keys instead of using browser-based session authentication, see the detailed instructions in the Authentication Guide. Note: Both methods use the same ~/.oci/config file - the difference is that manual setup uses static API keys while session authentication uses temporary session tokens.
Using a Specific Profile
If you have multiple profiles in your OCI config:
Using a Custom Config File

Instance Principal Authentication

IMPORTANT: This authentication method only works when Prowler is running inside an OCI compute instance. If you’re running Prowler from your local machine, use OCI Session Authentication instead. When running Prowler on an OCI Compute instance, you can use Instance Principal authentication:
Requirements:
  • Prowler must be running on an OCI compute instance
  • The compute instance must have a dynamic group and policy allowing access to OCI resources
  • Example policy:

Basic Usage

Scan Entire Tenancy

Scan Specific Region

Scan Specific Compartments

Run Specific Checks

Run Specific Services

Compliance Frameworks

Run CIS OCI Foundations Benchmark v3.0:

Required Permissions

Prowler requires read-only permissions to audit your OCI tenancy. Below are the minimum required permissions:

Tenancy-Level Policy

Create a group prowler-users and add your user to it, then create this policy:

Service-Specific Permissions

For more granular control, you can grant specific permissions:

Output Formats

Prowler supports multiple output formats for OCI:

JSON

CSV

HTML

Multiple Formats

Common Scenarios

Security Assessment

Full security assessment with CIS compliance:

Continuous Monitoring

Run specific security-critical checks:

Compartment-Specific Audit

Audit a specific project compartment:

Troubleshooting

Authentication Issues

Error: “Could not find a valid config file”
  • Ensure ~/.oci/config exists and is properly formatted
  • Verify the path to your API key is correct
  • Check file permissions: chmod 600 ~/.oci/config ~/.oci/oci_api_key.pem
Error: “Invalid key or signature”
  • Verify the API key fingerprint matches the one in OCI Console
  • Ensure the public key is uploaded to your OCI user account
  • Check that the private key file is accessible

Permission Issues

Error: “Authorization failed or requested resource not found”
  • Verify your user has the required policies (see Required Permissions)
  • Check that policies apply to the correct compartments
  • Ensure policies are not restricted by conditions that exclude your user

Region Issues

Error: “Invalid region”
  • Check available regions: prowler oci --list-regions
  • Verify your tenancy is subscribed to the region
  • Use the region identifier (e.g., us-ashburn-1), not the display name

Advanced Usage

Using Mutelist

Create a mutelist file to suppress specific findings:
Run with mutelist:

Custom Checks Metadata

Override check metadata:
Run with custom metadata:

Filtering by Status

Only show failed checks:

Filtering by Severity

Only show critical and high severity findings:

Next Steps

Additional Resources