Domain Name System (DNS)

Workload location

Root and organization workloads

Audit log source

Kubernetes audit logs

Audited operations

Update a zone

Fields in the log entry that contain audit information
Audit metadata Audit field name Value
User or service identity user.username

For example,

"user":{  "username": "dns@example.com"  }

Target

(Fields and values that call the API)

requestURI

"requestURI":"/api/v1/namespaces/dns-system/configmaps/gpc-coredns-external-zonefile"

Action

(Fields containing the performed operation)

verb

"verb":"update"

Event timestamp ts

For example,

"ts":2022-11-11T22:02:02.074Z

Source of action sourceIPs

For example,

"sourceIPs":["10.142.5.147"]

Outcome responseStatus.code

For example,

"responseStatus":{  "code":200  }

Other fields
  • annotations
  • objectRef

For example,

"annotations":{  "authorization.k8s.io/decision":"allow"  }, "objectRef":{  "resourceVersion":"697063",  "uid":"aed2e6f7-ca03-4bcd-9c07-167ccd4da88e",  "apiVersion":"v1",  "resource":"configmaps",  "apiGroup":"UNKNOWN",  "namespace":"dns-system",  "name":"gpc-coredns-external-zonefile"  }

Example log

{  "_gdch_cluster":"root-admin",  "_gdch_fluentbit_pod":"anthos-audit-logs-forwarder-7s769",  "_gdch_service_name":"apiserver",  "annotations":{  "authorization.k8s.io/decision":"allow",  "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"dns-core-controllers-rolebinding\" of ClusterRole \"dns-core-controllers-role\" to ServiceAccount \"dns-core-controller-sa/dns-system\"",  },  "apiVersion":"audit.k8s.io/v1",  "auditID":"ba0344d7-283f-4d79-aabc-e083al9b053a",  "kind":"Event",  "level":"Metadata",  "objectRef":{  "resourceVersion":"697063",  "uid":"aed2e6f7-ca03-4bcd-9c07-167ccd4da88e",  "apiVersion":"v1",  "resource":"configmaps",  "apiGroup":"UNKNOWN",  "namespace":"dns-system",  "name":"gpc-coredns-external-zonefile"  },  "requestReceivedTimestamp":"2022-11-11T22:02:02.034688Z",  "requestURI":"/api/v1/namespaces/dns-system/configmaps/gpc-coredns-external-zonefile",  "responseStatus":{  "metadata":{},  "code":200  },  "sourceIPs":["10.142.5.147"],  "stage":"ResponseComplete",  "stageTimestamp":"2022-11-11T22:02:02.045045Z",  "ts":2022-11-11T22:02:02.074Z,  "tsNs":1668204122074601081,  "user":{  "uid":"08f727c9-5e3d-403f-bf35-06ef53f9832c",  "groups":[  "system:serviceaccounts",  "system:serviceaccounts:dns-system",  "system:authenticated"  ],  "username": "system:serviceaccount:dns-system:dns-core-controller-sa",  "extra": {  "authentication.kubernetes.io/pod-name":["dns-core-controller-58c4646858-z8kmr"],  "authentication.kubernetes.io/pod-uid":["7cfc9b72-aacc-4e86-b43f-016498055230"]  }  },  "userAgent":"controller-manager/v0.0.0 (linux/amd64) kubernetes/$Format",  "verb":"update" } 

Create or delete a DNSSEC key

Fields in the log entry that contain audit information
Audit metadata Audit field name Value
User or service identity user.username

For example,

"user":{  "username": "dns@example.com"  }

Target

(Fields and values that call the API)

requestURI

"requestURI":"/api/v1/namespaces/dns-system/secrets/gpc-coredns-external-ksks"

Action

(Fields containing the performed operation)

verb

"verb":"update"

Event timestamp ts

For example,

"ts":2022-11-11T22:02:02.074Z

Source of action sourceIPs

For example,

"sourceIPs":["10.142.5.147"]

Outcome responseStatus.code

For example,

"responseStatus":{  "code":200  }

Other fields
  • annotations
  • objectRef

For example,

"annotations":{  "authorization.k8s.io/decision":"allow"  }, "objectRef":{  "resource": "secrets",  "namespace":"dns-system",  "uid":"9a9c16ca-3601-4bc9-8683-629a61ea5234",  "apiVersion":"v1",  "resourceVersion":"825911",  "apiGroup":"UNKNOWN",  "name":"gpc-coredns-external-ksks"  }

