Identity and access management (IAM)

Log audit Identity and Access Management (IAM) di Google Distributed Cloud (GDC) dengan air gap mencatat pertukaran kunci token, perubahan akses resource, dan peristiwa sesi pengguna. Entri log ini menggunakan Istio, Kubernetes Resource Model (KRM) API, dan skema GKE Identity Service kustom untuk menangkap metadata identitas, resource target, dan tindakan.

Pertukaran kunci untuk token STS

Skema log: Istio

Kolom dalam entri log yang berisi informasi audit
Metadata audit Nama kolom audit Nilai
Identitas pengguna atau layanan identity

\"user\":{\"identity\":\"system:serviceaccount:iam-test:service-account\"}

Target

(Kolom dan nilai yang memanggil API)

resource

\"resource\":\"service-accounts.zone1.google.gdch.test\"

Tindakan

(Kolom yang berisi operasi yang dilakukan)

Tidak berlaku
Stempel waktu peristiwa time

"time": "2022-11-23T18:25:54Z"

Sumber tindakan Tidak berlaku
Hasil Tidak berlaku
Kolom lain Tidak berlaku

Operasi CRUD log audit pada resource Kubernetes, termasuk pembuatan akun layanan, dan pengelolaan kontrol akses.

Skema log: KRM API

Kolom dalam entri log yang berisi informasi audit
Metadata audit Nama kolom audit Nilai
Identitas pengguna atau layanan user/username

"user": {
    "groups": [
      "system:authenticated"
    ],
    "username": "fop-platform-admin@example.com"
  }

Target

(Kolom dan nilai yang memanggil API)

objectRef

"objectRef": {
    "resource": "projectserviceaccounts",
    "apiGroup": "resourcemanager.gdc.goog",
    "name": "service-accountt",
    "apiVersion": "v1alpha1",
    "namespace": "iam-test"
}

Tindakan

(Kolom yang berisi operasi yang dilakukan)

verb

"verb": "create"

Stempel waktu peristiwa requestReceivedTimestamp

"requestReceivedTimestamp": "2022-11-23T18:24:26.514173Z"

Sumber tindakan sourceIPs

"sourceIPs": [
    "10.200.0.2"
  ]

Hasil responseStatus

"responseStatus": {
    "code": 201,
    "metadata": {}
  }

Kolom lain annotations/authorization.k8s.io/reason

"annotations": {
    "authorization.k8s.io/reason": "RBAC: allowed by RoleBinding \"platform-admin-project-iam-admin/iam-test\" of Role \"project-iam-admin\" to User \"fop-platform-admin@example.com\"",
    "authorization.k8s.io/decision": "allow"
  }

Log Audit saat pengguna logout

Skema log: Format AIS kustom.

Kolom dalam entri log yang berisi informasi audit
Metadata audit Nama kolom audit Nilai
Identitas pengguna atau layanan payload.user

"payload": {
      "expirationTime": "2023-08-29T12:42:36.848454939+00:00",
      "groups": [],
      "id": "7a5bea7a-0821-45d8-b4a0-69f24d30ab3f",
      "issuer": "Google OIDC",
      "user": "test-user"
    }

Target

(Kolom dan nilai yang memanggil API)

Tidak berlaku

Tindakan

(Kolom yang berisi operasi yang dilakukan)

operation

"operation": "revoke"

Stempel waktu peristiwa metadata.timestamp

"timestamp": "2023-08-29T00:42:40.000544813+00:00"

Sumber tindakan Tidak berlaku
Hasil Tidak berlaku
Kolom lain expirationTime

"expirationTime": "2023-08-29T12:42:36.848454939+00:00"

Log Audit saat pengguna login

Skema log: Format AIS kustom.

Kolom dalam entri log yang berisi informasi audit
Metadata audit Nama kolom audit Nilai
Identitas pengguna atau layanan payload.user

"payload": {
      "expirationTime": "2023-08-29T05:22:13.350779831+00:00",
      "groups": [],
      "id": "dcb7c5d9-c171-4f5b-84b6-5c92bfffb0e0",
      "issuer": "Azure AD SAML",
      "user": "test-ais-e2e-saml@byoidcloudaccountgoogle.onmicrosoft.com"
    }

Target

(Kolom dan nilai yang memanggil API)

Tidak berlaku

Tindakan

(Kolom yang berisi operasi yang dilakukan)

operation

"operation": "create"

Stempel waktu peristiwa metadata.timestamp

"timestamp": "2023-08-28T17:22:13.351713088+00:00"

Sumber tindakan Tidak berlaku
Hasil Tidak berlaku
Kolom lain expirationTime

"expirationTime": "2023-08-29T05:22:13.350779831+00:00"

Log Audit saat PA mencabut sesi untuk pengguna

Skema log: Format AIS kustom.

Kolom dalam entri log yang berisi informasi audit
Metadata audit Nama kolom audit Nilai
Identitas pengguna atau layanan payload.admin / payload.user

"payload": {
      "admin": "test-user-1@gdch.com",
      "numSessionsAffected": 1,
      "peerWorkloadIdentity": "system:serviceaccount:anthos-identity-service:default",
      "peerWorkloadIdentityIssuer": "https://kubernetes.default.svc.cluster.local",
      "user": "test-user-2@gdch.com"
    }

Target

(Kolom dan nilai yang memanggil API)

resource

"resource": "session"

Tindakan

(Kolom yang berisi operasi yang dilakukan)

operation

"operation": "revoke"

Stempel waktu peristiwa metadata.timestamp

"timestamp": "2023-08-28T17:22:24.043644569+00:00"

Sumber tindakan Tidak berlaku
Hasil Tidak berlaku
Kolom lain numSessionsAffected

"numSessionsAffected": 1

Contoh log IAM

{
  "pri": "46",
  "_gdch_flbProcessedTimestamp": 1669227957.340494,
  "_gdch_fluentbit_pod": "anthos-audit-logs-forwarder-vk6vx",
  "time": "2022-11-23T18:25:54Z",
  "message": "{\"time\":\"2022-11-23T18:25:54.257503516Z\",\"auditID\":\"d1c33645-bed0-47dc-8180-06b752673109\",\"user\":{\"identity\":\"system:serviceaccount:iam-test:service-accountt\"},\"resource\":\"service-accounts.zone1.google.gdch.test\",\"description\":\"{\\\"keyID\\\":\\\"f9540561-84d5-4113-983f-fd8868501596\\\",\\\"expirationTime\\\":\\\"2022-11-24T06:25:53Z\\\"}\"}",
  "ident": "/service-identity-server",
  "pid": "1",
  "msgid": "audit-log",
  "extradata": "-",
  "_gdch_cluster": "root-admin",
  "host": "serviceidentity-sa-server-55544bd9f5-nwg8m",
  "_gdch_service_name": "service-identity-audit-logs"
}