Skip to content

[DISCUSS] Alerting + Security #36836

@kobelb

Description

@kobelb

Stack Monitoring's Alerts

The stack monitoring team would like to create their own alerts which run "automatically" to do things like create cluster alerts.

Saved Object Security Model

The following largely assumes that alerts themselves will be "saved objects", and as such will have to abide by the "saved objects security model". If this is an invalid assumption, this section is largely invalid but we'll want to discuss alternate plans.

I'm assuming that they'd like for these alerts to be "space agnostic" so that they can be visible regardless of the space that the user is in. For an alert to be "space agnostic" this is specified per "saved object type" like the following:

isNamespaceAgnostic: true,

Additionally, we'll likely only want users of monitoring to be able to see their own monitoring related alerts. To enable this, we'll likely want to implement a dedicate "monitoring alerts saved object type" and add this to the list of saved object types which users have when they have monitoring:

savedObject: {
all: [],
read: []
},

Where do we store the results?

We'll only want the results of the alerts themselves to be visible by those with access to monitoring. We could potentially store the results in an index which only the monitoring_user has access to, or we could store these in a dedicated "saved object type" themselves. I don't know if there's any infrastructure we should put in place to make this easier for all of the various applications consuming alerting.

Which "identity" do we use for the background job?

A large amount of the discussion which I've heard regarding alerting assumes that we'd like the alerts to run in the context of the user which scheduled them. I don't know if this is true for monitoring's use of alerts, and it feels like we'd want this to run under the identity of the Kibana internal server user, or another dedicated service account.

Generalizing stack management's requirements

It sounds like each "consumer" of alerts will likely be creating their own "alerting type" which will be able to choose between the following:

  1. global or space specific
  2. run as the internal Kibana user or the user which created it
    and we'll have to create a dedicated "saved object type" for each. Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions