Получение / пересылка событий аудита из кластеров kubernetes - PullRequest
1 голос
/ 28 октября 2019

Мне нужно отфильтровать и переслать события журнала аудита из kubernetes в webhook. Есть ли механизм, который я могу использовать для локальных кластеров, GKE, EKS и AKS?

Я могу настроить EKS для регистрации событий аудита в журналах Cloudwatch, Azure - для регистрации в журналах диагностики, журналы GCP - в стекдрайвере (Google, кажется, переформатирует их), но я бы предпочел единый механизм для всех,Я знаю, что kubernetes поддерживает запуск сервера api с некоторыми аргументами для определения мест назначения аудита, но я не имею никакого контроля над этим для управляемых облачных решений, таких как eks / aks / gke. Если бы я мог каким-то образом перехватить эти события из контейнера, это было бы здорово. Событие api (https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#event-v1-core), однако, представляется другим классом событий, который не содержит информацию о пользователе, которая мне нужна

События, которые я ищу, - это события аудита, такие как:

{
    "kind": "Event",
    "apiVersion": "audit.k8s.io/v1",
    "level": "Request",
    "auditID": "b5944e24-548d-4b5e-a5c7-218316d20ff1",
    "stage": "ResponseComplete",
    "requestURI": "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/system:persistent-volume-binding",
    "verb": "get",
    "user": {
        "username": "aksService",
        "groups": ["system:masters", "system:authenticated"]
    },
    "sourceIPs": ["172.31.20.52"],
    "userAgent": "kubectl/v1.13.2 (linux/amd64) kubernetes/cff46ab",
    "objectRef": {
        "resource": "clusterrolebindings",
        "name": "system:persistent-volume-binding",
        "apiGroup": "rbac.authorization.k8s.io",
        "apiVersion": "v1beta1"
    },
    "responseStatus": {
        "metadata": {},
        "code": 200
    },
    "requestReceivedTimestamp": "2019-10-24T17:38:56.846112Z",
    "stageTimestamp": "2019-10-24T17:38:56.848507Z",
    "annotations": {
        "authorization.k8s.io/decision": "allow",
        "authorization.k8s.io/reason": ""
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...