
مجموعة أدوات أمان لـ Amazon S3
مجموعة أدوات أمنية لخدمة Amazon S3

🍊 خاضعة للاختبار الميداني في Instacart
شغّل:
pip install s3tk
يمكنك استخدام AWS CLI أو AWS Vault لإعداد بيانات اعتماد AWS الخاصة بك:
pip install awscli
aws configure
انظر سياسات IAM المطلوبة لكل أمر.
افحص حاوياتك (Buckets) من أجل:
s3tk scan
تشغيل على حاويات محددة فقط
s3tk scan my-bucket my-bucket-2
يعمل أيضًا مع الأحرف البديلة (Wildcards)
s3tk scan "my-bucket*"
تأكيد صحة حاوية (أو حاويات) السجل والبادئة (Prefix)
s3tk scan --log-bucket my-s3-logs --log-bucket other-region-logs --log-prefix "{bucket}/"
فحص تسجيل مستوى الكائن في CloudTrail [تجريبي]
s3tk scan --object-level-logging
تخطي التسجيل أو التنقيح أو التشفير الافتراضي
s3tk scan --skip-logging --skip-versioning --skip-default-encryption
الحصول على إشعارات البريد الإلكتروني عند الفشل (عبر SNS)
s3tk scan --sns-topic arn:aws:sns:...
قائمة سياسات الحاويات
s3tk list-policy
تشغيل على حاويات محددة فقط
s3tk list-policy my-bucket my-bucket-2
إظهار البيانات المُسماة
s3tk list-policy --named
ملاحظة: هذا يستبدل السياسة السابقة
الرفع الخاص فقط
s3tk set-policy my-bucket --no-object-acl
حذف السياسة
s3tk delete-policy my-bucket
حظر الوصول العام على حاويات محددة
s3tk block-public-access my-bucket my-bucket-2
استخدم العلامة --dry-run للاختبار
تفعيل التسجيل على جميع الحاويات
s3tk enable-logging --log-bucket my-s3-logs
فقط على حاويات محددة
s3tk enable-logging my-bucket my-bucket-2 --log-bucket my-s3-logs
تعيين بادئة السجل ({bucket}/ بشكل افتراضي)
s3tk enable-logging --log-bucket my-s3-logs --log-prefix "logs/{bucket}/"
استخدم العلامة --dry-run للاختبار
بعض الملاحظات حول التسجيل:
تفعيل التنقيح على جميع الحاويات
s3tk enable-versioning
فقط على حاويات محددة
s3tk enable-versioning my-bucket my-bucket-2
استخدم العلامة --dry-run للاختبار
تفعيل التشفير الافتراضي على جميع الحاويات
s3tk enable-default-encryption
فقط على حاويات محددة
s3tk enable-default-encryption my-bucket my-bucket-2
هذا لا يشفر الكائنات الموجودة - استخدم الأمر encrypt لهذا الغرض
استخدم العلامة --dry-run للاختبار
فحص ACL على جميع الكائنات في حاوية
s3tk scan-object-acl my-bucket
كائنات محددة فقط
s3tk scan-object-acl my-bucket --only "*.pdf"
باستثناء كائنات معينة
s3tk scan-object-acl my-bucket --except "*.jpg"
إعادة تعيين ACL على جميع الكائنات في حاوية
s3tk reset-object-acl my-bucket
هذا يجعل جميع الكائنات خاصة. راجع سياسات الحاوية لكيفية فرض ذلك مستقبلاً.
استخدم العلامة --dry-run للاختبار
تحديد كائنات معينة بنفس طريقة scan-object-acl
تشغيل جميع الكائنات في حاوية مع التشفير من جانب الخادم
s3tk encrypt my-bucket
استخدم مفاتيح يديرها S3 بشكل افتراضي. لاستخدام مفاتيح يديرها KMS استخدم:
s3tk encrypt my-bucket --kms-key-id arn:aws:kms:...
للاستخدام مفاتيح يقدمها العميل استخدم:
s3tk encrypt my-bucket --customer-key secret-key
استخدم العلامة --dry-run للاختبار
تحديد كائنات معينة بنفس طريقة scan-object-acl
ملاحظة: ستفقد الكائنات أي ACL مخصص
حذف جميع الإصدارات غير المشفرة من الكائنات في حاوية
s3tk delete-unencrypted-versions my-bucket
للسلامة، لن يحذف هذا أي إصدارات حالية من الكائنات
استخدم العلامة --dry-run للاختبار
تحديد كائنات معينة بنفس طريقة scan-object-acl
فحص Route 53 بحثًا عن الحاويات للتأكد من ملكيتك لها
s3tk scan-dns
وإلا، فقد تكون عرضة للاستيلاء على المجالات الفرعية (subdomain takeover)
https://hackerone.com/reports/207576
يمكن تحديد بيانات الاعتماد في ~/.aws/credentials أو باستخدام متغيرات البيئة. راجع هذا الدليل لشرح متغيرات البيئة.
يمكنك تحديد ملف تعريف للاستخدام باستخدام:
AWS_PROFILE=your-profile s3tk
فيما يلي الأذونات المطلوبة لكل أمر. قم بتضمين العبارات التي تحتاجها فقط.