Hallo zusammen,
wir möchten verbessern, wie Discourse die AWS [1] Authentifizierung handhabt, und wir würden gerne verstehen, wie Sie derzeit eingerichtet sind, bevor wir Änderungen vornehmen.
Die aktuelle Situation
Derzeit gibt es mehrere Möglichkeiten, die AWS-Authentifizierung in Discourse zu konfigurieren:
Option 1: Explizite Anmeldeinformationen (über Site-Einstellungen)
s3_access_key_idunds3_secret_access_keyin Ihren Site-Einstellungen festlegen- Authentifizierung ist pro Site
Option 2: Explizite Anmeldeinformationen (über Umgebungsvariablen)
- Die Umgebungsvariablen festlegen:
DISCOURSE_S3_ACCESS_KEY_ID
DISCOURSE_S3_SECRET_ACCESS_KEY - Die Authentifizierung ist für alle Sites in einem Multisite-Cluster gleich
Option 3: Einstellung „IAM-Profil verwenden“
- Die Site-Einstellung
s3_use_iam_profileaktivieren oder die UmgebungsvariableDISCOURSE_S3_USE_IAM_PROFILE=truefestlegen - Weist Discourse an, die AWS SDK-Anmeldeinformationen automatisch zu finden
- Ursprünglich für EC2-Instanzen und den Abruf von Anmeldeinformationen über IMDS konzipiert, funktioniert aber auch in anderen Umgebungen
Warum wir uns ändern wollen
1. Irreführende Einstellung
Der Name der Einstellung s3_use_iam_profile ist irreführend. Er suggeriert, dass sie nur mit EC2-Instanzprofilen funktioniert, aber sie aktiviert tatsächlich jede AWS SDK Anmeldeinformationsquelle:
- EC2-Instanzprofile
- ECS-Task-Rollen
- Umgebungsvariablen
- AWS-Anmeldeinformationsdateien
- IAM-Rollenzuweisung
- Und mehr…
2. Sicherheit: Statische Schlüssel vs. Rollenzuweisung
Auf unserer Metal-Hosting-Plattform verwenden wir derzeit Zugriffsschlüssel, die regelmäßig rotiert werden. Wir streben einen Wechsel zur Rollenzuweisung an, um eine bessere Isolierung, bessere Möglichkeiten zur Zugriffskontrolle und eine bessere interne Prozessunterstützung zu erzielen.
Nachteile des aktuellen Ansatzes:
- Zugriffsschlüssel laufen nicht ab (bis zur Rotation)
- Haben weitreichende Berechtigungsumfänge
- Können bei Leckage kompromittiert werden
- Erfordern manuelle Rotationsverfahren
Vorteile der Verwendung der Rollenzuweisung stattdessen:
- Persistente Anmeldeinformationen können per IP-Adresse eingeschränkt werden
- Operationen werden mit temporären Anmeldeinformationen durchgeführt, die automatisch ablaufen (normalerweise 1 Stunde)
- Just-in-Time-Zugriff, da Anmeldeinformationen nur bei Bedarf vorhanden sind
- Reduzierter Schadensradius, da kompromittierte temporäre Anmeldeinformationen schnell ablaufen
- Keine Schlüsselrotation – der Prozess der Rollenzuweisung kümmert sich um die Aktualisierung
- Bessere Audit-Protokolle – jede Sitzung wird separat verfolgt
Was wir in Erwägung ziehen
Wir denken darüber nach, entweder:
- Die Einstellung in etwas Klareres wie
aws_credentials_from_environmentumzubenennen - Die Einstellung ganz zu entfernen und automatisch zu erkennen, wann Anmeldeinformationen aus der Umgebung und nicht aus den Site-Einstellungen stammen sollten
Wir brauchen Ihre Meinung!
Bitte lassen Sie uns wissen:
-
Wie authentifizieren Sie sich bei S3?
- Explizite Zugriffsschlüssel in den Site-Einstellungen
- EC2-Instanzprofil (mit aktivierter
s3_use_iam_profile) - ECS-Task-Rolle (mit aktivierter
s3_use_iam_profile) - Umgebungsvariablen (mit aktivierter
s3_use_iam_profile) - … etwas anderes?
-
Wenn Sie
s3_use_iam_profileverwenden:- In welcher Umgebung laufen Sie? (EC2, ECS, Docker, Bare Metal usw.)
- Haben der aktuelle Name/die Beschreibung zu Verwirrung geführt?
- Wäre ein anderer Name klarer?
-
Haben Sie Bedenken hinsichtlich Änderungen an dieser Einstellung?
- Befürchten Sie, dass Ihre aktuelle Einrichtung beeinträchtigt wird?
- Benötigen Sie Zeit, um Änderungen zu testen?
- Andere Überlegungen?
Warum das wichtig ist
Bessere S3-Authentifizierung bedeutet:
- Sicherer – keine statischen Schlüssel zu verwalten
- Einfachere Einrichtung – insbesondere für Cloud-Bereitstellungen
- Weniger Verwirrung – klarere Einstellungen und Dokumentation
- Bessere Unterstützung für moderne AWS-Authentifizierungsmuster
Ihr Feedback hilft uns, Verbesserungen vorzunehmen, die für alle funktionieren. Vielen Dank, dass Sie sich die Zeit nehmen, Ihre Einrichtung zu teilen!
hier lesen: jeder S3-kompatible Objektspeicheranbieter, den Sie verwenden ↩︎