Salut à tous,
Nous cherchons à améliorer la façon dont Discourse gère l’authentification AWS [1], et nous aimerions comprendre comment vous êtes actuellement configurés avant d’apporter des modifications.
La situation actuelle
Actuellement, il existe plusieurs façons de configurer l’authentification AWS dans Discourse :
Option 1 : Identifiants explicites (via les paramètres du site)
- définir
s3_access_key_idets3_secret_access_keydans les paramètres de votre site - l’authentification est par site
Option 2 : Identifiants explicites (via les variables d’environnement)
- définir les variables d’environnement :
DISCOURSE_S3_ACCESS_KEY_ID
DISCOURSE_S3_SECRET_ACCESS_KEY - l’authentification est la même pour tous les sites d’un cluster multisite
Option 3 : Paramètre « Utiliser le profil IAM »
- activer le paramètre de site
s3_use_iam_profileou définir la variable d’environnementDISCOURSE_S3_USE_IAM_PROFILE=true - indique à Discourse de laisser le SDK AWS trouver les identifiants automatiquement
- initialement conçu pour les instances EC2 et l’obtention d’identifiants via IMDS, mais fonctionne dans d’autres environnements
Pourquoi nous voulons changer
1. Nom de paramètre confus
Le paramètre s3_use_iam_profile a un nom trompeur. Il suggère qu’il ne fonctionne qu’avec les profils d’instance EC2, mais il active en fait toute source d’identifiants du SDK AWS source d’identifiants :
- profils d’instance EC2
- rôles de tâche ECS
- variables d’environnement
- fichiers d’identifiants AWS
- prise en charge de rôles IAM
- et plus encore…
2. Sécurité : Clés statiques vs. Prise en charge de rôles
Sur notre plateforme d’hébergement dédiée, nous utilisons actuellement des clés d’accès qui sont régulièrement mises à jour. Nous visons à passer à la prise en charge de rôles pour une meilleure isolation, de meilleures opportunités de contrôle d’accès et pour soutenir un meilleur processus interne.
Inconvénients de l’approche actuelle :
- les clés d’accès n’expirent pas (jusqu’à leur rotation)
- ont des portées d’autorisation larges
- peuvent être compromises si divulguées
- nécessitent des procédures de rotation manuelles
Avantages de l’utilisation de la prise en charge de rôles à la place :
- les identifiants persistants peuvent être restreints par adresse IP
- les opérations sont effectuées à l’aide d’identifiants temporaires qui expirent automatiquement (généralement 1 heure)
- accès juste-à-temps car les identifiants n’existent que lorsque nécessaire
- rayon d’explosion réduit car les identifiants temporaires compromis expirent rapidement
- pas de rotation de clés - le processus de prise en charge de rôles gère le rafraîchissement
- meilleures pistes d’audit - chaque session est suivie séparément
Ce que nous envisageons
Nous pensons soit à :
- Renommer le paramètre en quelque chose de plus clair comme
aws_credentials_from_environment - Supprimer complètement le paramètre et détecter automatiquement quand les identifiants doivent provenir de l’environnement par rapport aux paramètres du site
Nous avons besoin de votre avis !
Merci de nous faire savoir :
-
Comment vous authentifiez-vous auprès de S3 ?
- Clés d’accès explicites dans les paramètres du site
- Profil d’instance EC2 (avec
s3_use_iam_profileactivé) - Rôle de tâche ECS (avec
s3_use_iam_profileactivé) - Variables d’environnement (avec
s3_use_iam_profileactivé) - … autre chose ?
-
Si vous utilisez
s3_use_iam_profile:- Dans quel environnement exécutez-vous ? (EC2, ECS, Docker, bare metal, etc.)
- Le nom/la description actuel(le) a-t-il causé une confusion ?
- Un nom différent serait-il plus clair ?
-
Des préoccupations concernant les changements de ce paramètre ?
- Vous craignez de casser votre configuration actuelle ?
- Besoin de temps pour tester les changements ?
- Autres considérations ?
Pourquoi c’est important
Une meilleure authentification S3 signifie :
- Plus sécurisé - pas de clés statiques à gérer
- Configuration plus facile - surtout pour les déploiements cloud
- Moins de confusion - paramètres et documentation plus clairs
- Meilleur support pour les modèles d’authentification AWS modernes
Vos commentaires nous aideront à apporter des améliorations qui conviennent à tous. Merci de prendre le temps de partager votre configuration !
ici lire : tout fournisseur de stockage d’objets compatible S3 que vous utilisez ↩︎