Prowler CLI
Prowler requires Alibaba Cloud credentials to perform security checks. Authentication is available through the following methods (in order of priority):
- Credentials URI (Recommended for centralized credential services)
- OIDC Role Authentication (Recommended for ACK/Kubernetes)
- ECS RAM Role (Recommended for ECS instances)
- RAM Role Assumption (Recommended for cross-account access)
- STS Temporary Credentials
- Permanent Access Keys
- Default Credential Chain
Prowler does not accept credentials through command-line arguments. Provide credentials through environment variables or the Alibaba Cloud credential chain.
Option 1: Environment Variables (Permanent Credentials)
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-access-key-id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-access-key-secret"
prowler alibabacloud
Option 2: Environment Variables (STS Temporary Credentials)
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-sts-access-key-id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-sts-access-key-secret"
export ALIBABA_CLOUD_SECURITY_TOKEN="your-sts-security-token"
prowler alibabacloud
Option 3: RAM Role Assumption (Environment Variables)
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-access-key-id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-access-key-secret"
export ALIBABA_CLOUD_ROLE_ARN="acs:ram::123456789012:role/ProwlerAuditRole"
export ALIBABA_CLOUD_ROLE_SESSION_NAME="ProwlerAssessmentSession" # Optional
prowler alibabacloud
Option 4: RAM Role Assumption (CLI + Environment Variables)
# Set credentials via environment variables
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-access-key-id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-access-key-secret"
# Specify role via CLI argument
prowler alibabacloud --role-arn acs:ram::123456789012:role/ProwlerAuditRole --role-session-name ProwlerAssessmentSession
# When running on an ECS instance with an attached RAM role
prowler alibabacloud --ecs-ram-role RoleName
# Or using environment variable
export ALIBABA_CLOUD_ECS_METADATA="RoleName"
prowler alibabacloud
Option 6: OIDC Role Authentication (for ACK/Kubernetes)
# For applications running in ACK (Alibaba Container Service for Kubernetes) with RRSA enabled
export ALIBABA_CLOUD_ROLE_ARN="acs:ram::123456789012:role/YourRole"
export ALIBABA_CLOUD_OIDC_PROVIDER_ARN="acs:ram::123456789012:oidc-provider/ack-rrsa-provider"
export ALIBABA_CLOUD_OIDC_TOKEN_FILE="/var/run/secrets/tokens/oidc-token"
export ALIBABA_CLOUD_ROLE_SESSION_NAME="ProwlerOIDCSession" # Optional
prowler alibabacloud
# Or using CLI argument
prowler alibabacloud --oidc-role-arn acs:ram::123456789012:role/YourRole
Option 7: Credentials URI (External Credential Service)
# Retrieve credentials from an external URI endpoint
export ALIBABA_CLOUD_CREDENTIALS_URI="http://localhost:8080/credentials"
prowler alibabacloud
# Or using CLI argument
prowler alibabacloud --credentials-uri http://localhost:8080/credentials
Option 8: Default Credential Chain
The SDK automatically checks credentials in the following order:
- Environment variables (
ALIBABA_CLOUD_* or ALIYUN_*)
- OIDC authentication (if OIDC environment variables are set)
- Configuration file (
~/.aliyun/config.json)
- ECS instance metadata (if running on ECS)
- Credentials URI (if
ALIBABA_CLOUD_CREDENTIALS_URI is set)
Specify Regions
To run checks only in specific regions:
prowler alibabacloud --regions cn-hangzhou cn-shanghai
Run Specific Checks
To run specific checks:
prowler alibabacloud --checks ram_no_root_access_key ram_user_mfa_enabled_console_access
Run Compliance Framework
To run a specific compliance framework:
prowler alibabacloud --compliance cis_2.0_alibabacloud