Utilisation des jetons d'API Monitor
L'authentification auprès du service IBM Cloud Monitoring peut s'effectuer à l'aide des jetons de l'API Monitor lorsque vous utilisez des scripts Python ou l'API REST IBM Cloud Monitoring pour automatiser des tâches de routine et surveiller des notifications.
Prenez en compte les informations suivantes pour chaque instance du service IBM Cloud Monitoring :
- Il existe un jeton d'API Monitor par équipe.
- Si le jeton est compromis ou que les règles de sécurité de votre organisation nécessitent la réinitialisation du jeton après la survenue de certaines conditions, un utilisateur doté de droits d'administration peut réinitialiser le jeton d'API.
Obtention du jeton d'API Monitor via l'interface utilisateur de surveillance
Pour obtenir le jeton d'API Monitor, procédez comme suit :
- A partir du bouton Sélecteur dans la barre de navigation, choisissez Paramètres.
- A partir de la section Monitor API, copiez le jeton d'API Monitor.
Une fois que vous avez obtenu le jeton, vous pouvez exécuter des appels d'API et utiliser ce jeton dans l'en-tête Authorization
.
Lorsque vous copiez le jeton, incluez le mot clé Bearer
: Authorization: Bearer MONITOR_API_TOKEN
Réinitialisation du jeton d'API Monitor par le biais de l'interface utilisateur de surveillance
Pour réinitialiser le jeton d'API Monitor, procédez comme suit :
- A partir du bouton Sélecteur dans la barre de navigation, choisissez Paramètres.
- Dans la section Monitor API, cliquez sur Reset Token pour réinitialiser le jeton d'API.
Obtention du jeton d'API Monitor à l'aide de l'API
Vous pouvez utiliser l'API Token pour obtenir le jeton d'API Monitor.
Par exemple, vous pouvez lancer la commande cURL suivante pour obtenir le jeton d'API Monitor :
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"
Où
-
<MONITORING_REST_API_ENDPOINT>
indique le point de terminaison visé par l'appel à l'API REST. Pour plus d'informations, voir Noeuds finaux d'API REST. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant :https://us-south.monitoring.cloud.ibm.com/api
-
Vous pouvez transmettre plusieurs en-têtes à l'aide de l'indicateur
-H
.Authorization
etIBMInstanceID
sont les en-têtes requis pour l'authentification.SysdigTeamID
définit l'équipe pour laquelle vous souhaitez obtenir le jeton API Monitor.Pour obtenir
AUTH_TOKEN
etGUID
, voir En-têtes des jetons IAM.
Lorsque la seule méthode d'autorisation admise dans une instance de surveillance est IAM_ONLY
, vous obtenez la réponse suivante {"errors":[{"reason":"Not enough privileges to complete the action","message":"Access is denied"}]}
lorsque vous tentez d'obtenir le jeton d'API Monitor.
Exemple de code JSON
Vous pouvez utiliser l'exemple de code JSON suivant pour obtenir le jeton d'API Monitor :
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