Code Engine und Sicherheit
Die Architektur von IBM Cloud® Code Engine ist mit der Denkweise "Sicherheit zuerst" aufgebaut. Die Komponenten von Code Engine werden von IBM verwaltet und sind dessen Eigentum.
Kunden und ihre Workloads werden durch die Verwendung von Projekten, die auf Kubernetes-Namensräumen basieren, voneinander isoliert. Rollenbasierte Zugriffskontrollen werden auf Ressourcenebene durchgeführt, um nur autorisierten Benutzern die
Durchführung bestimmter Vorgänge an Projektressourcen zu ermöglichen. Der Benutzerzugang wird durchCloud Identity and Access Management (IAM) kontrolliert. Bereitgestellte Apps werden über HTTPS bereitgestellt, und Code Engine erstellt
und verwaltet die zugrunde liegenden TLS-Zertifikate automatisch für Sie. Code Engine bietet sofortigen DDoS-Schutz für Ihre Anwendung. Die DDoS Schutz von Code Engine wird von Cloud Internet Services (CIS) ohne zusätzliche
Kosten für Sie bereitgestellt.
Code Engine Jobs können per Definition nicht von außen abgerufen werden. Aufträge können jedoch weiterhin externe Anfragen stellen und Code Engine-Anwendungen intern aufrufen. Ein Beispiel für einen Job, der intern eine Anwendung aufruft, finden Sie unter „ Beispiele für das Repository „ Code Engine GitHub “ “.
Sie können die folgenden Sicherheitsfunktionen nutzen, um Ihre Sicherheit zu erhöhen.
| Sicherheitseinrichtung | Beschreibung |
|---|---|
| Zugriff mit IAM autorisieren | Erteilen Sie anderen Benutzern den Zugriff auf Code Engine mithilfe von Cloud Identity and Access Management (IAM). IBM Cloud IAM stellt eine sichere Authentifizierung mit der IBM Cloud-Plattform, Code Engine, und allen Ressourcen in Ihrem Konto zur Verfügung. Die Einrichtung geeigneter Benutzerrollen und -berechtigungen ist der Schlüssel zur Begrenzung des Zugriffs auf Ihre Ressourcen. Lesen Sie hierzu den Abschnitt Benutzerzugriff verwalten. |
| Externe Endpunkte deaktivieren | Implementieren Sie Ihre Anwendung mithilfe der Option --visibility=private oder visibility=project mit einem inaktivierten externen Endpunkt, der nicht für externen Datenverkehr verfügbar ist. Siehe Optionen für Sichtbarkeit für eine Code Engine-Anwendung. |
| Bilder in privaten Bildregistern speichern | Richten Sie eine private Bildregistrierung ein, wie z. B. die von IBM Cloud Container Registry bereitgestellte, um den Zugriff auf die Registrierung und die Bilder zu kontrollieren, die in Code Engine bereitgestellt werden können. Scannen Sie Ihre Images automatisch mit IBM Cloud Container Registry Vulnerability Advisor. Sie können auch den Zugang zu Ihrer eigenen privaten Registratur hinzufügen. Siehe Auf Container-Registrys zugreifen. |
| Sie können auch den Zugang zu Ihrer eigenen privaten Registratur hinzufügen. | Speichern Sie Ihren Quellcode in einem privaten Repository und erstellen Sie dann nach IBM Cloud Container Registry. Siehe Zugriff auf private Code-Repositories. |
| Verwenden Sie geheime Schlüssel, um sensible Informationen zu speichern. | Sie können Informationen, wie Passwörter und SSH-Schlüssel, in einem geheimen Schlüssel speichern. Weitere Informationen finden Sie unter Mit geheimen Schlüsseln arbeiten. |
| Authentifizierungs-und Berechtigungsfunktionen hinzufügen | Wenn Sie Ihre Anwendung oder Funktion in Code Engine auf einer öffentlichen API oder Website zugänglich machen, können Sie den Zugriff auf bestimmte Benutzer oder Standorte (IP-Adressbereiche) beschränken. Während Code Engine Funktionen zum Einschränken des Zugriffs für APIs bereitstellt, mit denen Sie Code Engine-Projekte und ihre Entitäten verwalten können, liegt es in der Verantwortung des Eigners der Codequelle, ordnungsgemäße Authentifizierungs-und Berechtigungsfunktionen hinzuzufügen, um den Code zu schützen, der beim Erreichen der Endpunkte ausgeführt wird. Sie können beispielsweise IBM Cloud App ID verwenden, um Authentifizierungs-und Berechtigungsfunktionen für Ihren Code hinzuzufügen. |
| TLS-Zertifikate regelmäßig erneuern | Wenn Sie benutzerdefinierte Domain-Zuordnungen verwenden, um Ihre Anwendungen oder Funktionen bereitzustellen, müssen Sie sicherstellen, dass Ihre „ TLS “-Zertifikate ein Ablaufdatum haben, beispielsweise 90 Tage. Sie müssen Ihr Zertifikat regelmäßig mit einem aktualisierten Zertifikat (mit einem eigenen Ablaufdatum) turnusmäßig wechseln. Verwenden Sie im Idealfall die Automatisierung, um die Zertifikate zu rotieren. Sie können beispielsweise einen „ Code Engine “-Job verwenden, der durch ein Cron-Abonnement ausgelöst wird, um das Zertifikat zu rotieren. Wenn Sie Geheimnisse in „ IBM Cloud Secrets Manager “ speichern, sollten Sie die Verwendung von „ IBM Cloud Event Notifications “ in Betracht ziehen, damit Ihr „ Code Engine “-Projekt über Zertifikatsrotationen informiert ist. Eine Beispiel-App, die Ereignisbenachrichtigungen nutzt, finden Sie in unserem „ Code Engine “-Beispiel-Repository unter GitHub. |
Unterstützte Versionen von „ TLS “ und Verschlüsselungssuiten
Die API und die Anwendungsendpunkte von „ Code Engine “ unterstützen Transport Layer Security ( TLS ), „ 1.2 “ (oder höher) sowie die folgenden Verschlüsselungssuiten.
TLS Verschlüsselungssuiten
ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-CHACHA20-POLY1305ECDHE-RSA-CHACHA20-POLY1305
DDoS-Schutz
Code Engine bietet sofortigen Schutz vor „ DDoS “ für Ihre Anwendung. Der „ DDoS “-Schutz von Code Engine wird von Cloud Internet Services (CIS) ohne zusätzliche Kosten für Sie bereitgestellt.
DDoS Der Schutz umfasst Protokollangriffe auf den OSI-Schichten 3 und 4 ( TCP/IP ), jedoch keine Angriffe auf Schicht 7 ( HTTP ).
Um auf Layer 7-Angriffe zu reagieren, können Sie die folgenden Schritte ausführen, damit Ihr Datenverkehr über eine sichere Route unter Verwendung Ihrer angepassten Domäne verläuft und über die von Code Engine bereitgestellte Domäne nicht mehr für das öffentliche Internet verfügbar ist.
- Rufen Sie Ihre angepasste Domäne ab.
- In Code Engine erstellen Sie eine angepasste Domänenzuordnung für Ihre App.
- Richten Sie eine Instanz von Cloud Internet Services (CIS) ein, um Ihre angepasste Domäne zu verwalten.
- Fügen Sie die angepasste Domäne zur CIS-Instanz hinzu..
- Konfigurieren Sie eine globale Lastausgleichsfunktion in CIS.
- Aktivieren Sie den Proxy-Modus „ HTTP “ für den Load Balancer unter „ CIS “. Dadurch werden der „ DDoS “-Schutz auf Layer 7 sowie weitere Sicherheitsfunktionen von „ CIS “ aktiviert.
- Inaktivieren Sie in Code Enginedie vom öffentlichen System bereitgestellten Domänenzuordnungen Ihrer Anwendung. Rufen Sie Ihre Anwendung auf und wählen Sie auf der Registerkarte Domänenzuordnungen für Ihre App Keine Domänenzuordnung für externe Systeme aus.
- Klicken Sie auf Erstellen, um die Anwendungsrevision zu speichern.
Weitere Informationen zu DDoS in CISfinden Sie unter Dealing with Distributed Denial of Service-Attacken in CIS. Weitere Möglichkeiten zur Bewältigung von Layer-7-Angriffen finden Sie unter Layer-7-Attacken in CIS.