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:

  1. Wählen Sie in der Navigationsleiste mithilfe der Auswahltaste die Option Einstellungen aus.
  2. 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:

  1. Wählen Sie in der Navigationsleiste mithilfe der Auswahltaste die Option Einstellungen aus.
  2. 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 -H verwenden.

    Authorization und IBMInstanceID sind Header, die für die Authentifizierung erforderlich sind.

    SysdigTeamID definiert das Team, für das Sie das Monitor-API-Token erhalten möchten.

    Informationen zum Abrufen eines Autorisierungstokens (AUTH_TOKEN) und der GUID finden 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