
Idempotente Funktionen für IBM Security Appliance REST-APIs. Derzeit werden ISAM- und ISDS-Appliances abgedeckt.
Dieses Repository enthält Python-Code zur Verwaltung von IBM Security Appliances über ihre jeweiligen REST-APIs. Die ISAM-Appliance hat den ausgereiftesten Code.
Code für die ISDS-Appliance befindet sich in der Entwicklung.
Code für die ISVG-Appliance ist brandneu (nur mit 10.0.1.0 und höher getestet).
Für dieses Paket ist Python v3.9 und höher erforderlich.
Die folgenden Python-Pakete sind erforderlich:
Die folgenden Python-Pakete sind optional:
management_ssl_certificate verwendet)management_ssl_certificate verwendet)Appliances müssen für ihr LMI eine IP-Adresse definiert haben. Dies kann bedeuten, dass Appliances ihre Erstkonfiguration mit Lizenzakzeptanz abgeschlossen haben.
Diese Änderungen sind abwärtskompatibel. Standardmäßig wird nicht verifiziert, aber es wird immer ein Hinweis angezeigt:
Certificate verification has been disabled. Python is NOT verifying the SSL
certificate of the host appliance and InsecureRequestWarning messages are
being suppressed for the following host:
https://{0}:{1}
To use certificate verification:
1. When the certificate is trusted by your Python environment:
Instantiate all instances of ISAMAppliance with verify=True or set
the environment variable IBMSECLIB_VERIFY_CONNECTION=True.
2. When the certificate is not already trusted in your Python environment:
Instantiate all instances of ISAMAppliance with the verify parameter
set to the fully qualified path to a CA bundle.
See the following URL for more details:
https://requests.readthedocs.io/en/latest/user/advanced/#ssl-cert-verification
Um diese Zertifikatsvalidierungswarnung zu beheben, beachten Sie die folgenden Anweisungen:
Korrekte Verwendung:
Wenn Sie das Zertifikat irgendwo auf der Festplatte haben, instanziieren Sie die ISAMAppliance mit:
ISAMAppliance(…, verify=<path to cert>)
Sie können dies von der Appliance mit einem Befehl wie dem folgenden abrufen:
openssl s_client -connect ${HOSTNAME}:${PORT} </dev/null 2>/dev/null | openssl x509 -outform pem > isamAppliance.pem
Wenn das Zertifikat in Ihrer Python-Umgebung bereits vertrauenswürdig ist, instanziieren Sie die ISAMAppliance mit:
ISAMAppliance(…, verify=True)
oder setzen Sie die Umgebungsvariable: IBMSECLIB_VERIFY_CONNECTION=true
Wenn Sie Fehler erhalten, dass der Hostname nicht mit dem Zertifikat übereinstimmt:
Das könnte so aussehen:
<stack trace>
…
raise CertificateError("hostname %r doesn't match %r" % (hostname, dnsnames[0]))
urllib3.util.ssl_match_hostname.CertificateError: hostname '192.168.42.111' doesn't match 'appliance.ibm.com'
Stellen Sie sicher, dass der Hostname, der beim Instanziieren Ihrer ISAMAppliance verwendet wird, mit dem Subject Alternative Name des Zertifikats übereinstimmt.
Überprüfen Sie mit:
openssl x509 -in <cert-pem-file> -text
Beispiel:
$ openssl x509 -in /path/to/appliance.pem -text
Certificate:
Data:
Version: 3 (0x2)
…
X509v3 Subject Alternative Name:
DNS:appliance.ibm.com
…
Das Folgende erzeugt Fehler:
ISAMAppliance(host=”192.168.42.111”, lmi_port=443, verify=/path/to/appliance.pem)
da der Host nicht mit dem Subject Alternative Name übereinstimmt. Verwenden Sie stattdessen:
ISAMAppliance(host=”appliance.ibm.com”, lmi_port=443, verify=/path/to/appliance.pem)
Dieses Paket verwendet ein Datum für die Versionierung. Zum Beispiel: "2017.03.18.0"
Es ist das Datum, an dem das Paket veröffentlicht wird, mit einer Sequenznummer am Ende, um zu behandeln, wenn es mehrere Veröffentlichungen an einem Tag gibt (was voraussichtlich ungewöhnlich ist).
Dieses Python-Paket bietet die folgenden Funktionen:
{
rc: <0 for success, higher for errors>
changed: <True or False>
warnings: <List of strings with warnings - e.g. incompatible version>
data: <JSON data returned by appliance REST API that the function called>
}
Hinweis: Es ist bevorzugt, Warnungen zurückzugeben, anstatt einen Nicht-Null-rc zurückzusenden.
Eine abstrakte ibmappliance-Klasse wird erweitert, um eine Klasse für jede hier unterstützte Appliance zu erstellen.
Derzeit sind das ISAM- und ISDS-Appliances.
Ein abstrakter User wird für jede benötigte Benutzerart erweitert. Für ISAM gibt es einen Benutzer für den Appliance-Zugriff
und einen anderen für die Authentifizierung bei Web Runtime (Policy Server).
Es gibt vier primäre ISAM-Pakete – base, web, aac und fed. web enthält alle Komponenten, die
für die Einrichtung der Web-Funktionalität benötigt werden, einschließlich eingebettetem LDAP, Runtime und Funktionen, die als Teil des
wga-Moduls aktiviert werden. aac enthält Funktionen, die als Teil des mga-Moduls aktiviert werden, und fed die der federation. base
enthält alles andere – einschließlich aac und fed runtime und Audit Configuration (diese sind aac und fed gemeinsam
und befinden sich daher in base).
Die Paket- und Dateinamen wurden mit der folgenden Absicht erstellt:
Enthält verschiedene Funktionen, die generisch und unabhängig von einer IBM Appliance sind, z. B. json_compare().