Skip to main content

steampipe-aws

Query AWS infrastructure using steampipe SQL. Triggers on "what resources", "find instances", "list buckets", "show IAM", "audit AWS", "security groups", or any AWS resource discovery task.

Informações da origem

Repositório
pypeaday/dotfiles
Última atividade na origem
5 de outubro de 2026 às 17:30
Idioma detectado do SKILL.md
inglês
Estrelas
2
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
steampipe-aws
description
Query AWS infrastructure using steampipe SQL. Triggers on "what resources", "find instances", "list buckets", "show IAM", "audit AWS", "security groups", or any AWS resource discovery task.
# Steampipe AWS Skill Query AWS infrastructure using SQL via steampipe CLI. ## When to Use Steampipe vs AWS CLI | Use Steampipe When | Use AWS CLI (`aws-infra` skill) When | |--------------------|--------------------------------------| | Cross-resource joins (EC2 + SGs + VPCs) | Single-resource inspection | | Bulk audit (all unencrypted volumes) | One-off checks (`describe-instances`) | | Complex filtering with SQL | Simple `--query` JMESPath filters | | Security compliance scans | Script automation | | Multi-table analysis | When steampipe isn't installed | **Rule of thumb:** If you'd write a `for` loop with `aws` CLI, use steampipe instead. ## When to Use - Discover AWS resources across accounts - Audit security configurations - Find resources by tags, regions, or properties - Investigate IAM policies and permissions - Check compliance and security posture - Troubleshoot infrastructure issues ## How to Query ```bash steampipe query "SELECT * FROM aws_s3_bucket LIMIT 5" steampipe query --output json "SELECT name, region FROM aws_ec2_instance" steampipe query --output csv "SELECT * FROM aws_iam_role" ``` ## Common Tables ### Compute | Table | Description | |-------|-------------| | `aws_ec2_instance` | EC2 instances | | `aws_lambda_function` | Lambda functions | | `aws_ecs_cluster` | ECS clusters | | `aws_ecs_service` | ECS services | | `aws_eks_cluster` | EKS clusters | ### Storage | Table | Description | |-------|-------------| | `aws_s3_bucket` | S3 buckets | | `aws_ebs_volume` | EBS volumes | | `aws_rds_db_instance` | RDS databases | | `aws_dynamodb_table` | DynamoDB tables | ### Networking | Table | Description | |-------|-------------| | `aws_vpc` | VPCs | | `aws_vpc_subnet` | Subnets | | `aws_vpc_security_group` | Security groups | | `aws_vpc_security_group_rule` | SG rules | | `aws_route53_zone` | Route53 zones | | `aws_elb_load_balancer` | Classic ELBs | | `aws_elbv2_load_balancer` | ALB/NLB | ### IAM & Security | Table | Description | |-------|-------------| | `aws_iam_user` | IAM users | | `aws_iam_role` | IAM roles | | `aws_iam_policy` | IAM policies | | `aws_iam_access_key` | Access keys | | `aws_kms_key` | KMS keys | | `aws_secretsmanager_secret` | Secrets Manager | ### Monitoring | Table | Description | |-------|-------------| | `aws_cloudwatch_alarm` | CloudWatch alarms | | `aws_cloudwatch_log_group` | Log groups | | `aws_cloudtrail_trail` | CloudTrail trails | ## Query Patterns ### Find Public Resources ```sql -- Public S3 buckets SELECT name, region, bucket_policy_is_public FROM aws_s3_bucket WHERE bucket_policy_is_public = true; -- Public security group rules SELECT group_id, type, ip_protocol, from_port, to_port, cidr_ipv4 FROM aws_vpc_security_group_rule WHERE cidr_ipv4 = '0.0.0.0/0'; ``` ### Find by Tags ```sql -- EC2 instances by tag SELECT instance_id, tags ->> 'Name' as name, instance_state FROM aws_ec2_instance WHERE tags ->> 'Environment' = 'production'; -- Resources missing required tags SELECT instance_id, tags FROM aws_ec2_instance WHERE tags ->> 'Owner' IS NULL; ``` ### IAM Analysis ```sql -- Roles with admin access SELECT name, assume_role_policy_std FROM aws_iam_role WHERE attached_policy_arns @> '["arn:aws:iam::aws:policy/AdministratorAccess"]'; -- Old access keys SELECT user_name, access_key_id, create_date, status FROM aws_iam_access_key WHERE create_date < now() - interval '90 days'; ``` ### Cross-Resource Joins ```sql -- EC2 instances with their security groups SELECT i.instance_id, i.tags ->> 'Name' as name, sg.group_name FROM aws_ec2_instance i JOIN aws_vpc_security_group sg ON sg.group_id = ANY(i.security_groups); ``` ### Cost-Related ```sql -- Large EC2 instances SELECT instance_id, instance_type, tags ->> 'Name' as name FROM aws_ec2_instance WHERE instance_type LIKE '%.xlarge%' OR instance_type LIKE '%.2xlarge%'; -- Unattached EBS volumes SELECT volume_id, size, create_time FROM aws_ebs_volume WHERE jsonb_array_length(attachments) = 0; ``` ## Output Formats ```bash # Table (default, human-readable) steampipe query "SELECT name FROM aws_s3_bucket" # JSON (for parsing) steampipe query --output json "SELECT name FROM aws_s3_bucket" # CSV (for export) steampipe query --output csv "SELECT name FROM aws_s3_bucket" # Line (key=value) steampipe query --output line "SELECT name FROM aws_s3_bucket" ``` ## Tips - Use `LIMIT` to avoid huge result sets - Use `--output json` when you need to parse results - Filter by `region` if you only care about specific regions - Use `->> ` for JSONB tag access - Tables are named `aws_{service}_{resource}` - Run `steampipe plugin install aws` if plugin not installed - Check connection with `steampipe query "SELECT 1"`
Ver no GitHub