Gli audit log di rete virtuale (VNET) in 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. Gli audit log di Kubernetes registrano l'identità del chiamante, la risorsa di destinazione, l'azione, il timestamp, l'indirizzo IP di origine e il risultato delle richieste di networking virtuale dell'API Kubernetes Resource Model (KRM) sul server API di gestione.
| Località del workload |
Archiviazione di file e a blocchi |
| Origine dell'audit log | |
| 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 |
|
|
Azione (Campi contenenti l'operazione eseguita) |
verb |
Ad esempio,
|
| Timestamp evento | requestReceivedTimestamp |
Ad esempio,
|
| Origine dell'azione | sourceIPs |
Ad esempio, "sourceIPs": [ "10.253.164.215" ] |
| Risultato | stage |
Ad esempio,
|
| 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,
|
| Timestamp evento | requestReceivedTimestamp |
Ad esempio,
|
| Origine dell'azione | sourceIPs |
Ad esempio, "sourceIPs": [ "10.200.0.5" ] |
| Risultato | stage |
Ad esempio,
|
| 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"
}