
AWS संसाधनों को स्थानीय फ़ाइलसिस्टम के रूप में माउंट करता है, जिससे बुनियादी ढांचे की खोज, सुरक्षा ऑडिटिंग और कॉन्फ़िगरेशन विश्लेषण के लिए grep, diff और cat जैसे मानक Unix टूल का उपयोग किया जा सकता है।
आपका AWS, एक फ़ाइल सिस्टम के रूप में।

यह:
grep -l "AdministratorAccess" iam/users/*/policies.json
इसके बजाय:
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 AWS संसाधनों को एक स्थानीय फ़ाइल सिस्टम के रूप में माउंट करता है। अपने जाने-पहचाने टूल - grep, cat, diff, vim - का उपयोग करें, JSON और AWS CLI से जूझने के बजाय।
AI-अनुकूल डिज़ाइन: AI टूल सर्वर में SSH नहीं कर सकते या इंटरैक्टिव AWS CLI सेशन नहीं चला सकते। लेकिन sisu के साथ, आपका पूरा AWS इन्फ्रास्ट्रक्चर सरल फ़ाइल पथ बन जाता है जिसे कोई भी AI पढ़ सकता है। रिमोट EC2 फ़ाइल सिस्टम ec2/<instance>/fs/ पर उपलब्ध हैं - जिससे AI SSH की आवश्यकता के बिना आपके इंस्टेंस पर /var/log, /etc, और किसी भी फ़ाइल को ब्राउज़ कर सकता है।
वर्तमान में S3, SSM, IAM, VPC, Lambda, EC2, ECS, CloudFront, Secrets Manager, Route 53, और CloudWatch Logs का समर्थन करता है।
go install github.com/semonte/sisu@latest
FUSE आवश्यक है:
sudo apt install fuse # Ubuntu/Debian
sudo yum install fuse # RHEL/CentOS
sisu
आप अंदर हैं। आपका AWS अब आपकी उँगलियों पर:
~/.sisu/mnt/
├── default/ # AWS प्रोफ़ाइल
│ ├── global/ # IAM, S3, Route 53 (क्षेत्र-स्वतंत्र)
│ │ ├── iam/
│ │ ├── route53/
│ │ └── s3/
│ ├── us-east-1/ # क्षेत्रीय सेवाएं
│ │ ├── cloudfront/
│ │ ├── ec2/
│ │ ├── ecs/
│ │ ├── lambda/
│ │ ├── logs/
│ │ ├── secrets/
│ │ ├── ssm/
│ │ └── vpc/
│ └── eu-west-1/
│ └── ...
├── prod/ # अन्य प्रोफ़ाइल ~/.aws/credentials से
└── staging/
जब हो जाए तो exit टाइप करें।
# किसके पास व्यवस्थापक पहुँच है?
grep -l "AdministratorAccess" */global/iam/users/*/policies.json
# SSH खुले वाले सुरक्षा समूह
grep -r '"FromPort": 22' */us-east-1/vpc/*/security-groups/
# भूमिकाएँ जो Lambda मान सकता है
grep -l "lambda.amazonaws.com" */global/iam/roles/*/info.json
# SSM में रहस्य?
grep -r "password" */us-east-1/ssm/
# Lambda फ़ंक्शन जिनमें एन्व वेरिएबल में रहस्य हैं
grep -r "PASSWORD\|SECRET\|API_KEY" */us-east-1/lambda/*/env.json
# पुराने रनटाइम का उपयोग करने वाले फ़ंक्शन
grep -r "python3.8\|nodejs16" */*/lambda/*/config.json
# सार्वजनिक IP वाले EC2 इंस्टेंस
grep -r "PublicIpAddress" */*/ec2/*/info.json
# रुके हुए इंस्टेंस ढूँढें (पैसा बर्बाद?)
grep -r '"Name": "stopped"' */*/ec2/*/info.json
# SSM के माध्यम से EC2 इंस्टेंस से कनेक्ट करें (कोई SSH कुंजी आवश्यक नहीं!)
./default/us-east-1/ec2/i-abc123/connect
# EC2 बूट लॉग और कर्नल संदेश देखें
cat default/us-east-1/ec2/i-abc123/console.log
# सभी रहस्य देखें
ls */us-east-1/secrets/
# कोई रहस्य पढ़ें
cat default/us-east-1/secrets/myapp/database/value
# सभी DNS ज़ोन सूचीबद्ध करें
ls */global/route53/
# किसी ज़ोन के DNS रिकॉर्ड देखें
cat default/global/route53/example.com/records.json
# सभी CNAME रिकॉर्ड खोजें
grep -r '"Type": "CNAME"' */global/route53/*/records.json
# हाल के लॉग में त्रुटियाँ खोजें
grep -i "error" default/us-east-1/logs/aws/lambda/my-function/latest.log
# सभी लॉग समूह देखें
ls */us-east-1/logs/
# लॉग स्ट्रीम सूचीबद्ध करें (20 सबसे हाल के दिखाता है)
ls default/us-east-1/logs/aws/lambda/my-function/
# किसी विशिष्ट स्ट्रीम से घटनाएँ देखें
cat default/us-east-1/logs/aws/lambda/my-function/2024_01_15_abc123/events.log
# ECS: क्लस्टर, सेवाएँ और कार्य ब्राउज़ करें
ls default/us-east-1/ecs/my-cluster/my-service/
cat default/us-east-1/ecs/my-cluster/my-service/logs/latest.log
# CloudFront: वितरण और फ़ंक्शन देखें
ls default/us-east-1/cloudfront/distributions/
cat default/us-east-1/cloudfront/functions/my-auth/code.js
# S3: बकेट नीतियाँ और एक्सेस सेटिंग्स जाँचें
cat default/global/s3/my-bucket/.meta/policy.json
cat default/global/s3/my-bucket/.meta/public-access-block.json
# खातों के बीच IAM भूमिकाओं की तुलना
diff prod/global/iam/roles/api/info.json staging/global/iam/roles/api/info.json
# क्षेत्रों के बीच सुरक्षा समूह बहाव
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 कॉन्फ़िग अंतर
diff prod/us-east-1/lambda/my-func/config.json staging/us-east-1/lambda/my-func/config.json
# jq के साथ सुंदर प्रिंट
cat default/global/iam/roles/my-role/info.json | jq '.AssumeRolePolicyDocument'
# अपनी भूमिकाएँ गिनें
ls default/global/iam/roles/ | wc -l
# बिना टैग वाले संसाधन खोजें
cat default/us-east-1/vpc/vpc-xxx/info.json | jq 'select(.Tags == null)'
# उपयोग में सभी Lambda रनटाइम सूचीबद्ध करें
grep -h "Runtime" */*/lambda/*/config.json | sort | uniq -c
cat default/us-east-1/ssm/myapp/database-url # पढ़ें
echo "postgres://prod:5432" > default/us-east-1/ssm/database-url # लिखें
vim default/us-east-1/ssm/myapp/config # संपादित करें
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 # रूट से शुरू करें
sisu --profile prod # prod/ से शुरू करें
sisu --profile prod --region us-east-1 # prod/us-east-1/ से शुरू करें
sisu stop # अनमाउंट करें
sisu --debug # डीबग लॉगिंग
लॉग स्ट्रीम events.log फ़ाइलें मेमोरी में पूरी तरह लोड होने के बजाय AWS से आलसी रूप से स्ट्रीम की जाती हैं:
cat, grep, head, less के साथ काम करता है# मिलान खोजने के लिए केवल पर्याप्त बैच प्राप्त करता है
grep "ERROR" .../my-stream/events.log
# केवल पहला बैच प्राप्त करता है
head -50 .../my-stream/events.log
# ऑन-डिमांड लोडिंग के साथ स्क्रॉल करें
less .../my-stream/events.log
# सभी घटनाएँ प्राप्त करेगा
cat .../my-stream/events.log | wc -l
नोट: tail स्ट्रीमिंग फ़ाइलों के साथ सही ढंग से काम नहीं करता क्योंकि यह फ़ाइल के अंत में जाता है, लेकिन वास्तविक फ़ाइल आकार पूरी तरह लोड होने तक अज्ञात रहता है। वैकल्पिक समाधान के रूप में cat ... | tail का उपयोग करें।
प्रत्येक सेवा के लॉग सीधे उसके संसाधन के अंतर्गत होते हैं - लॉग समूहों की खोज करने की आवश्यकता नहीं:
# Lambda फ़ंक्शन लॉग
cat default/us-east-1/lambda/my-function/logs/latest.log
# EC2 इंस्टेंस लॉग (इंस्टेंस ID वाले लॉग समूहों की खोज करता है)
cat default/us-east-1/ec2/i-abc123/logs/latest.log
# ECS सेवा लॉग
cat default/us-east-1/ecs/my-cluster/my-service/logs/latest.log
# CloudFront फ़ंक्शन लॉग
cat default/us-east-1/cloudfront/functions/my-auth/logs/latest.log
सभी एकीकृत लॉग स्ट्रीमिंग का उपयोग करते हैं - जैसे-जैसे आप पढ़ते हैं, वे ऑन-डिमांड घटनाएँ प्राप्त करते हैं।
ECS क्लस्टर, सेवाएँ और कार्य ब्राउज़ करें:
ecs/
├── my-cluster/
│ ├── web-service/
│ │ ├── info.json # सेवा कॉन्फ़िगरेशन
│ │ ├── logs/
│ │ │ └── latest.log # स्ट्रीमिंग सेवा लॉग
│ │ └── tasks/
│ │ └── abc123/
│ │ └── info.json # कार्य विवरण
│ └── api-service/
│ └── ...
# सभी ECS क्लस्टर सूचीबद्ध करें
ls default/us-east-1/ecs/
# सेवा कॉन्फ़िगरेशन देखें
cat default/us-east-1/ecs/my-cluster/web-service/info.json
# सेवा लॉग स्ट्रीम करें
cat default/us-east-1/ecs/my-cluster/web-service/logs/latest.log
# चल रहे कार्य सूचीबद्ध करें
ls default/us-east-1/ecs/my-cluster/web-service/tasks/
CloudFront वितरण और फ़ंक्शन ब्राउज़ करें:
cloudfront/
├── distributions/
│ └── E1ABC123/
│ ├── info.json # वितरण कॉन्फ़िग
│ └── origins.json # OAC/OAI जानकारी के साथ ओरिजिन
└── functions/
└── my-auth/
├── code.js # फ़ंक्शन स्रोत कोड
├── config.json # फ़ंक्शन कॉन्फ़िगरेशन
└── logs/
└── latest.log # फ़ंक्शन निष्पादन लॉग
# वितरण सूचीबद्ध करें
ls default/us-east-1/cloudfront/distributions/
# ओरिजिन एक्सेस कॉन्फ़िगरेशन जाँचें (S3 एक्सेस समस्याओं का डीबग करें!)
cat default/us-east-1/cloudfront/distributions/E1ABC123/origins.json
# CloudFront फ़ंक्शन कोड देखें और संपादित करें
cat default/us-east-1/cloudfront/functions/my-auth/code.js
# फ़ंक्शन निष्पादन डीबग करें
cat default/us-east-1/cloudfront/functions/my-auth/logs/latest.log
प्रत्येक S3 बकेट में बकेट कॉन्फ़िगरेशन के साथ एक छिपी .meta/ निर्देशिका होती है:
# बकेट नीति देखें
cat default/global/s3/my-bucket/.meta/policy.json
# सार्वजनिक एक्सेस ब्लॉक सेटिंग्स जाँचें
cat default/global/s3/my-bucket/.meta/public-access-block.json
CloudFront-to-S3 एक्सेस समस्याओं के डीबगिंग के लिए उपयोगी!
प्रत्येक EC2 इंस्टेंस प्रदर्शित करता है:
ls default/us-east-1/ec2/i-abc123/
# info.json security-groups.json tags.json console.log connect fs/ logs/
SSM के माध्यम से कनेक्ट करें (कोई SSH कुंजी या सार्वजनिक IP आवश्यक नहीं):
./default/us-east-1/ec2/i-abc123/connect
Session Manager प्लगइन आवश्यक है।
बूट लॉग और कर्नल संदेश देखें:
cat default/us-east-1/ec2/i-abc123/console.log
इंस्टेंस के फ़ाइल सिस्टम को दूरस्थ रूप से ब्राउज़ करें (SSM Run Command के माध्यम से):
# इंस्टेंस पर फ़ाइलें सूचीबद्ध करें
ls default/us-east-1/ec2/i-abc123/fs/etc/
# रिमोट फ़ाइलें पढ़ें
cat default/us-east-1/ec2/i-abc123/fs/etc/hostname
# रिमोट लॉग में खोजें
grep ERROR default/us-east-1/ec2/i-abc123/fs/var/log/syslog
# इंस्टेंस के बीच कॉन्फ़िग की तुलना
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
कोई SSH कुंजी या खुले पोर्ट की आवश्यकता नहीं - अंतर्निहित रूप से SSM Run Command का उपयोग करता है।
| टूल | यह क्या करता है |
|---|---|
| fzf | पूर्वावलोकन के साथ फ़ज़ी फ़ाइंडर |
| jq | JSON क्वेरी/रूपांतरण |
| difftastic | संरचनात्मक अंतर (JSON समझता है) |
# किसी भी संसाधन को इंटरैक्टिव रूप से ब्राउज़ और पूर्वावलोकन करें
find */global/iam/roles -name "info.json" | fzf --preview 'jq . {}'
# उच्च मेमोरी वाले Lambda फ़ंक्शन खोजें
jq -r 'select(.MemorySize > 512) | .FunctionName' */us-east-1/lambda/*/config.json
# prod बनाम staging कॉन्फ़िग की तुलना करें
difft prod/us-east-1/lambda/api/config.json staging/us-east-1/lambda/api/config.json
चूंकि यह सिर्फ़ फ़ाइलें हैं, AI टूल सीधे आपके AWS को पढ़ और विश्लेषण कर सकते हैं:
cd ~/.sisu/mnt && claude
"0.0.0.0/0 से SSH की अनुमति देने वाले सुरक्षा समूह खोजें"
"अत्यधिक अनुमति वाली नीतियों के लिए IAM भूमिकाओं की समीक्षा करें"
"prod और staging Lambda कॉन्फ़िग की तुलना करें"
समस्या: ECS सेवा "No Container Instances were found in your cluster" के साथ विफल हो रही है
sisu का उपयोग करके SSH के बिना निदान:
# क्लस्टर स्थिति जाँचें - कोई इंस्टेंस पंजीकृत नहीं
cat ecs/jobdeck-cluster/info.json | jq '.RegisteredContainerInstancesCount'
# → 0
# सेवा कॉन्फ़िग जाँचें - EC2 लॉन्च प्रकार का उपयोग कर रहा है
cat ecs/jobdeck-cluster/jobdeck-api/info.json | jq '.LaunchType, .FailedTasks'
# → "EC2", 136
# EC2 इंस्टेंस मौजूद है - इसका ECS कॉन्फ़िग जाँचें
cat ec2/i-xxx/fs/etc/ecs/ecs.config
# → ECS_CLUSTER=jobdeck-cluster ✓
# ECS एजेंट लॉग जाँचें - कोई एजेंट लॉग नहीं!
ls ec2/i-xxx/fs/var/log/ecs/
# → ecs-volume-plugin.log (ecs-agent.log अनुपस्थित!)
# जाँचें कि कौन सी AMI चल रही है
cat ec2/i-xxx/fs/etc/image-id
# → image_name="amzn2-ami-minimal-hvm" ← ECS-अनुकूलित नहीं!
मूल कारण मिल गया: EC2 इंस्टेंस ECS-अनुकूलित AMI के बजाय Amazon Linux 2 Minimal AMI का उपयोग कर रहा है। Minimal AMI में ECS पैकेज स्थापित हैं लेकिन एजेंट सेवा डिफ़ॉल्ट रूप से सक्षम नहीं है।
समाधान: ECS-अनुकूलित AMI का उपयोग करें, या user-data में systemctl enable --now ecs जोड़ें।
यह सारा डीबगिंग Claude AI द्वारा sisu के माध्यम से फ़ाइल सिस्टम ब्राउज़ करके किया गया - किसी मैन्युअल SSH की आवश्यकता नहीं!
MIT
| सेवा | पढ़ें | लिखें | हटाएं |
|---|
| S3 (ऑब्जेक्ट, बकेट नीतियाँ, एक्सेस सेटिंग्स) | ✓ | ✓ | ✓ |
| SSM Parameter Store | ✓ | ✓ | ✓ |
| IAM (उपयोगकर्ता, भूमिकाएँ, नीतियाँ, समूह) | ✓ | - | - |
| VPC (सबनेट, सुरक्षा समूह, रूट) | ✓ | - | - |
| Lambda (कॉन्फ़िग, नीति, एन्व वेरिएबल, लॉग) | ✓ | - | - |
| EC2 (इंस्टेंस, सुरक्षा समूह, टैग, लॉग, रिमोट fs) | ✓ | - | - |
| ECS (क्लस्टर, सेवाएँ, कार्य, लॉग) | ✓ | - | - |
| CloudFront (वितरण, फ़ंक्शन, लॉग) | ✓ | - | - |
| Secrets Manager | ✓ | - | - |
| Route 53 (ज़ोन, रिकॉर्ड) | ✓ | - | - |
| CloudWatch Logs | ✓ | - | - |