1

我有一个备份脚本,成功完成后,通过 curl 调用 Icinga2 REST API(命令如下)。

这工作得很好,但我想保护 API 用户,以便它只能更改这个检查结果。我不确定我需要为过滤器设置的 lambda 函数的正确语法是什么,以仅允许更改“backupninja”检查结果。

object ApiUser "backupninja" {
  password = "<redacted>"
  permissions = [ "actions/process-check-result" ]
  filter = {{ }}
}

我的命令,如果重要的话:

curl -s -u $ICINGA2_API_USER:$ICINGA2_API_PASSWORD -H 'Accept: application/json' -X POST "https://$ICINGA2_HOST:$ICINGA2_API_PORT/v1/actions/process-check-result?service=$HOSTNAME\!backupninja" -d '{ "exit_status": 0, "plugin_output": "backupninja completed successfully" }'
4

1 回答 1

1

我在文档的Global Functions部分找到了答案:

object ApiUser "backupninja" {
  password = "<redacted>"
  permissions = [
    {
      permission = "actions/process-check-result"
      filter = {{ match("backupninja", service.display_name) }}
    }
  ]
}
于 2017-02-06T19:33:37.623 回答