title: CloudSlash - Cloud Providers Reference description: Five official plugins: AWS, GCP, Azure, Kubernetes, and Linode. Each implements the same 5-method gRPC contract. And remember, these are just the built-in pl...
Cloud Providers¶
Five official plugins: AWS, GCP, Azure, Kubernetes, and Linode. Each implements the same 5-method gRPC contract.
And remember, these are just the built-in plugins. Developers have total freedom to build, override, and deploy their own versions of these plugins or entirely new ones to the registry. You are never locked in.
Categories
Each plugin is assigned a category (cloud, database, infrastructure, saas, iot, devops, security) by the registry maintainer. Categories control workspace filtering in the TUI ([C] key) and Web UI. See Terminal Dashboard for details.
AWS¶
Plugin
Credential Chain¶
The engine evaluates the standard AWS credential chain in the following order:
- Environment variables (
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) - Shared credentials file (
~/.aws/credentials) - AWS SSO session (
aws sso login) - IAM instance role (EC2 metadata service)
- ECS task role
Scanned Resources¶
22 Types
| Service | Resource Type | Waste Heuristic |
|---|---|---|
| EC2 | Instances | Stopped >14d, CPU <5% for 7d, zombie state |
| EC2 | AMIs | Age >90d, not attached to launch template |
| EBS | Volumes | State available (unattached) >14d |
| EBS | Snapshots | Age >90d, orphaned from source volume |
| RDS | Instances | 0 connections for 7d, CPU <5% |
| RDS | Snapshots | Age >90d, manual (not automated backup) |
| S3 | Buckets | Empty, no access for 90d, region compliance violations |
| Lambda | Functions | 0 invocations for 90d, last modified >90d |
| ECS | Clusters | 0 running tasks/services, idle EC2 backing |
| EKS | Clusters | Ghost node groups, empty clusters |
| ElastiCache | Clusters | 0 connections for 7d |
| Redshift | Clusters | 0 queries for 7d |
| DynamoDB | Tables | Provisioned throughput with <5% utilization |
| NAT Gateway | Gateways | Traffic <1GB for 30d, connected subnets have 0 running instances |
| Elastic IP | Addresses | Unattached (incurs $3.60/mo charge) |
| ALB/NLB | Load Balancers | 0 registered healthy targets |
| CloudWatch | Log Groups | Retention set to "Never Expire", size >1GB |
| ECR | Repositories | No lifecycle policy, images >90d old |
IAM Verification¶
The engine uses iam:SimulatePrincipalPolicy for formal privilege verification. This catches hidden admin permissions behind innocuous role names that string-matching approaches miss.
GCP¶
Plugin
Credential Chain¶
GOOGLE_APPLICATION_CREDENTIALSenvironment variable (service account JSON)- Application Default Credentials (
gcloud auth application-default login) - GCE metadata server (automatic on Compute Engine)
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/sa-key.json"
export CLOUDSDK_CORE_PROJECT="infrastructure-prod-42"
Scanned Resources¶
12 Types
| Service | Resource Type | Waste Heuristic |
|---|---|---|
| Compute Engine | GCE Instances | TERMINATED state, CPU <5% for 7d |
| Compute Engine | Persistent Disks | Unattached (no users field) |
| GKE | Clusters | ERROR or DEGRADED status |
| Cloud Run | Services | 0 requests for 30d |
| Cloud SQL | Instances | SUSPENDED or STOPPED state |
| BigQuery | Datasets | 0 queries for 90d |
| Cloud Spanner | Instances | Multi-node over-provisioning (>3x capacity) |
| Memorystore | Redis Instances | 0 connections for 7d |
| Cloud Functions | Functions | min-instances >0 with 0 invocations for 30d |
| Pub/Sub | Topics | 0 subscribers or 0 published messages for 30d |
| Dataproc | Clusters | Idle cluster (no running jobs for 24h) |
| GCS | Buckets | Nearline/Coldline with frequent access pattern |
Azure¶
Plugin
Credential Chain¶
- Environment variables (
AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,AZURE_TENANT_ID) DefaultAzureCredential(managed identity → CLI login)- Azure CLI (
az login)
export AZURE_CLIENT_ID="..."
export AZURE_CLIENT_SECRET="..."
export AZURE_TENANT_ID="..."
export AZURE_SUBSCRIPTION_ID="..."
Scanned Resources¶
11 Types
| Service | Resource Type | Waste Heuristic |
|---|---|---|
| Virtual Machines | VMs | Deallocated state, CPU <5% for 7d |
| Managed Disks | Disks | Unattached state |
| App Service | Plans | 0 apps deployed (empty plan) |
| Function Apps | Apps | Stopped state |
| Public IPs | Static IPs | NotAssociated state |
| Load Balancers | Standard LBs | Empty backend pool |
| AKS | Clusters | Failed provisioning state |
| Azure SQL | Databases | Paused state |
| Cosmos DB | Accounts | Provisioned throughput with <5% utilization |
| Redis | Cache Instances | 0 connections for 7d |
| Storage | Accounts | 0 operations for 90d |
Cross-Provider Topology¶
The daemon deduces cross-provider dependencies deterministically via CIDR block overlap heuristics during ingestion. For example, an AWS Transit Gateway with CIDR 10.0.0.0/16 connected to a GCP VPC with subnet 10.0.1.0/24 produces a FlowsTo edge in the Universal Graph.
The Topology workspace (2) in the TUI visualizes these cross-provider links with egress cost calculations and compliance violation detection.
Cloud connections are displayed in the TUI with CIDR ranges, provider counts, monthly egress costs, and traffic compliance status.