Erstellen eines Code Engine Auftrags
Der Geheimnistyp für benutzerdefinierte Anmeldedaten ermöglicht es Secrets Manager Benutzern, den Lebenszyklus von Anmeldedaten für externe Systeme (z. B. Artifactory, PagerDuty ) mithilfe von Secrets Manager APIs und Integrationen zu verwalten. Um benutzerdefinierte Anmeldungsgeheimnisse zu erstellen, müssen Sie zunächst ein Projekt einrichten in IBM Cloud® Code Engine und einen Auftrag definieren eingeben, um eine Schnittstelle zwischen Secrets Manager und dem externen Dienst, der Anmeldungsdaten benötigt, zu schaffen.
Benutzerdefinierte Berechtigungsnachweise unterstützen eine Vielzahl von Drittanbietersystemen, daher ist die Anleitung für die Konfiguration Ihres Code Engine Auftrags absichtlich allgemein gehalten und konzentriert sich auf Code Engine. Wenn Ihre Parameter korrekt formatiert sind und Sie ein gültiges Code Engine Projekt und einen Auftrag auswählen, kann Secrets Manager den Auftrag mit verschiedenen Konfigurationen ausführen. Secrets Manager prüft jedoch nicht, ob Ihre Konfiguration mit Ihrem spezifischen Anwendungsfall übereinstimmt. Es läuft nur das mitgelieferte Setup.
Zur Unterstützung bei der Implementierung der Auftragslogik für die Interaktion mit externen Anbietern bietet Secrets Manager eine Entwicklerdokumentation, Best Practices, Tools für Auftragsgenerierung und -bereitstellung sowie Codebeispiele. Erfahren Sie, wie Sie im Repository „Benutzerdefinierte Anmeldeinformationsanbieter“ einen neuen Anmeldeinformationsanbieterjob entwerfen.
Lebenszyklus des Anbieters von Berechtigungsnachweisen
Ein typischer Arbeitsablauf umfasst:
- Erstellung der Anmeldedaten, wobei neue Anmeldedaten generiert werden.
- Löschen des Berechtigungsnachweises, wenn der Berechtigungsnachweis widerrufen wird.
- Aktualisierung der geheimen Aufgabe, die das Ergebnis an Secrets Manager zurücksendet.
Das folgende Code Engine Auftragsablaufdiagramm veranschaulicht diesen Lebenszyklus.
Secrets Manager versucht täglich (bis zu 10 Tage lang) erneut, Anmeldeinformationen nach einem fehlgeschlagenen Löschversuch zu löschen. Wiederholungsanfragen werden empfohlen, sind aber aus Gründen der Übersichtlichkeit im Flussdiagramm nicht
aufgeführt. Eine Statusantwort 400 oder 404 auf die Aktualisierungsanfrage für eine geheime Aufgabe bedeutet, dass die geheime Aufgabe nicht durch einen erneuten Versuch aktualisiert werden kann.
Sicherheitsaspekte
Zur Verbesserung der Sicherheit:
- Befolgen Sie das Prinzip des geringsten Privilegs: Beschränken Sie den Job-Zugang auf die notwendigen Geheimnisse, indem Sie eine spezielle Geheimhaltungsgruppe verwenden.
- IAM-Rollen: Weisen Sie den API-Schlüssel zu, den der Auftrag zur Authentifizierung mit Secrets Manager verwendet SecretTaskUpdater rolle. Wenn der Auftrag Geheimnisse lesen muss, weisen Sie auch die SecretsReader rolle zu. Beide Rollen sollten auf die spezielle geheime Gruppe beschränkt sein.
- Vermeiden Sie persönlich identifizierbare Informationen (PII) und vertrauliche Daten: Verwenden Sie keine persönlichen Identifikatoren oder vertrauliche Daten (wie E-Mail-Adressen oder Sozialversicherungsnummern) als Eingabeparameter oder als Berechtigungsnachweis-IDs. Secrets Manager behandelt die Eingabeparameter und die Berechtigungsnachweis-ID als Metadaten und nicht als sensible geheime Daten.
Fehlerbehandlung
Wenn der Credentials Provider Job nicht in der Lage ist, die Credentials zu erstellen oder zu löschen, sollte er Secrets Manager mit einem Anwendungsfehlercode und einer Fehlermeldung für den Benutzer aktualisieren. Dieser Fehler wird in der Konsole Secrets Manager für die fehlgeschlagene Aufgabe angezeigt und ermöglicht es dem Benutzer, eine Korrekturmaßnahme durchzuführen.
Fehlerbehebung
Standardmäßig ist Secrets Manager so konfiguriert, dass Code Engine abgeschlossene Aufträge sofort entfernt. Dadurch wird eine Anhäufung von Aufträgen verhindert und ein Überschreiten der Quotengrenzen im Laufe der Zeit vermieden. Während der Entwicklung möchten Sie jedoch möglicherweise abgeschlossene Aufträge aufbewahren, um deren Konfiguration und Protokolle zu überprüfen.
Um abgeschlossene Aufträge über die Benutzeroberfläche Code Engine zu behalten:
- Navigieren Sie in der IBM Cloud Konsole zu Container → Projekte und öffnen Sie Ihr Credentials-Provider-Projekt.
- Gehen Sie auf der Projektseite zu Jobs, klicken Sie auf die Registerkarte Jobs, und wählen Sie Ihren Job aus.
- Öffnen Sie auf der Seite Konfiguration die Registerkarte Umgebungsvariablen.
- Suchen Sie die Variable
CE_REMOVE_COMPLETED_JOBSund klicken Sie auf ihre Zeile, um sie zu bearbeiten. - Ändern Sie im Bereich Umgebungsvariable bearbeiten den Wert von z. B.
IMMEDIATELYin4320(3 Tage) und klicken Sie dann auf Fertig. - Kehren Sie zur Seite Umgebungsvariablen zurück und klicken Sie auf Bereitstellen, um die Änderungen zu übernehmen. Abgeschlossene Auftragsläufe werden nun 3 Tage lang aufbewahrt.
Für die Fehlersuche bei Aufträgen in einer Produktionsumgebung wird empfohlen, Code Engine mit Cloud Logs zu integrieren. Anweisungen zur Einrichtung finden Sie in der Dokumentation der beiden Dienste.
Nächste Schritte
Nachdem Sie Ihr Code Engine Projekt und Ihren Auftrag erstellt haben, können Sie nun mit der Erstellung einer benutzerdefinierten Credentials Engine Konfiguration fortfahren.