Networking virtuale (VNET)

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

Log di controllo di Kubernetes

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"
}