Trabalhando com tokens da API do Monitor

É possível usar tokens da API do Monitor para autenticar-se com o serviço IBM Cloud Monitoring quando usar scripts Python ou a API de REST do IBM Cloud Monitoring para automatizar tarefas de rotina e monitorar notificações.

Considere as informações a seguir para cada instância do serviço IBM Cloud Monitoring:

  • Há um token da API do Monitor por equipe.
  • Se o token estiver comprometido ou as políticas de segurança de sua organização precisarem reconfigurar o token após determinadas condições, um usuário com permissões de administração poderá reconfigurar o token da API.

Obtendo o token da API do Monitor por meio da IU de monitoramento

Conclua as seguintes etapas para obter o token da API do Monitor:

  1. No botão Seletor na barra de navegação, escolha Configurações
  2. Na seção API do Monitor, copie o Token da API do Monitor.

Depois de obter o token, é possível executar chamadas da API e usar esse token no cabeçalho Authorization.

Quando copiar o token, inclua a palavra-chave Bearer: Authorization: Bearer MONITOR_API_TOKEN

Reconfigurando o token da API do Monitor por meio da IU de monitoramento

Conclua as seguintes etapas para reconfigurar o token da API do Monitor:

  1. No botão Seletor na barra de navegação, escolha Configurações.
  2. Na seção API do Monitor, clique em Reconfigurar token para reconfigurar o token da API.

Obtendo o token da API do Monitor usando a API

É possível usar a API do token para obter o token da API do Monitor.

Por exemplo, é possível usar o seguinte comando cURL para obter o token da API do 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"

em que

  • <MONITORING_REST_API_ENDPOINT> indica o ponto de extremidade visado pela chamada à API REST. Para obter mais informações, consulte Terminais da API de REST. Por exemplo, o terminal público para uma instância que está disponível em us-south é o seguinte: https://us-south.monitoring.cloud.ibm.com/api

  • É possível transmitir vários cabeçalhos usando -H.

    Authorization e IBMInstanceID são cabeçalhos que são necessários para autenticação.

    SysdigTeamID define a equipe para a qual você deseja obter o token da API do Monitor.

    Para obter um AUTH_TOKEN e o GUID, consulte Cabeçalhos para tokens do IAM.

Quando a autorização que é permitida em uma instância de monitoramento for configurada como IAM_ONLY, você receberá a seguinte resposta {"errors":[{"reason":"Not enough privileges to complete the action","message":"Access is denied"}]} quando tentar obter o token da API do Monitor.

Código JSON de amostra

É possível usar o seguinte código JSON de amostra para obter o token da API do 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