Les journaux d'audit UNET (Upper Networking) de l'appareil 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, ainsi que les flux de trafic des nœuds et des charges de travail. Les journaux d'audit Kubernetes et les appareils réseau avancés enregistrent l'identité de l'appelant ou de la source, la ressource ou la destination cible, l'action, l'horodatage et la disposition sur le cluster d'infrastructure de l'organisation et 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"
}
Journaux de flux de nœuds pour le cluster d'infrastructure de l'organisation et le serveur de l'API Management
Type de journal : plan de données.
| 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 | src |
Par exemple, "src": { "pod_name": "konnectivity-agent-58fdb55d57-5h2gj", "workload_kind": "Deployment", "workload_name": "konnectivity-agent", "pod_namespace": "kube-system", "namespace": "kube-system" } |
|
Cible (Champs et valeurs qui appellent l'API) |
dest |
Par exemple, "dest": { "node_name": "xwxwxwx-default-pool-16baec8f-zkjw", "workload_kind": "Node" } |
|
Action (Champs contenant l'opération effectuée) |
Non applicable | Non applicable |
| Code temporel de l'événement | timestamp |
Par exemple,
|
| Source de l'action | src |
Par exemple, "src": { "pod_name": "konnectivity-agent-58fdb55d57-5h2gj", "workload_kind": "Deployment", "workload_name": "konnectivity-agent", "pod_namespace": "kube-system", "namespace": "kube-system" } |
| Résultat | disposition |
Par exemple,
|
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"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"
}
Journaux de flux de charge de travail pour le cluster d'infrastructure de l'organisation et le serveur d'API Management
Type de journal : plan de données.
| 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 | src |
Par exemple, "src": { "instance": "10.4.0.1" } |
|
Cible (Champs et valeurs qui appellent l'API) |
dest |
Par exemple, "dest": { "pod_name": "kube-dns-6d5d89dccb-5fjzs", "workload_kind": "Deployment", "workload_name": "kube-dns", "pod_namespace": "kube_system", "namespace": "kube-system" } |
|
Action (Champs contenant l'opération effectuée) |
Non applicable | Non applicable |
| Code temporel de l'événement | timestamp |
Par exemple,
|
| Source de l'action | src |
Par exemple, "src": { "instance": "10.4.0.1" } |
| Résultat | disposition |
Par exemple,
|
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"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"
}