Back to Checks
aws

Resource Explorer indexes exist

resourceexplorer2_indexes_found
Service: resourceexplorer2Severity: low
OfficialBuilt-inVerified
Categories:forensics-ready
Resource Type:Other

AWS Resource Explorer has user-owned indexes present in the account. The assessment determines whether at least one index exists in any enabled Region for resource cataloging and search.

Risk

Absent indexes reduce asset visibility, creating blind spots where misconfigured or orphaned resources go unnoticed. This degrades confidentiality (unseen public exposure), integrity (unauthorized changes undetected), and availability (slower containment and recovery), prolonging incident response and enabling lateral movement.

Run this check with Prowler

Run in Prowler Cloud
Run
prowler aws --checks resourceexplorer2_indexes_found

Recommendation

Create Resource Explorer indexes in all active Regions and designate an aggregator index for cross-Region search. Apply least-privilege access to views, align with tagging standards, and routinely verify indexing status. This improves inventory accuracy, supports defense-in-depth, and speeds detection and remediation.

Remediation

CLI

aws resource-explorer-2 create-index --region <REGION>

Terraform

resource "aws_resourceexplorer2_index" "<example_resource_name>" {
  type = "LOCAL"  # Critical: creates a local index so the check passes
}

NativeIaC

Resources:
  <example_resource_name>:
    Type: AWS::ResourceExplorer2::Index
    Properties:
      Type: LOCAL  # Critical: creates a local index in this Region so the check finds at least one index

Other

1Sign in to the AWS Management Console and open **AWS Resource Explorer**
2Go to **Settings** > **Indexes**
3Click **Create indexes**
4Select the current Region and click **Create indexes**
5Wait until the index state is ACTIVE

Check Code

from prowler.lib.check.models import Check, Check_Report_AWS
from prowler.providers.aws.services.resourceexplorer2.resourceexplorer2_client import (
    resource_explorer_2_client,
)


class resourceexplorer2_indexes_found(Check):
    def execute(self):
        findings = []
        if resource_explorer_2_client.indexes is not None:
            report = Check_Report_AWS(
                metadata=self.metadata(),
                resource={},
            )
            report.status = "FAIL"
            report.status_extended = "No Resource Explorer Indexes found."
            report.region = resource_explorer_2_client.region
            report.resource_arn = "NoResourceExplorer"
            report.resource_id = resource_explorer_2_client.audited_account
            report.resource_arn = resource_explorer_2_client.index_arn_template
            if resource_explorer_2_client.indexes:
                report.region = resource_explorer_2_client.indexes[0].region
                report.resource_arn = resource_explorer_2_client.indexes[0].arn
                report.status = "PASS"
                report.status_extended = f"Resource Explorer Indexes found: {len(resource_explorer_2_client.indexes)}."
            findings.append(report)

        return findings