Gestione di identità e accessi (IAM)

Gli audit log di Identity and Access Management (IAM) nell'appliance Google Distributed Cloud (GDC) con air gap registrano gli scambi di chiavi dei token, le modifiche all'accesso alle risorse e gli eventi delle sessioni utente. Queste voci di log utilizzano Istio, l'API Kubernetes Resource Model (KRM) e schemi GKE Identity Service personalizzati per acquisire i metadati di identità, risorsa di destinazione e azione.

Scambio di chiavi per il token STS

Schema dei log: Istio

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio identity

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

Destinazione

(Campi e valori che chiamano l'API)

resource

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

Azione

(Campi contenenti l'operazione eseguita)

Non applicabile
Timestamp evento time

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

Origine dell'azione Non applicabile
Risultato Non applicabile
Altri campi Non applicabile

Controlla le operazioni CRUD sugli audit log delle risorse Kubernetes, inclusa la creazione di service account e la gestione controllo dell'accesso.

Schema dei log: API KRM

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio user/username

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

Destinazione

(Campi e valori che chiamano l'API)

objectRef

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

Azione

(Campi contenenti l'operazione eseguita)

verb

"verb": "create"

Timestamp evento requestReceivedTimestamp

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

Origine dell'azione sourceIPs

"sourceIPs": [
    "10.200.0.2"
  ]

Risultato responseStatus

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

Altri campi 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 di controllo quando un utente si disconnette

Schema dei log: formato AIS personalizzato.

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio 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"
    }

Destinazione

(Campi e valori che chiamano l'API)

Non applicabile

Azione

(Campi contenenti l'operazione eseguita)

operation

"operation": "revoke"

Timestamp evento metadata.timestamp

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

Origine dell'azione Non applicabile
Risultato Non applicabile
Altri campi expirationTime

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

Log di controllo quando un utente esegue l'accesso

Schema dei log: formato AIS personalizzato.

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio 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"
    }

Destinazione

(Campi e valori che chiamano l'API)

Non applicabile

Azione

(Campi contenenti l'operazione eseguita)

operation

"operation": "create"

Timestamp evento metadata.timestamp

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

Origine dell'azione Non applicabile
Risultato Non applicabile
Altri campi expirationTime

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

Log di controllo quando l'accesso privato revoca le sessioni per un utente

Schema dei log: formato AIS personalizzato.

Campi della voce di log che contengono informazioni di controllo
Metadati di controllo Nome del campo di controllo Valore
Identità utente o di servizio 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"
    }

Destinazione

(Campi e valori che chiamano l'API)

resource

"resource": "session"

Azione

(Campi contenenti l'operazione eseguita)

operation

"operation": "revoke"

Timestamp evento metadata.timestamp

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

Origine dell'azione Non applicabile
Risultato Non applicabile
Altri campi numSessionsAffected

"numSessionsAffected": 1

IAM log di esempio

{
  "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"
}