Example log

{  "_gdch_cluster":"root-admin",  "_gdch_fluentbit_pod":"audit-logs-forwarder-t15kb",  "_gdch_service_name":"apiserver",  "annotations":{  "authorization.k8s.io/decision":"allow",  "authorization.k8s.io/reason":"RBAC: allowed by RoleBinding 'dns@example.com-dns-key-manager/dns-system' of Role 'dns-key-manager' to User 'dns@example.com'"  },  "apiVersion":"audit.k8s.io/v1",  "auditID":"87d3d836-b5a2-487a-8480-bc8078c5b248",  "kind":"Event",  "level":"Metadata",  "objectRef":{  "resource": "secrets",  "namespace":"dns-system",  "uid":"9a9c16ca-3601-4bc9-8683-629a61ea5234",  "apiVersion":"v1",  "resourceVersion":"825911",  "apiGroup":"UNKNOWN",  "name":"gpc-coredns-external-ksks"  },  "requestReceivedTimestamp":"2022-11-11T22:02:02.034688Z",  "requestURI":"/api/v1/namespaces/dns-system/secrets/gpc-coredns-external-ksks",  "responseStatus":{  "metadata":{},  "code":200  },  "sourceIPs":["10.142.5.147"],  "stage":"ResponseComplete",  "stageTimestamp":"2022-11-11T22:02:02.045045Z",  "ts":2022-11-11T22:02:02.074Z,  "tsNs":1668204122074601081,  "user":{  "groups":[  "system: authenticated"  ],  "username": "dns@example.com"  },  "userAgent":"gdcloud/v0.0.0 (linux/amd64) kubernetes/$Format",  "verb":"update" } 

Change a DNSSEC key

Fields in the log entry that contain audit information
Audit metadata Audit field name Value
User or service identity user.username

For example,

"user":{  "username": "dns@example.com"  }

Target

(Fields and values that call the API)

requestURI

"requestURI":"/api/v1/namespaces/dns-system/configmaps/gpc-coredns-external-corefile"

Action

(Fields containing the performed operation)

verb

"verb":"update"

Event timestamp ts

For example,

"ts":2022-11-11T22:02:02.074Z

Source of action sourceIPs

For example,

"sourceIPs":["10.142.5.147"]

Outcome responseStatus.code

For example,

"responseStatus":{  "code":200  }

Other fields
  • annotations
  • objectRef

For example,

"annotations":{  "authorization.k8s.io/decision":"allow"  }, "objectRef":{  "resourceVersion":"758987",  "resource":"configmaps",  "apiGroup":"UNKNOWN",  "name":"gpc-coredns-external-corefile",  "apiVersion":"v1",  "namespace":"dns-system",  "uid":"d831c851-4fa3-4£30-92f6-c68cb36b0a80"  }

Example log

{  "_gdch_cluster":"root-admin",  "_gdch_fluentbit_pod":"audit-logs-forwarder-8z2rm",  "_gdch_service_name":"apiserver",  "annotations":{  "authorization.k8s.io/decision":"allow",  "authorization.k8s.io/reason":"RBAC: allowed by RoleBinding 'dns@example.com-dns-key-manager/dns-system' of Role 'dns-key-manager' to User 'dns@example.com'"  },  "apiVersion":"audit.k8s.io/v1",  "auditID":"ba0344d7-283f-4d79-aabc-e083al9b053a",  "kind":"Event",  "level":"Metadata",  "objectRef":{  "resourceVersion":"758987",  "resource":"configmaps",  "apiGroup":"UNKNOWN",  "name":"gpc-coredns-external- corefile",  "apiVersion":"v1",  "namespace":"dns-system",  "uid":"d831c851-4fa3-4£30-92f6-c68cb36b0a80"  },  "requestReceivedTimestamp":"2022-11-11T22:02:02.034688Z",  "requestURI":"/api/v1/namespaces/dns-system/configmaps/gpc-coredns-external-corefile",  "responseStatus":{  "metadata":{},  "code":200  },  "sourceIPs":["10.142.5.147"],  "stage":"ResponseComplete",  "stageTimestamp":"2022-11-11T22:02:02.045045Z",  "ts":2022-11-11T22:02:02.074Z,  "tsNs":1668204122074601081,  "user":{  "groups":[  "system: authenticated"  ],  "username": "dns@example.com"  },  "userAgent":"gdcloud/v0.0.0 (linux/amd64) kubernetes/$Format",  "verb":"update" }