Les journaux d'audit de réseau virtuel (VNET) dans Google Distributed Cloud (GDC) air-gapped vous permettent de suivre les opérations de création, de lecture, de mise à jour et de suppression (CRUD) sur les règles de réseau de projet et les équilibreurs de charge. Les journaux d'audit Kubernetes enregistrent l'identité de l'appelant, la ressource cible, l'action, l'horodatage, l'adresse IP source et le résultat des requêtes de mise en réseau virtuelle de l'API KRM (Kubernetes Resource Model) sur le serveur d'API de gestion.
| Emplacement de la charge de travail |
Stockage de fichiers et de blocs |
| Source du journal d'audit | |
| Opérations auditées |
|
Opérations CRUD sur la règle de réseau de projet
Type de journal : journaux d'audit du plan de gestion de l'API KRM.
| Champs de l'entrée de journal contenant des informations d'audit | ||
|---|---|---|
| Métadonnées d'audit | Nom du champ d'audit | Valeur |
| Identité de l'utilisateur ou du service | user |
Par exemple, "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" ] } |
|
Cible (Champs et valeurs qui appellent l'API) |
requestURI |
|
|
Action (Champs contenant l'opération effectuée) |
verb |
Par exemple,
|
| Code temporel de l'événement | requestReceivedTimestamp |
Par exemple,
|
| Source de l'action | sourceIPs |
Par exemple, "sourceIPs": [ "10.253.164.215" ] |
| Résultat | stage |
Par exemple,
|
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"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"
}
Opérations CRUD sur l'équilibreur de charge
Type de journal : journaux d'audit du plan de gestion de l'API KRM.
| Champs de l'entrée de journal contenant des informations d'audit | ||
|---|---|---|
| Métadonnées d'audit | Nom du champ d'audit | Valeur |
| Identité de l'utilisateur ou du service | user |
Par exemple, "user": { "groups": [ "system:masters", "system:authenticated" ], "username": "kubernetes-admin" } |
|
Cible (Champs et valeurs qui appellent l'API) |
objectRef.resource |
"objectRef": { "resource": "services" } |
|
Action (Champs contenant l'opération effectuée) |
verb |
Par exemple,
|
| Code temporel de l'événement | requestReceivedTimestamp |
Par exemple,
|
| Source de l'action | sourceIPs |
Par exemple, "sourceIPs": [ "10.200.0.5" ] |
| Résultat | stage |
Par exemple,
|
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"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"
}