Lorsque j’ouvre /admin/backups.json, j’obtiens uniquement une erreur générique Accès refusé.
Ce que je ne comprends pas, c’est que l’utilisation des commandes suivantes sur mon instance EC2 fonctionne correctement :
aws s3 ls s3://my-bucket-name
Et lorsque j’entre dans le conteneur discourse avec ./launcher enter app, je peux également exécuter ceci avec succès après avoir installé s3cmd :
s3cmd ls s3://my-bucket-name
Je peux également télécharger des éléments dans mon bucket en utilisant ces commandes, donc la politique IAM devrait être correcte et je ne comprends pas pourquoi Discourse ne peut pas accéder au bucket. J’ai également essayé d’ajouter “AdministratorAccess” au rôle IAM pour exclure tout problème d’autorisation trop restrictif.
Configuration dans Discourse :
emplacement de sauvegarde : S3
bucket de sauvegarde S3 : my-bucket-name
utiliser le profil IAM S3 : true
région S3 : la bonne. vérifié trois fois.
Les options S3 restantes sont inchangées → Par conséquent, la plupart sont vides/désactivées.
Je ne suis pas sûr que cela ait quoi que ce soit à voir avec vos paramètres S3, cela ressemble à un message de permissions interne de Discourse. Êtes-vous en mesure de charger /admin/backups en tant que page (plutôt qu’en ajoutant .json à la fin) ?
C’était une excellente indication. J’ai pu retracer l’erreur de permission et constater que Discourse utilisait un utilisateur différent. Passons maintenant au grand pourquoi et pourquoi personne n’a eu cette erreur auparavant.
Nous avons un plugin personnalisé pour envoyer des notifications push via AWS SNS qui configurait les informations d’identification via Aws.config.update globalement et par conséquent, S3 Backup semblait également utiliser les mauvaises informations d’identification qui n’avaient évidemment pas les autorisations requises.
Nous allons maintenant corriger notre plugin pour fournir localement les informations d’identification/la région et prendre en charge les rôles IAM EC2, ce que je préfère à ce stade