عندما أفتح /admin/backups.json أحصل فقط على خطأ عام Access Denied
ما لا أفهمه هو أن استخدام الأوامر التالية في مثيل EC2 الخاص بي يعمل بشكل صحيح:
aws s3 ls s3://my-bucket-name
وعند الدخول إلى حاوية discourse باستخدام ./launcher enter app يمكنني تشغيل هذا أيضًا بنجاح بعد تثبيت s3cmd:
s3cmd ls s3://my-bucket-name
يمكنني أيضًا تحميل أشياء في المستودع الخاص بي باستخدام هذه الأوامر، لذلك يجب أن تكون سياسة IAM جيدة ولا يمكنني فهم سبب عدم تمكن Discourse من الوصول إلى المستودع. لقد حاولت أيضًا إضافة “AdministratorAccess” إلى دور IAM لاستبعاد أي مشاكل في الأذونات الضيقة جدًا.
التكوين في Discourse:
backup location: S3
s3 backup bucket: my-bucket-name
s3 use iam profile: true
s3 region: the correct one. tripple checked.
الخيارات المتبقية لـ s3 تُركت دون تغيير - > لذلك معظمها فارغ/معطل.
لست متأكدًا من أن هذا له علاقة بإعدادات S3 الخاصة بك، يبدو أنه رسالة أذونات داخلية لـ Discourse. هل يمكنك تحميل /admin/backups كصفحة (بدلاً من إضافة .json في النهاية)؟
كان هذا تلميحًا رائعًا. تمكنت من تتبع خطأ الإذن ورأيت أن Discourse كان يستخدم مستخدمًا مختلفًا. الآن إلى السبب الكبير ولماذا لم يواجه أحد هذا الخطأ من قبل.
لدينا مكون إضافي مخصص لإرسال إشعارات الدفع عبر AWS SNS والذي كان يقوم بتعيين بيانات الاعتماد من خلال Aws.config.update بشكل عام، وبالتالي يبدو أن S3 Backup كان يستخدم أيضًا بيانات الاعتماد الخاطئة التي لم يكن لديها الأذونات المطلوبة بوضوح.
سنقوم الآن بإصلاح المكون الإضافي الخاص بنا لتوفير بيانات الاعتماد/المنطقة محليًا ودعم أدوار EC2 IAM التي أفضلها في هذه المرحلة