SEC11-BP05 Services für Pakete und Abhängigkeiten zentralisieren
Stellen Sie zentralisierte Services für den Erhalt von Softwarepaketen und anderen Abhängigkeiten für Ihre Teams bereit. Auf diese Weise können Pakete validiert werden, bevor sie in die von Ihnen geschriebene Software integriert werden, und es wird eine Datenquelle für die Analyse der Software bereitgestellt, die in Ihrer Organisation verwendet wird.
Gewünschtes Ergebnis: Sie erstellen Ihren Workload aus externen Softwarepaketen neben dem von Ihnen geschriebenen Code. Dies macht die Implementierung von häufig verwendeten Funktionen wie einem JSON-Parser oder einer Verschlüsselungsbibliothek einfacher. Sie stellen die Quellen für diese Pakete und Abhängigkeiten zentral bereit, sodass Ihr Sicherheitsteam sie vor der Verwendung validieren kann. Sie verwenden diesen Ansatz zusammen mit manuellen und automatisierten Tests, um das Vertrauen in die Qualität der entwickelten Software zu steigern.
Typische Anti-Muster:
-
Sie rufen Pakete willkürlich aus Repositorys im Internet ab.
-
Sie testen neue Pakete nicht, bevor Sie sie für Entwickler verfügbar machen.
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
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 Beispiele:
-
Beschleunigen von Bereitstellungen in AWS mit effektiver Governance
-
Erhöhen Ihrer Paketsicherheit mit dem Toolkit von CodeArtifact Package Origin Control
-
Pipeline zur Veröffentlichung von Paketen in mehreren Regionen
(GitHub) -
Veröffentlichen von Node.js-Modulen in AWS CodeArtifact mithilfe von AWS CodePipeline
(GitHub) -
Beispiel für eine AWS CDK-Java-CodeArtifact-Pipeline
(GitHub) -
Verteilen privater .NET-NuGet-Pakete mit AWS CodeArtifact
(GitHub)
Zugehörige Videos: