Cómo trabajar con señales de API de supervisión

Puede utilizar señales de API de supervisión para autenticarse con el servicio IBM Cloud Monitoring cuando utilice scripts Python o la API REST de IBM Cloud Monitoring para automatizar las tareas rutinarias y supervisar las notificaciones.

Tenga en cuenta la información siguiente para cada instancia del servicio IBM Cloud Monitoring:

  • Hay una señal de API de supervisión por equipo.
  • Si la señal se ve comprometida o las políticas de seguridad de su organización requieren que se restablezca la señal bajo determinadas condiciones, un usuario con permisos de administración puede restablecer la señal de la API.

Obtención de la señal de la API de supervisión mediante la interfaz de usuario de supervisión

Siga los pasos siguientes para obtener la señal de API de supervisión:

  1. En el botón Selector de la barra de navegación, seleccione Valores
  2. En la sección API de supervisión, copie Señal de API de supervisión.

Después de obtener la señal, puede ejecutar llamadas de API y utilizar esta señal en la cabecera Authorization.

Cuando copie la señal, incluya la palabra clave Bearer: Authorization: Bearer MONITOR_API_TOKEN

Restablecimiento de la señal de API de supervisión mediante la interfaz de usuario de supervisión

Siga los pasos siguientes para restablecer la señal de API de supervisión:

  1. En el botón Selector de la barra de navegación, seleccione Valores.
  2. En la sección API de supervisión, pulse Restablecer señal para restablecer la señal de API.

Obtención de la señal de API de supervisión mediante la API

Puede utilizar la API de señal para obtener la señal de API de supervisión.

Por ejemplo, puede utilizar el siguiente mandato cURL para obtener la señal de API de supervisión:

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"

Donde

  • <MONITORING_REST_API_ENDPOINT> indica el punto final al que se dirige la llamada a la API REST. Para obtener más información, consulte Puntos finales de API REST. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente: https://us-south.monitoring.cloud.ibm.com/api

  • Puede pasar varias cabeceras utilizando -H.

    Authorization e IBMInstanceID son cabeceras necesarias para la autenticación.

    SysdigTeamID define el equipo para el que desea obtener el token de la API de monitorización.

    Para obtener una AUTH_TOKEN y el GUID consulte, Cabeceras para señales IAM.

Cuando la autorización que está permitida en una instancia de supervisión está establecida en IAM_ONLY, obtiene la siguiente respuesta {"errors":[{"reason":"Not enough privileges to complete the action","message":"Access is denied"}]} cuando intenta obtener la señal de API de supervisión.

Código JSON de ejemplo

Puede utilizar el siguiente código JSON de ejemplo para obtener la señal de API de supervisión:

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