
Mountet AWS-Ressourcen als lokales Dateisystem für die Infrastrukturerkundung, Sicherheitsprüfung und Konfigurationsanalyse mit standardmäßigen Unix-Werkzeugen wie grep, diff und cat.
Deine AWS als Dateisystem.

Dies:
grep -l "AdministratorAccess" iam/users/*/policies.json
Stattdessen:
aws iam list-users --query 'Users[].UserName' --output text | \
xargs -I{} sh -c 'aws iam list-attached-user-policies --user-name {} --query "AttachedPolicies[].PolicyArn" --output text' | \
grep AdministratorAccess
sisu mountet AWS-Ressourcen als lokales Dateisystem. Nutze die Werkzeuge, die du bereits kennst – grep, cat, diff, vim – anstatt mit JSON und der AWS-CLI zu kämpfen.
KI-freundliches Design: KI-Werkzeuge können sich nicht per SSH in Server einloggen oder interaktive AWS-CLI-Sitzungen ausführen. Aber mit sisu wird deine gesamte AWS-Infrastruktur zu einfachen Dateipfaden, die jede KI lesen kann. Remote-EC2-Dateisysteme sind unter ec2/<instance>/fs/ zugänglich – so kann die KI /var/log, /etc und jede Datei auf deinen Instanzen ohne SSH durchsuchen.
Unterstützt derzeit S3, SSM, IAM, VPC, Lambda, EC2, ECS, CloudFront, Secrets Manager, Route 53 und CloudWatch Logs.
go install github.com/semonte/sisu@latest
Erfordert FUSE:
sudo apt install fuse # Ubuntu/Debian
sudo yum install fuse # RHEL/CentOS
sisu
Du bist drin. Deine AWS ist jetzt zum Greifen nah:
~/.sisu/mnt/
├── default/ # AWS-Profil
│ ├── global/ # IAM, S3, Route 53 (regionsunabhängig)
│ │ ├── iam/
│ │ ├── route53/
│ │ └── s3/
│ ├── us-east-1/ # Regionale Dienste
│ │ ├── cloudfront/
│ │ ├── ec2/
│ │ ├── ecs/
│ │ ├── lambda/
│ │ ├── logs/
│ │ ├── secrets/
│ │ ├── ssm/
│ │ └── vpc/
│ └── eu-west-1/
│ └── ...
├── prod/ # Andere Profile aus ~/.aws/credentials
└── staging/
Gib exit ein, wenn du fertig bist.
# Wer hat Admin-Zugriff?
grep -l "AdministratorAccess" */global/iam/users/*/policies.json
# Sicherheitsgruppen mit offenem SSH
grep -r '"FromPort": 22' */us-east-1/vpc/*/security-groups/
# Rollen, die Lambda annehmen kann
grep -l "lambda.amazonaws.com" */global/iam/roles/*/info.json
# Geheimnisse in SSM?
grep -r "password" */us-east-1/ssm/
# Lambda-Funktionen mit Geheimnissen in Umgebungsvariablen
grep -r "PASSWORD\|SECRET\|API_KEY" */us-east-1/lambda/*/env.json
# Funktionen mit veralteten Laufzeiten
grep -r "python3.8\|nodejs16" */*/lambda/*/config.json
# EC2-Instanzen mit öffentlichen IPs
grep -r "PublicIpAddress" */*/ec2/*/info.json
# Gestoppte Instanzen finden (Geldverschwendung?)
grep -r '"Name": "stopped"' */*/ec2/*/info.json
# Mit einer EC2-Instanz über SSM verbinden (keine SSH-Schlüssel nötig!)
./default/us-east-1/ec2/i-abc123/connect
# EC2-Boot-Protokolle und Kernel-Meldungen anzeigen
cat default/us-east-1/ec2/i-abc123/console.log
# Alle Geheimnisse anzeigen
ls */us-east-1/secrets/
# Einen Geheimniswert lesen
cat default/us-east-1/secrets/myapp/database/value
# Alle DNS-Zonen auflisten
ls */global/route53/
# DNS-Einträge für eine Zone anzeigen
cat default/global/route53/example.com/records.json
# Alle CNAME-Einträge finden
grep -r '"Type": "CNAME"' */global/route53/*/records.json
# Aktuelle Protokolle nach Fehlern durchsuchen
grep -i "error" default/us-east-1/logs/aws/lambda/my-function/latest.log
# Alle Log-Gruppen anzeigen
ls */us-east-1/logs/
# Log-Streams auflisten (zeigt die 20 neuesten)
ls default/us-east-1/logs/aws/lambda/my-function/
# Ereignisse aus einem bestimmten Stream anzeigen
cat default/us-east-1/logs/aws/lambda/my-function/2024_01_15_abc123/events.log
# ECS: Cluster, Services und Tasks durchsuchen
ls default/us-east-1/ecs/my-cluster/my-service/
cat default/us-east-1/ecs/my-cluster/my-service/logs/latest.log
# CloudFront: Distributionen und Funktionen anzeigen
ls default/us-east-1/cloudfront/distributions/
cat default/us-east-1/cloudfront/functions/my-auth/code.js
# S3: Bucket-Richtlinien und Zugriffseinstellungen prüfen
cat default/global/s3/my-bucket/.meta/policy.json
cat default/global/s3/my-bucket/.meta/public-access-block.json
# IAM-Rollen zwischen Konten vergleichen
diff prod/global/iam/roles/api/info.json staging/global/iam/roles/api/info.json
# Sicherheitsgruppen-Drift zwischen Regionen
diff default/us-east-1/vpc/vpc-xxx/security-groups/sg-xxx.json default/eu-west-1/vpc/vpc-yyy/security-groups/sg-yyy.json
# Lambda-Konfigurationsunterschiede
diff prod/us-east-1/lambda/my-func/config.json staging/us-east-1/lambda/my-func/config.json
# Schön ausgeben mit jq
cat default/global/iam/roles/my-role/info.json | jq '.AssumeRolePolicyDocument'
# Zähle deine Rollen
ls default/global/iam/roles/ | wc -l
# Unmarkierte Ressourcen finden
cat default/us-east-1/vpc/vpc-xxx/info.json | jq 'select(.Tags == null)'
# Alle verwendeten Lambda-Laufzeiten auflisten
grep -h "Runtime" */*/lambda/*/config.json | sort | uniq -c
cat default/us-east-1/ssm/myapp/database-url # lesen
echo "postgres://prod:5432" > default/us-east-1/ssm/database-url # schreiben
vim default/us-east-1/ssm/myapp/config # bearbeiten
cp local.txt default/global/s3/my-bucket/backup/
cat default/global/s3/my-bucket/logs/app.log | grep ERROR
rm default/global/s3/my-bucket/old-file.txt
sisu # Starte im Root
sisu --profile prod # Starte in prod/
sisu --profile prod --region us-east-1 # Starte in prod/us-east-1/
sisu stop # Aushängen
sisu --debug # Debug-Logging
Log-Stream-Dateien events.log werden träge von AWS gestreamt, anstatt vollständig in den Speicher geladen zu werden:
cat, grep, head, less# Holt nur so viele Batches, wie nötig, um die Übereinstimmung zu finden
grep "ERROR" .../my-stream/events.log
# Holt nur den ersten Batch
head -50 .../my-stream/events.log
# Blättern mit bedarfsgesteuertem Laden
less .../my-stream/events.log
# Holt alle Ereignisse
cat .../my-stream/events.log | wc -l
Hinweis: tail funktioniert nicht korrekt mit Streaming-Dateien, da es an das Ende der Datei springt, die tatsächliche Dateigröße jedoch unbekannt ist, bis sie vollständig geladen ist. Verwende cat ... | tail als Workaround.
Jeder Dienst hat Logs direkt unter seiner Ressource – keine Suche nach Log-Gruppen nötig:
# Lambda-Funktionslogs
cat default/us-east-1/lambda/my-function/logs/latest.log
# EC2-Instanzlogs (sucht nach Log-Gruppen, die die Instanz-ID enthalten)
cat default/us-east-1/ec2/i-abc123/logs/latest.log
# ECS-Service-Logs
cat default/us-east-1/ecs/my-cluster/my-service/logs/latest.log
# CloudFront-Funktionslogs
cat default/us-east-1/cloudfront/functions/my-auth/logs/latest.log
Alle integrierten Logs verwenden Streaming – sie rufen Ereignisse beim Lesen bei Bedarf ab.
Durchsuche ECS-Cluster, Services und Tasks:
ecs/
├── my-cluster/
│ ├── web-service/
│ │ ├── info.json # Service-Konfiguration
│ │ ├── logs/
│ │ │ └── latest.log # Streaming-Service-Logs
│ │ └── tasks/
│ │ └── abc123/
│ │ └── info.json # Task-Details
│ └── api-service/
│ └── ...
# Alle ECS-Cluster auflisten
ls default/us-east-1/ecs/
# Service-Konfiguration anzeigen
cat default/us-east-1/ecs/my-cluster/web-service/info.json
# Service-Logs streamen
cat default/us-east-1/ecs/my-cluster/web-service/logs/latest.log
# Laufende Tasks auflisten
ls default/us-east-1/ecs/my-cluster/web-service/tasks/
Durchsuche CloudFront-Distributionen und -Funktionen:
cloudfront/
├── distributions/
│ └── E1ABC123/
│ ├── info.json # Distributionskonfiguration
│ └── origins.json # Origins mit OAC/OAI-Info
└── functions/
└── my-auth/
├── code.js # Quellcode der Funktion
├── config.json # Funktionskonfiguration
└── logs/
└── latest.log # Ausführungslogs der Funktion
# Distributionen auflisten
ls default/us-east-1/cloudfront/distributions/
# Ursprungszugriffskonfiguration prüfen (S3-Zugriffsprobleme debuggen!)
cat default/us-east-1/cloudfront/distributions/E1ABC123/origins.json
# CloudFront-Funktionscode anzeigen und bearbeiten
cat default/us-east-1/cloudfront/functions/my-auth/code.js
# Funktionsausführung debuggen
cat default/us-east-1/cloudfront/functions/my-auth/logs/latest.log
Jeder S3-Bucket hat ein verstecktes .meta/-Verzeichnis mit der Bucket-Konfiguration:
# Bucket-Richtlinie anzeigen
cat default/global/s3/my-bucket/.meta/policy.json
# Einstellungen für öffentlichen Zugriffsblock prüfen
cat default/global/s3/my-bucket/.meta/public-access-block.json
Nützlich zum Debuggen von CloudFront-zu-S3-Zugriffsproblemen!
Jede EC2-Instanz stellt Folgendes bereit:
ls default/us-east-1/ec2/i-abc123/
# info.json security-groups.json tags.json console.log connect fs/ logs/
Über SSM verbinden (keine SSH-Schlüssel, keine öffentliche IP nötig):
./default/us-east-1/ec2/i-abc123/connect
Erfordert Session Manager Plugin.
Boot-Logs und Kernel-Meldungen anzeigen:
cat default/us-east-1/ec2/i-abc123/console.log
Das Dateisystem der Instanz remote durchsuchen (über SSM Run Command):
# Dateien auf der Instanz auflisten
ls default/us-east-1/ec2/i-abc123/fs/etc/
# Remote-Dateien lesen
cat default/us-east-1/ec2/i-abc123/fs/etc/hostname
# In Remote-Logs suchen
grep ERROR default/us-east-1/ec2/i-abc123/fs/var/log/syslog
# Konfigurationen zwischen Instanzen vergleichen
diff prod/us-east-1/ec2/i-111/fs/etc/nginx/nginx.conf \
prod/us-east-1/ec2/i-222/fs/etc/nginx/nginx.conf
Keine SSH-Schlüssel oder offenen Ports nötig – verwendet unter der Haube SSM Run Command.
| Werkzeug | Funktion |
|---|---|
| fzf | Fuzzy-Finder mit Vorschau |
| jq | JSON-Abfrage/-Transformation |
| difftastic | Struktureller Diff (versteht JSON) |
# Jede Ressource interaktiv durchsuchen und in der Vorschau anzeigen
find */global/iam/roles -name "info.json" | fzf --preview 'jq . {}'
# Lambda-Funktionen mit hohem Arbeitsspeicher finden
jq -r 'select(.MemorySize > 512) | .FunctionName' */us-east-1/lambda/*/config.json
# Prod- vs. Staging-Konfiguration vergleichen
difft prod/us-east-1/lambda/api/config.json staging/us-east-1/lambda/api/config.json
Da es sich nur um Dateien handelt, können KI-Werkzeuge deine AWS direkt lesen und analysieren:
cd ~/.sisu/mnt && claude
"Finde Sicherheitsgruppen, die SSH von 0.0.0.0/0 erlauben"
"Überprüfe IAM-Rollen auf zu freizügige Richtlinien"
"Vergleiche Prod- und Staging-Lambda-Konfigurationen"
Problem: ECS-Service schlägt fehl mit "No Container Instances were found in your cluster"
Mit sisu ohne SSH diagnostizieren:
# Cluster-Status prüfen – keine Instanzen registriert
cat ecs/jobdeck-cluster/info.json | jq '.RegisteredContainerInstancesCount'
# → 0
# Service-Konfiguration prüfen – EC2-Launch-Typ
cat ecs/jobdeck-cluster/jobdeck-api/info.json | jq '.LaunchType, .FailedTasks'
# → "EC2", 136
# EC2-Instanz existiert – ECS-Konfiguration prüfen
cat ec2/i-xxx/fs/etc/ecs/ecs.config
# → ECS_CLUSTER=jobdeck-cluster ✓
# ECS-Agent-Logs prüfen – kein Agent-Log!
ls ec2/i-xxx/fs/var/log/ecs/
# → ecs-volume-plugin.log (missing ecs-agent.log!)
# Prüfen, welche AMI läuft
cat ec2/i-xxx/fs/etc/image-id
# → image_name="amzn2-ami-minimal-hvm" ← NOT ECS-optimized!
Grundursache gefunden: Die EC2-Instanz verwendet das Amazon Linux 2 Minimal-AMI anstelle des ECS-optimierten AMI. Das minimale AMI hat ECS-Pakete installiert, aber der Agent-Dienst ist standardmäßig nicht aktiviert.
Behebung: Verwende das ECS-optimierte AMI oder füge systemctl enable --now ecs zu den User-Daten hinzu.
All dieses Debuggen wurde von Claude AI durch das Durchsuchen des Dateisystems über sisu durchgeführt – kein manuelles SSH erforderlich!
MIT
| Dienst | Lesen | Schreiben | Löschen |
|---|
| S3 (Objekte, Bucket-Richtlinien, Zugriffseinstellungen) | ✓ | ✓ | ✓ |
| SSM-Parameterspeicher | ✓ | ✓ | ✓ |
| IAM (Benutzer, Rollen, Richtlinien, Gruppen) | ✓ | - | - |
| VPC (Subnetze, Sicherheitsgruppen, Routen) | ✓ | - | - |
| Lambda (Konfiguration, Richtlinie, Umgebungsvariablen, Logs) | ✓ | - | - |
| EC2 (Instanzen, Sicherheitsgruppen, Tags, Logs, Remote-Dateisystem) | ✓ | - | - |
| ECS (Cluster, Services, Tasks, Logs) | ✓ | - | - |
| CloudFront (Distributionen, Funktionen, Logs) | ✓ | - | - |
| Secrets Manager | ✓ | - | - |
| Route 53 (Zonen, Einträge) | ✓ | - | - |
| CloudWatch Logs | ✓ | - | - |