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:
- No botão Seletor na barra de navegação, escolha Configurações
- 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:
- No botão Seletor na barra de navegação, escolha Configurações.
- 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.AuthorizationeIBMInstanceIDsão cabeçalhos que são necessários para autenticação.SysdigTeamIDdefine a equipe para a qual você deseja obter o token da API do Monitor.Para obter um
AUTH_TOKENe oGUID, 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