如何将Icinga2 API权限限制为仅允许更改单个检查结果?

时间:2017-02-06 19:27:23

标签: lambda monitoring icinga2

我有一个备份脚本,成功完成后,通过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" }'

1 个答案:

答案 0 :(得分:1)

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

object ApiUser "backupninja" {
  password = "<redacted>"
  permissions = [
    {
      permission = "actions/process-check-result"
      filter = {{ match("backupninja", service.display_name) }}
    }
  ]
}