Mit Monitor-API-Tokens arbeiten
Sie können Monitor-API-Tokens für die Authentifizierung beim IBM Cloud Monitoring-Service verwenden, wenn Sie Python-Scripts oder die IBM Cloud Monitoring-REST-API verwenden, um Routineaufgaben zu automatisieren und Benachrichtigungen zu überwachen.
Beachten Sie die folgenden Informationen für jede Instanz des IBM Cloud Monitoring-Service:
- Es gibt ein Monitor-API-Token für jedes Team.
- Wenn das Token kompromittiert wurde oder wenn es die Sicherheitsrichtlinien Ihrer Organisation erfordern, dass das Token nach bestimmten Bedingungen zurückgesetzt werden muss, kann ein Benutzer mit Verwaltungsberechtigungen das API-Token zurücksetzen.
Monitor-API-Token über die Überwachungsbenutzerschnittstelle abrufen
Führen Sie die folgenden Schritte aus, um das Monitor-API-Token abzurufen:
- Wählen Sie in der Navigationsleiste mithilfe der Auswahltaste die Option Einstellungen aus.
- Kopieren Sie im Abschnitt Monitor-API das Monitor-API-Token.
Nachdem Sie das Token abgerufen haben, können Sie API-Aufrufe ausführen und dieses Token im Header Authorization verwenden.
Schließen Sie das Schlüsselwort Bearer ein, wenn Sie das Token kopieren: Authorization: Bearer MONITOR_API_TOKEN.
Monitor-API-Token über die Überwachungsbenutzerschnittstelle zurücksetzen
Führen Sie die folgenden Schritte aus, um das Monitor-API-Token zurückzusetzen:
- Wählen Sie in der Navigationsleiste mithilfe der Auswahltaste die Option Einstellungen aus.
- Klicken Sie im Abschnitt Monitor-API auf Token zurücksetzen, um das API-Token zurückzusetzen.
Monitor-API-Token mithilfe der API abrufen
Sie können die Token-API verwenden, um das Monitor-API-Token abzurufen.
Sie können zum Beispiel den folgenden cURL-Befehl verwenden, um das Monitor-API-Token abzurufen:
curl -X GET <MONITORING_REST_API_ENDPOINT>/api/token -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
GET <MONITORING_REST_API_ENDPOINT>/api/token -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
Wo
-
<MONITORING_REST_API_ENDPOINT>gibt den Endpunkt an, auf den der REST-API-Aufruf abzielt. Weitere Informationen finden Sie unter REST-API-Endpunkte. Der öffentliche Endpunkt für eine Instanz, die in der Region 'us-south' verfügbar ist, ist beispielsweise folgender:https://us-south.monitoring.cloud.ibm.com/api -
Sie können mehrere Header übergeben, indem Sie
-Hverwenden.AuthorizationundIBMInstanceIDsind Header, die für die Authentifizierung erforderlich sind.SysdigTeamIDdefiniert das Team, für das Sie das Monitor-API-Token erhalten möchten.Informationen zum Abrufen eines Autorisierungstokens (
AUTH_TOKEN) und derGUIDfinden Sie unter Header für IAM-Tokens.
Wenn die in einer Überwachungsinstanz zulässige Berechtigung auf IAM_ONLY gesetzt ist, erhalten Sie die Antwort {"errors":[{"reason":"Not enough privileges to complete the action","message":"Access is denied"}]},
wenn Sie versuchen, das Monitor-API-Token abzurufen.
JSON-Beispielcode
Sie können den folgenden JSON-Beispielcode verwenden, um das Monitor-API-Token abzurufen:
def get_sysdig_api_token(self, instance_guid):
""" Get the Monitor API token by calling the /api/token endpoint """
if self.access_token == None:
self.get_iam_token()
if self.access_token == None:
# If the token is still None we have problems ....
return None
headers = { "Authorization": self.access_token,
"Accept": "application/json",
"IBMInstanceID": instance_guid }
url = self.sysdig_endpoint + "/api/token"
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
return data["token"]["key"]
else:
print_error("Error getting Monitor API token - {}".format(response.text))
return None