select * from cloud;
Dynamically query APIs, code and more with SQL.
Zero-ETL from 140 data sources.
Zero-ETL from 140 data sources.
Download CLI
Open source. No DB required.
Turbot Pipes →
Cloud. Free for developers!
Fall in love with our huge plugin library, and stay for our incredible community!
Features
Query like it's 1992
Stop hacking around with scripts; get real work done with
the data access standard that's been rocking it for 4 decades.
Â
Â
> select runtime, count(*) as functionsfrom aws_lambda_functiongroup by runtime; +------------+-----------+ | runtime | functions | +------------+-----------+ | nodejs12.x | 1 | | python3.7 | 1 | | python3.8 | 2 | +------------+-----------+
Why SQL?
SQL has been the data access standard for decades. It levels the playing field for your team, easily integrates with other systems and accelerates delivery.
> select aws.name as aws_user_name, slack.id as slack_user_id, slack.display_name as slack_namefrom aws_iam_user as aws, slack_user as slackwhere aws.name = slack.email;+--------------------------+---------------+------------+| aws_user_name | slack_user_id | slack_name |+--------------------------+---------------+------------+| dwight@dundermifflin.com | U2EMB8HLP | dwight || jim@dundermifflin.com | U02HE4Z7E | jim |+--------------------------+---------------+------------+
Explore, connect and join data
Painlessly join live cloud configuration data with internal or external data sets to create new insights.
> select domain, expiration_date from whois_domain where domain in ('apple.com','steampipe.io');+--------------+---------------------+| domain | expiration_date |+--------------+---------------------+| apple.com | 2021-02-20 05:00:00 || steampipe.io | 2021-10-13 19:28:29 |+--------------+---------------------+
What is Zero-ETL?
Your cloud is a live database that changes fast. Don't wait on ETL to sync, or rely on old data. Crunch it where it's born, fueling new use cases and swift decisions.
Â
Â
Use Cases
You've got questions,
Steampipe has answers.
Which users have MFA enabled right now?
Complianceselect id, display_name, real_name, has_2fafrom slack_user;
What security groups are open to the world?
Securityselect group_name, group_idfrom aws_vpc_security_group_rulewhere type = 'ingress' and cidr_ip = '0.0.0.0/0';
Which resources aren't tagged correctly?
Operationsselect id, namefrom azure_compute_imagewhere tags -> 'owner' is null or tags -> 'app_id' is null;
What storage volumes are not in use?
Costselect volume_id, volume_typefrom aws_ebs_volumewhere attachments is null;
How It Works
Get Zero-ETL superpowers in < 60 seconds
Â
Â
Â
Install your first plugin
Steampipe relies on plugins to implement the specific interfaces to cloud services, files, and other resources. Without a plugin, there is nothing to query!
$ steampipe plugin install awsâ ‡ Installing plugin aws...Installed plugin: aws
Browse available tables
Use one of Steampipe's 500+ data sources or roll your own. Explore metadata and documentation for our community plugins on the Steampipe Hub.
> .tables+----------------------+-------------------------+| Table | Description |+----------------------+-------------------------+| aws_ebs_snapshot | AWS EBS Snapshots || aws_ebs_volume | AWS EBS Volumes || aws_iam_user | AWS IAM Users || aws_iam_role | AWS IAM Roles | ... ...| aws_vpc_route_table | AWS VPC Route Tables || aws_vpc_subnet | AWS VPC Subnets |+----------------------+-------------------------+
Explore some metadata
Steampipe organizes your cloud metadata into tables and fields that are easily discoverable and readable by humans!
> .inspect aws.aws_iam_role+---------------------------+--------------------------+-----------------------------------------------------------------+| column | type | description |+---------------------------+--------------------------+-----------------------------------------------------------------+| name | text | The friendly name that identifies the role. || role_id | text | The stable and unique string identifying the role. || path | text | The path to the role. || arn | text | The Amazon Resource Name (ARN) specifying the role. || create_date | timestamp with time zone | The date and time when the role was created. | ... ... ...| assume_role_policy | jsonb | The policy that grants an entity permission to assume the role. || tags_src | jsonb | A list of tags that are attached to the role. |+---------------------------+--------------------------+-----------------------------------------------------------------+
Write your first query
Every journey begins with the first step. Let us know what your first query was@steampipeio and we will send you a steampipe sticker.
> select create_date, arn from aws_iam_role;+---------------------------+--------------------------------------------------------------------------+| create_date | arn |+---------------------------+--------------------------------------------------------------------------+| 2018-03-19T04:19:30+05:30 | arn:aws:iam::123456789012:role/OrganizationAccountAccessRole || 2018-07-18T22:13:28+05:30 | arn:aws:iam::123456789012:role/EMR_EC2_DefaultRole || 2018-07-18T22:13:28+05:30 | arn:aws:iam::123456789012:role/EMR_DefaultRole || 2019-03-14T20:12:09+05:30 | arn:aws:iam::123456789012:role/service-role/AmazonAppStreamServiceAccess |+---------------------------+--------------------------------------------------------------------------+
Run from your own DB
Install Steampipe as a PostgreSQL FDW or SQLite extension and instantly query your infrastructure and other cloud APIs Zero-ETL.
> sqlite3
SQLite version 3.39.2 2022-07-21 15:24:47
sqlite> .load steampipe_plugin_steampipesqlite> .mode columnsqlite> select name, update_time from steampipe_registry_plugin limit 5;
Â
Â
select * from cloud;
Instantly query your cloud, code, logs & more with SQL. Build on thousands of open-source benchmarks & dashboards for security & insights.
Download CLI
Open source. No DB required.
Turbot Pipes →
Cloud. Free for developers!