
اكتشف الموارد التي تم إنشاؤها في حساب AWS.
هذه أداة تحاول اكتشاف جميع موارد AWS المُنشأة في حساب. تمتلك AWS العديد من المنتجات (المعروفة أيضًا باسم الخدمات) مع إضافة منتجات جديدة باستمرار وتوسيع المنتجات الحالية بميزات جديدة. يتيح هذا النظام البيئي للمستخدمين دمج العديد من الخدمات المختلفة معًا لتشكيل تجربة سحابية مخصصة. القدرة على تشغيل الخدمات فورًا على نطاق واسع تأتي بتكلفة قابلية للإدارة. يمكن أن يصبح تدقيق حساب AWS بحثًا عن الموارد المستخدمة أمرًا صعبًا بسرعة. إنه أمر مهم ليس فقط لأغراض الفوترة، ولكن أيضًا للأمان. الموارد الخاملة والموارد غير المعروفة أكثر عرضة لنقاط الضعف في التكوين الأمني. بالإضافة إلى ذلك، الموارد ذات التبعيات غير المتوقعة تطرح مشكلات في التوافر والتحكم في الوصول والتفويض.
تستخدم الأداة botocore لاكتشاف خدمات AWS والمناطق التي تعمل فيها. كما تُستخدم أيضًا في استدعاء واجهات برمجة تطبيقات الخدمات. واجهات برمجة التطبيقات التي يتم استدعاؤها هي تلك التي تدرج الموارد أو تصفها. يمكن طباعة النتائج إلى stdout بتنسيق JSON. كما يمكن كتابتها في عدة ملفات:
أولاً، قم بتثبيت Python2.7.
توجد واجهة مستخدم رسومية صغيرة لعرض التقدم تستخدم وحدة Python القياسية Tkinter. ومع ذلك، قد يتطلب كود المكتبة الأصلية الأساسي لـ Tcl/Tk خطوات إضافية للتثبيت. ثم،
pip install -r requirements.txt
استخدم مثبّت Python لتثبيت Tkinter/Tcl/Tk.
استخدم مدير الحزم الخاص بنظام التشغيل لديك:
sudo apt-get install python-tk
يمكنك تشغيل البرنامج النصي دون أي معاملات. سيبحث عن بيانات اعتماد AWS الخاصة بك في بيئة الصدفة، وبيانات تعريف المثيل، وملف الإعدادات، ثم ملف بيانات الاعتماد. يمكنك أيضًا توفير ملف CSV يحتوي على بيانات الاعتماد الخاصة بك في سطر الأوامر. ستحتاج إلى مستخدم لديه أذونات مشابهة لسياسة AWS المُدارة ViewOnlyAccess. إذا كنت تشعر أنك محظوظ، يمكنك فقط تمرير مخرجات الأداة إلى محلل JSON مثل jq.
قد تستغرق الأداة وقتًا طويلاً (عشرات الدقائق) لإكمال العمل إذا لم تُفرض قيود على العمليات التي سيتم استدعاؤها لكل خدمة عبر كل منطقة. يمكن إجراء التصفية حسب الخدمة والمنطقة في سطر الأوامر بينما يمكن إجراء التصفية حسب عملية الخدمة عبر ملف الإعدادات. تم إنشاء ملف مُعد مسبقًا وإضافته إلى المستودع. سيتم استخدامه افتراضيًا.
بالإضافة إلى مخرجات سطر الأوامر، يمكنك عرض النتائج محليًا في تطبيق صفحة واحدة مبني بإطار عمل React. لا حاجة لخادم ويب. فقط افتح ملف HTML في متصفح وحدد ملف JSON المُنشأ عند الطلب.
يستخدم التطبيق jsTree لعرض البيانات في بنية هرمية شبيهة بالشجرة. تتوفر أيضًا ميزة بحث.
ملاحظة: عند استدعاء واجهات برمجة التطبيقات، لن يتم استخدام تلك التي تثير استثناءً مرة أخرى بغض النظر عن المنطقة. الأسباب المعروفة للاستثناءات هي:
$ python aws_inventory.py
$ python aws_inventory.py --list-svcs
acm
apigateway
application-autoscaling
appstream
autoscaling
batch
budgets
clouddirectory
cloudformation
cloudfront
.
.
.
$ python aws_inventory.py --list-operations
[shield]
DescribeSubscription
ListAttacks
ListProtections
[datapipeline]
ListPipelines
[firehose]
ListDeliveryStreams
.
.
.
[glacier]
# NONE
[stepfunctions]
ListActivities
ListStateMachines
Total operations to invoke: 4045
$ python aws_inventory.py --debug --dry-run

