Les journaux d'audit Logging et Audit Logging (LOG et AL) de l'appareil Google Distributed Cloud (GDC) avec air gap vous permettent de suivre les opérations d'administration et d'accès aux données pour les pipelines de journalisation et de surveillance dans les charges de travail racine et d'organisation. Les journaux d'audit Kubernetes et l'enregistreur d'audit d'observabilité enregistrent l'identité de l'utilisateur ou du service, la ressource cible et les champs de charge utile JSON pour les ressources personnalisées LoggingTarget, AuditLoggingTarget, LoggingRule et ObservabilityPipeline, ainsi que pour les requêtes Loki et Prometheus.
Exécuter des requêtes LogQL ou exporter des journaux à l'aide de l'interface utilisateur de l'instance de surveillance
| Source du journal d'audit |
Serveur proxy |
| 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 | user |
Par exemple, "user": { "issuer": "https://ais-core.org-1.zone1.google.gdch.test", "identity": "fop-infrastructure-operator@example.com" } |
|
Cible (Champs et valeurs qui appellent l'API) |
resource |
Par exemple,
|
|
Action (Champs contenant l'opération effectuée) |
action |
Valeurs possibles :
|
| Code temporel de l'événement |
time
|
Par exemple,
|
| Source de l'action |
|
Par exemple, "sourceIPs": [ [ "10.253.165.26", "127.0.0.6" ], "_gdch_service_name": "grafana" |
| Résultat | response |
Par exemple,
|
| Autres champs | description |
La valeur description contient la requête complète. Pour en savoir plus, consultez l'exemple de journal. |
Exemple de journal
{
"sourceIPs": [
"10.253.165.26",
"127.0.0.6"
],
"description": "{
\"queries\":
[{
\"refId\":\"A\",
\"datasource\":
{
\"uid\":\"P762A5DD6F13C8B7A\",
\"type\":\"loki\"
},
\"editorMode\":\"builder\",
\"expr\":\"{service_name=\\\"grafana\\\"} |= ``\",
\"queryType\":\"range\",
\"key\":\"Q-fd978c0c-86fd-4c70-bb38-07737a3be3ad-0\",
\"maxLines\":1000,
\"legendFormat\":\"\",
\"datasourceId\":3,
\"intervalMs\":500,
\"maxDataPoints\":1688
}],
\"range\":
{
\"from\":\"2022-12-02T21:22:03.496Z\",
\"to\":\"2022-12-02T21:37:03.496Z\",
\"raw\":{\"from\":\"now-15m\",\"to\":\"now\"}
},
\"from\":\"1670016123496\",
\"to\":\"1670017023496\"
}",
"response": "Successful: 200 OK",
"_gdch_namespace": "infra-obs-obs-system",
"numBytesSent": 190079,
"time": "2022-12-02T21:37:03.657277582Z",
"user": {
"issuer": "https://ais-core.org-1.zone1.google.gdch.test",
"identity": "fop-infrastructure-operator@example.com"
},
"_gdch_service_name": "grafana",
"_gdch_service_tenant": "infra-obs",
"numBytesReceived": 3172,
"resource": "/infra-obs/grafana/api/ds/query",
"auditID": "b519ec65-d906-4a79-bcfe-a4e1984045fe",
"action": "QUERY",
"_gdch_cluster": "org-1-admin",
"_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-9x9pd"
}
Effectuer des actions sur la ressource personnalisée LoggingTarget
| Source du journal d'audit | |
| Type de journal |
Plan de contrôle |
| 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": { "extra": { "authentication.kubernetes.io/pod-name": [ "fleet-admin-controller-875778d98-99l6n" ], "authentication.kubernetes.io/pod-uid": [ "4800e06c-c96d-4e17-ae1a-b5a74eedf6ee" ] }, "uid": "b18e586e-db0e-417e-9dff-1a722ab36bf4", "username": "system:serviceaccount:gpc-system:fleet-admin-controller", "groups": [ "system:serviceaccounts", "system:serviceaccounts:gpc-system", "system:authenticated" ] } |
|
Cible (Champs et valeurs qui appellent l'API) |
|
Par exemple, "requestURI": "/apis/logging.gdc.goog/v1/namespaces/obs-system/loggingtargets/lt-cfg1", "objectRef": { "uid": "2e540720-ed23-4665-8c40-c399cb6be624", "namespace": "obs-system", "name": "lt-cfg1", "resource": "loggingtargets", "apiVersion": "v1", "apiGroup": "logging.gdc.goog", "resourceVersion": "5326570" } |
|
Action (Champs contenant l'opération effectuée) |
verb |
Valeurs possibles :
|
| Code temporel de l'événement |
requestReceivedTimestamp
|
Par exemple,
|
| Source de l'action |
|
Par exemple, "sourceIPs": [ "10.253.164.209" ], "_gdch_service_name": "apiserver" |
| Résultat | responseStatus |
Par exemple, "responseStatus": { "metadata": {}, "code": 200 } |
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"level": "Metadata",
"auditID": "94c2106f-1fd1-428b-adbc-80ac48ef479e",
"_gdch_cluster": "org-1-admin",
"requestURI": "/apis/logging.gdc.goog/v1/namespaces/obs-system/loggingtargets/lt-cfg1",
"_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-4gwpn",
"verb": "update",
"userAgent": "fleet-admin-cm/v0.0.0 (linux/amd64) kubernetes/$Format",
"responseStatus": {
"metadata": {},
"code": 200
},
"user": {
"extra": {
"authentication.kubernetes.io/pod-name": [
"fleet-admin-controller-875778d98-99l6n"
],
"authentication.kubernetes.io/pod-uid": [
"4800e06c-c96d-4e17-ae1a-b5a74eedf6ee"
]
},
"uid": "b18e586e-db0e-417e-9dff-1a722ab36bf4",
"username": "system:serviceaccount:gpc-system:fleet-admin-controller",
"groups": [
"system:serviceaccounts",
"system:serviceaccounts:gpc-system",
"system:authenticated"
]
},
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"fleet-admin-common-controller\" of ClusterRole \"fleet-admin-common-controllers-role\" to ServiceAccount \"fleet-admin-controller/gpc-system\""
},
"sourceIPs": [
"10.253.164.209"
],
"stage": "ResponseComplete",
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"stageTimestamp": "2022-12-06T14:37:41.035715Z",
"objectRef": {
"uid": "2e540720-ed23-4665-8c40-c399cb6be624",
"namespace": "obs-system",
"name": "lt-cfg1",
"resource": "loggingtargets",
"apiVersion": "v1",
"apiGroup": "logging.gdc.goog",
"resourceVersion": "5326570"
},
"requestReceivedTimestamp": "2022-12-06T14:37:40.942762Z",
"_gdch_service_name": "apiserver"
}
Effectuer des actions sur la ressource personnalisée AuditLoggingTarget
| Source du journal d'audit | |
| Type de journal |
Plan de contrôle |
| 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) |
|
Par exemple, "requestURI": "/apis/logging.private.gdc.goog/v1/namespaces/obs-system/auditloggingtargets/audit-logging-config-qwerty", "objectRef": { "name": "audit-logging-config-qwerty", "namespace": "obs-system", "resource": "auditloggingtargets", "apiGroup": "logging.private.gdc.goog", "apiVersion": "v1" } |
|
Action (Champs contenant l'opération effectuée) |
verb |
Valeurs possibles :
|
| Code temporel de l'événement |
requestReceivedTimestamp
|
Par exemple,
|
| Source de l'action |
|
Par exemple, "sourceIPs": [ "10.200.0.7" ], "_gdch_service_name": "apiserver" |
| Résultat | responseStatus |
Par exemple, "responseStatus": { "metadata": {}, "code": 200 } |
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"level": "Metadata",
"auditID": "1fd8d531-c488-4478-8341-47346b1b6eda",
"stageTimestamp": "2022-12-05T19:09:56.861278Z",
"stage": "RequestReceived",
"_gdch_cluster": "org-1-admin",
"verb": "delete",
"_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-56tbb",
"requestReceivedTimestamp": "2022-12-05T19:09:56.861278Z",
"objectRef": {
"name": "audit-logging-config-qwerty",
"namespace": "obs-system",
"resource": "auditloggingtargets",
"apiGroup": "logging.private.gdc.goog",
"apiVersion": "v1"
},
"user": {
"groups": [
"system:masters",
"system:authenticated"
],
"username": "kubernetes-admin"
},
"sourceIPs": [
"10.200.0.7"
],
"kind": "Event",
"userAgent": "k9s/v0.0.0 (linux/amd64) kubernetes/$Format",
"apiVersion": "audit.k8s.io/v1",
"requestURI": "/apis/logging.private.gdc.goog/v1/namespaces/obs-system/auditloggingtargets/audit-logging-config-qwerty",
"_gdch_service_name": "apiserver"
}
Effectuer des actions sur la ressource personnalisée LoggingRule
| Source du journal d'audit | |
| Type de journal |
Plan de contrôle |
| 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": { "extra": { "authentication.kubernetes.io/pod-name": [ "fleet-admin-controller-875778d98-99l6n" ], "authentication.kubernetes.io/pod-uid": [ "4800e06c-c96d-4e17-ae1a-b5a74eedf6ee" ] }, "uid": "b18e586e-db0e-417e-9dff-1a722ab36bf4", "username": "system:serviceaccount:gpc-system:fleet-admin-controller", "groups": [ "system:serviceaccounts", "system:serviceaccounts:gpc-system", "system:authenticated" ] } |
|
Cible (Champs et valeurs qui appellent l'API) |
|
Par exemple, "requestURI": "/apis/logging.gdc.goog/v1/namespaces/obs-system/loggingrules/lr-cfg1", "objectRef": { "uid": "2e540720-ed23-4665-8c40-c399cb6be624", "namespace": "obs-system", "name": "lr-cfg1", "resource": "loggingrules", "apiVersion": "v1", "apiGroup": "logging.gdc.goog", "resourceVersion": "5326570" } |
|
Action (Champs contenant l'opération effectuée) |
verb |
Valeurs possibles :
|
| Code temporel de l'événement |
requestReceivedTimestamp
|
Par exemple,
|
| Source de l'action |
|
Par exemple, "sourceIPs": [ "10.253.164.209" ], "_gdch_service_name": "apiserver" |
| Résultat | responseStatus |
Par exemple, "responseStatus": { "metadata": {}, "code": 200 } |
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"level": "Metadata",
"auditID": "94c2106f-1fd1-428b-adbc-80ac48ef479e",
"_gdch_cluster": "org-1-admin",
"requestURI": "/apis/logging.gdc.goog/v1/namespaces/obs-system/loggingrules/lr-cfg1",
"_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-4gwpn",
"verb": "update",
"userAgent": "fleet-admin-cm/v0.0.0 (linux/amd64) kubernetes/$Format",
"responseStatus": {
"metadata": {},
"code": 200
},
"user": {
"extra": {
"authentication.kubernetes.io/pod-name": [
"fleet-admin-controller-875778d98-99l6n"
],
"authentication.kubernetes.io/pod-uid": [
"4800e06c-c96d-4e17-ae1a-b5a74eedf6ee"
]
},
"uid": "b18e586e-db0e-417e-9dff-1a722ab36bf4",
"username": "system:serviceaccount:gpc-system:fleet-admin-controller",
"groups": [
"system:serviceaccounts",
"system:serviceaccounts:gpc-system",
"system:authenticated"
]
},
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"fleet-admin-common-controller\" of ClusterRole \"fleet-admin-common-controllers-role\" to ServiceAccount \"fleet-admin-controller/gpc-system\""
},
"sourceIPs": [
"10.253.164.209"
],
"stage": "ResponseComplete",
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"stageTimestamp": "2022-12-06T14:37:41.035715Z",
"objectRef": {
"uid": "2e540720-ed23-4665-8c40-c399cb6be624",
"namespace": "obs-system",
"name": "lr-cfg1",
"resource": "loggingrules",
"apiVersion": "v1",
"apiGroup": "logging.gdc.goog",
"resourceVersion": "5326570"
},
"requestReceivedTimestamp": "2022-12-06T14:37:40.942762Z",
"_gdch_service_name": "apiserver"
}
Effectuer des actions sur la ressource personnalisée ObservabilityPipeline
| Source du journal d'audit | |
| Type de journal |
Plan de contrôle |
| 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": { "username": "kubernetes-admin", "groups": [ "system:masters", "system:authenticated" ] } |
|
Cible (Champs et valeurs qui appellent l'API) |
|
Par exemple, "requestURI": "/apis/observability.gdc.goog/v1/namespaces/obs-system/observabilitypipelines/default", "objectRef": { "apiGroup": "observability.gdc.goog", "apiVersion": "v1", "name": "default", "resource": "observabilitypipelines", "namespace": "obs-system" } |
|
Action (Champs contenant l'opération effectuée) |
verb |
Valeurs possibles :
|
| Code temporel de l'événement |
requestReceivedTimestamp
|
Par exemple,
|
| Source de l'action |
|
Par exemple, "sourceIPs": [ "10.200.0.7" ], "_gdch_service_name": "apiserver" |
| Résultat | responseStatus |
Par exemple, "responseStatus": { "metadata": {}, "code": 200 } |
| Autres champs | Non applicable | Non applicable |
Exemple de journal
{
"_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-sff9t",
"requestURI": "/apis/observability.gdc.goog/v1/namespaces/obs-system/observabilitypipelines/default",
"stage": "RequestReceived",
"verb": "get",
"user": {
"username": "kubernetes-admin",
"groups": [
"system:masters",
"system:authenticated"
]
},
"objectRef": {
"apiGroup": "observability.gdc.goog",
"apiVersion": "v1",
"name": "default",
"resource": "observabilitypipelines",
"namespace": "obs-system"
},
"requestReceivedTimestamp": "2022-12-06T14:58:03.742024Z",
"stageTimestamp": "2022-12-06T14:58:03.742024Z",
"level": "Metadata",
"auditID": "f5a473cf-65c9-4706-aa0e-e657c9f308f7",
"_gdch_cluster": "org-1-admin",
"userAgent": "kubectl/v1.25.4 (linux/amd64) kubernetes/872a965",
"sourceIPs": [
"10.200.0.7"
],
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"_gdch_service_name": "apiserver"
}