SEC11-BP05 Zentralisieren von Services für Pakete und Abhängigkeiten - AWS Well-Architected Framework

SEC11-BP05 Zentralisieren von Services für Pakete und Abhängigkeiten

Stellen Sie zentralisierte Services für Entwicklungsteams bereit, sodass sie Softwarepakete und andere Abhängigkeiten erhalten können. Dadurch können Pakete validiert werden, bevor sie in die von Ihnen geschriebene Software integriert werden, und es kann eine Datenquelle für die Analyse der Software bereitgestellt werden, die in Ihrer Organisation verwendet wird.

Gewünschtes Ergebnis: Software umfasst zusätzlich zum geschriebenen Code eine Reihe weiterer Softwarepakete. Dadurch wird die Implementierung häufig verwendeter Funktionen wie einem JSON-Parser oder einer Verschlüsselungsbibliothek vereinfacht. Das logische Zentralisieren der Quellen und Abhängigkeiten für diese Pakete bietet einen Mechanismus für Sicherheitsteams, mit dem sie die Eigenschaften der Pakete validieren können, bevor sie verwendet werden. Dieser Ansatz verringert auch das Risiko, dass ein unerwartetes Problem durch die Änderung eines vorhandenen Pakets verursacht wird oder dass Entwicklungsteams willkürlich Pakete direkt aus dem Internet einschließen. Verwenden Sie diesen Ansatz zusammen mit manuellen und automatischen Tests, um das Vertrauen in die Qualität der entwickelten Software zu steigern.

Typische Anti-Muster:

  • Pakete werden willkürlich aus Repositorys im Internet abgerufen.

  • Neue Pakete werden nicht getestet, bevor sie für Entwickler verfügbar gemacht werden.

Vorteile der Nutzung dieser bewährten Methode:

  • Besseres Verständnis, welche Pakete in der entwickelten Software verwendet werden

  • Benachrichtigung von Workload-Teams, wenn ein Paket aktualisiert werden muss (basierend auf dem Verständnis davon, wer was verwendet)

  • Geringeres Risiko, dass ein Paket mit Problemen in Ihre Software eingeschlossen wird

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Mittel

Implementierungsleitfaden

Stellen Sie zentralisierte Services für Pakete und Abhängigkeiten so bereit, dass sie von Entwicklern einfach verwendet werden können. Zentralisierte Services können logisch zentral sein, anstatt als monolithisches System implementiert zu werden. Mit diesem Ansatz können Sie Services anbieten, die die Anforderungen Ihrer Entwickler erfüllen. Sie sollten eine effiziente Methode implementieren, mit der dem Repository im Falle von Updates oder neuen Anforderungen Pakete hinzugefügt werden können. Mithilfe von AWS-Services wie AWS CodeArtifact oder ähnlichen AWS-Partnerlösungen kann diese Funktion bereitgestellt werden.

Implementierungsschritte:

  • Implementieren Sie einen logisch zentralisierten Repository-Service, der in allen Umgebungen, in denen die Software entwickelt wird, verfügbar ist.

  • Schließen Sie Zugriff auf das Repository als Komponente des AWS-Konto-Vergabeprozesses ein.

  • Entwickeln Sie eine Automatisierung zum Testen von Paketen, bevor diese in einem Repository veröffentlicht werden.

  • Pflegen Sie Metriken der am häufigsten verwendeten Pakete, Sprachen und Teams mit den häufigsten Änderungen.

  • Stellen Sie einen automatisierten Mechanismus für Entwicklerteams bereit, damit sie neue Pakete anfordern und Feedback geben können.

  • Scannen Sie regelmäßig Pakete in Ihrem Repository, um die Auswirkungen kürzlich entdeckter Probleme zu identifizieren.

Ressourcen

Zugehörige bewährte Methoden:

Zugehörige Dokumente:

Zugehörige Videos:

Zugehörige Beispiele: