Upper Networking (UNET)

Gli audit log di Upper Networking (UNET) nell'appliance Google Distributed Cloud (GDC) con air gap ti consentono di monitorare le operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) sulle policy di rete del progetto e sui bilanciatori del carico, nonché sui flussi di traffico dei nodi e dei workload. Gli audit log di Kubernetes e i dispositivi di rete avanzati registrano l'identità del chiamante o dell'origine, la risorsa di destinazione o la destinazione, l'azione, il timestamp e la disposizione nel cluster dell'infrastruttura dell'organizzazione e nel server API di gestione.

Località del workload

Archiviazione di file e a blocchi

Origine dell'audit log

  • Operazioni CRUD sulle risorse Kubernetes: audit log di Kubernetes
  • Log di flusso dei nodi e dei workload: dispositivi di rete avanzati

Operazioni con audit

Operazioni CRUD sulla policy di rete del progetto

Tipo di log: audit log del piano di gestione delle API KRM.

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio user

Ad esempio,

"user": {
  "uid": "6e805ff0-3f8c-4073-b4e1-6a0582ff1263",
  "username": "system:serviceaccount:gpc-system:fleet-admin-controller",
  "extra": {
    "authentication.kubernetes.io/pod-uid": [
      "45ce2b16-3584-448e-8caf-49cb299dfb55"
    ],
    "authentication.kubernetes.io/pod-name": [
      "fleet-admin-controller-5b5d848876-764mt"
    ]
  },
  "groups": [
    "system:serviceaccounts",
    "system:serviceaccounts:gpc-system",
    "system:authenticated"
  ]
}

Destinazione

(Campi e valori che chiamano l'API)

requestURI

"requestURI": "/apis/networking.gdc.goog/v1alpha1/namespaces/platform-obs/projectnetworkpolicies"

Azione

(Campi contenenti l'operazione eseguita)

verb

Ad esempio,

"verb": "patch"

Timestamp evento requestReceivedTimestamp

Ad esempio,

"requestReceivedTimestamp": "2022-12-09T04:21:55.497089Z"

Origine dell'azione sourceIPs

Ad esempio,

"sourceIPs": [
  "10.253.164.215"
]

Risultato stage

Ad esempio,

"stage": "ResponseComplete"

Altri campi Non applicabile Non applicabile

Log di esempio

{
  "auditID": "ff8266f6-685f-4239-9ab8-c55083d575e0",
  "responseStatus": {
    "code": 200,
    "metadata": {}
  },
  "level": "Metadata",
  "requestURI": "/apis/networking.gdc.goog/v1alpha1/namespaces/platform-obs/projectnetworkpolicies/base-policy-allow-intra-project-traffic/status",
  "user": {
    "uid": "6e805ff0-3f8c-4073-b4e1-6a0582ff1263",
    "username": "system:serviceaccount:gpc-system:fleet-admin-controller",
    "extra": {
      "authentication.kubernetes.io/pod-uid": [
        "45ce2b16-3584-448e-8caf-49cb299dfb55"
      ],
      "authentication.kubernetes.io/pod-name": [
        "fleet-admin-controller-5b5d848876-764mt"
      ]
    },
    "groups": [
      "system:serviceaccounts",
      "system:serviceaccounts:gpc-system",
      "system:authenticated"
    ]
  },
  "_gdch_cluster": "org-1-admin",
  "objectRef": {
    "resource": "projectnetworkpolicies",
    "apiGroup": "networking.gdc.goog",
    "name": "base-policy-allow-intra-project-traffic",
    "apiVersion": "v1alpha1",
    "namespace": "platform-obs",
    "subresource": "status"
  },
  "verb": "patch",
  "kind": "Event",
  "_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-4267r",
  "stage": "ResponseComplete",
  "apiVersion": "audit.k8s.io/v1",
  "requestReceivedTimestamp": "2022-12-09T04:21:55.497089Z",
  "sourceIPs": [
    "10.253.164.215"
  ],
  "userAgent": "fleet-admin-cm/v0.0.0 (linux/amd64) kubernetes/$Format",
  "stageTimestamp": "2022-12-09T04:21:55.505045Z",
  "annotations": {
    "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"fleet-admin-controller\" of ClusterRole \"fleet-admin-controller\" to ServiceAccount \"fleet-admin-controller/gpc-system\"",
    "authorization.k8s.io/decision": "allow"
  },
  "_gdch_service_name": "apiserver"
}

Operazioni CRUD sul bilanciatore del carico

Tipo di log: audit log del piano di gestione delle API KRM.

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio user

Ad esempio,

"user": {
  "groups": [
    "system:masters",
    "system:authenticated"
  ],
  "username": "kubernetes-admin"
}

Destinazione

(Campi e valori che chiamano l'API)

objectRef.resource

"objectRef": {
  "resource": "services"
}

Azione

(Campi contenenti l'operazione eseguita)

verb

Ad esempio,

"verb": "get"

Timestamp evento requestReceivedTimestamp

Ad esempio,

"requestReceivedTimestamp": "2022-12-09T04:29:53.577417Z"

Origine dell'azione sourceIPs

Ad esempio,

"sourceIPs": [
  "10.200.0.5"
]

Risultato stage

Ad esempio,

"stage": "ResponseComplete"

Altri campi Non applicabile Non applicabile

Log di esempio

{
  "apiVersion": "audit.k8s.io/v1",
  "level": "Metadata",
  "_gdch_cluster": "org-1-admin",
  "auditID": "113e562b-0576-4b97-bc5f-168a60428f6d",
  "user": {
    "groups": [
      "system:masters",
      "system:authenticated"
    ],
    "username": "kubernetes-admin"
  },
  "stageTimestamp": "2022-12-09T04:29:53.579903Z",
  "sourceIPs": [
    "10.200.0.5"
  ],
  "responseStatus": {
    "code": 200,
    "metadata": {}
  },
  "annotations": {
    "authorization.k8s.io/decision": "allow",
    "authorization.k8s.io/reason": ""
  },
  "stage": "ResponseComplete",
  "requestURI": "/api/v1/namespaces/harbor-system/services/harbor-harbor-harbor-core",
  "_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-8kc9n",
  "verb": "get",
  "objectRef": {
    "apiVersion": "v1",
    "apiGroup": "UNKNOWN",
    "resource": "services",
    "namespace": "harbor-system",
    "name": "harbor-harbor-harbor-core"
  },
  "userAgent": "root-admin-cm/v0.0.0 (linux/amd64) kubernetes/$Format",
  "kind": "Event",
  "requestReceivedTimestamp": "2022-12-09T04:29:53.577417Z",
  "_gdch_service_name": "apiserver"
}

Log di flusso dei nodi per il cluster dell'infrastruttura dell'organizzazione e il server API di gestione

Tipo di log: piano dati.

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio src

Ad esempio,

"src": {
  "pod_name": "konnectivity-agent-58fdb55d57-5h2gj",
  "workload_kind": "Deployment",
  "workload_name": "konnectivity-agent",
  "pod_namespace": "kube-system",
  "namespace": "kube-system"
}

Destinazione

(Campi e valori che chiamano l'API)

dest

Ad esempio,

"dest": {
  "node_name": "xwxwxwx-default-pool-16baec8f-zkjw",
  "workload_kind": "Node"
}

Azione

(Campi contenenti l'operazione eseguita)

Non applicabile Non applicabile
Timestamp evento timestamp

Ad esempio,

"timestamp": "2022-11-21T20:34:32.027881823Z"

Origine dell'azione src

Ad esempio,

"src": {
  "pod_name": "konnectivity-agent-58fdb55d57-5h2gj",
  "workload_kind": "Deployment",
  "workload_name": "konnectivity-agent",
  "pod_namespace": "kube-system",
  "namespace": "kube-system"
}

Risultato disposition

Ad esempio,

"disposition": "allow"

Altri campi Non applicabile Non applicabile

Log di esempio

{
  "connection": {
    "src_ip": "10.4.0.7",
    "dest_ip": "10.128.0.16",
    "src_port": 52932,
    "dest_port": 10250,
    "protocol": "tcp",
    "direction": "ingress"
  },
  "disposition": "allow",
  "src": {
    "pod_name": "konnectivity-agent-58fdb55d57-5h2gj",
    "workload_kind": "Deployment",
    "workload_name": "konnectivity-agent",
    "pod_namespace": "kube-system",
    "namespace": "kube-system"
  },
  "dest": {
    "node_name": "xwxwxwx-default-pool-16baec8f-zkjw",
    "workload_kind": "Node"
  },
  "count": 1,
  "node_name": "xwxwxwx-default-pool-16baec8f-zkjw",
  "timestamp": "2022-11-21T20:34:32.027881823Z"
}

Log di flusso dei workload per il cluster dell'infrastruttura dell'organizzazione e il server API di gestione

Tipo di log: piano dati.

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio src

Ad esempio,

"src": {
  "instance": "10.4.0.1"
}

Destinazione

(Campi e valori che chiamano l'API)

dest

Ad esempio,

"dest": {
  "pod_name": "kube-dns-6d5d89dccb-5fjzs",
  "workload_kind": "Deployment",
  "workload_name": "kube-dns",
  "pod_namespace": "kube_system",
  "namespace": "kube-system"
}

Azione

(Campi contenenti l'operazione eseguita)

Non applicabile Non applicabile
Timestamp evento timestamp

Ad esempio,

"timestamp": "2022-11-21T20:34:32.027881823Z"

Origine dell'azione src

Ad esempio,

"src": {
  "instance": "10.4.0.1"
}

Risultato disposition

Ad esempio,

"disposition": "allow"

Altri campi Non applicabile Non applicabile

Log di esempio

{
  "connection": {
    "src_ip": "10.4.0.1",
    "dest_ip": "10.4.0.9",
    "src_port": 46768,
    "dest_port": 10054,
    "protocol": "tcp",
    "direction": "ingress"
  },
  "disposition": "allow",
  "policies": [
    {
      "kind": "CiliumClusterwideNetworkPolicy",
      "name": "allow-all"
    }
  ],
  "src": {
    "instance": "10.4.0.1"
  },
  "dest": {
    "pod_name": "kube-dns-6d5d89dccb-5fjzs",
    "workload_kind": "Deployment",
    "workload_name": "kube-dns",
    "pod_namespace": "kube_system",
    "namespace": "kube-system"
  },
  "count": 1,
  "node_name": "xwxwxwx-default-pool-16baec8f-zkjw",
  "timestamp": "2022-11-21T20:34:32.027881823Z"
}