Contenu d'un événement de journal d'audit

Décrit le contenu d'un événement de journal d'audit.

La section suivante décrit le contenu d'un événement de journal d'audit. Chaque événement de journal d'audit inclut deux parties principales :

  • Des enveloppes qui agissent en tant que conteneurs pour tous les messages d'événement
  • Des charges utiles qui contiennent des données issues de la ressource émettant le message d'événement

Identificateurs de la ressource

La plupart des types de ressource Oracle Cloud Infrastructure possèdent un identificateur unique affecté par Oracle appelé ID Oracle Cloud (OCID). Pour plus d'informations sur le format OCID et d'autres façons d'identifier vos ressources , reportez-vous à Identificateurs de ressource.

Enveloppe d'événements

Ces attributs d'une enveloppe d'événement sont identiques pour tous les événements. La structure de l'enveloppe suit le format standard du secteur CloudEvents hébergé par Cloud Native Computing Foundation ( CNCF).

Propriété Description
cloudEventsVersion

Version de la spécification CloudEvents.

Remarque : Audit utilise la spécification version 0.1 de l'enveloppe d'événement CloudEvents.

contentType Définissez cette propriété sur application/json. Type de contenu des données se trouvant dans l'attribut data.
data Charge utile de l'événement. Les informations figurant dans data proviennent de la ressource émettant l'événement.
eventID

UUID de l'événement. Cet identificateur n'est pas un OCID, mais simplement l'ID unique de l'événement.

eventTime Heure de l'événement, exprimée au format d'horodatage RFC 3339.
eventType

Type de l'événement qui s'est produit.

Remarque : Le service qui produit l'événement peut également ajouter ou enlever un champ, ou modifier sa signification. Un service implémentant ces modifications de type publierait une nouvelle version du champ eventType et réviserait le champ eventTypeVersion.

eventTypeVersion

Version du type d'événement. Cette version s'applique à la charge utile de l'événement, et non à l'enveloppe. Utilisez cloudEventsVersion pour déterminer la version de l'enveloppe.

source Ressource ayant généré l'événement. Par exemple, un bucket Autonomous Database ou Object Storage.

Charge utile

Les données de ces champs dépendent du service qui a généré le journal des événements et du type d'événement qu'il définit.

Data

L'objet data contient les attributs suivants.

Propriété Description
data.additionalDetails Objet de conteneur pour les attributs propres à la ressource émettant l'événement.
data.availabilityDomain Domaine de disponibilité dans lequel se trouve la ressource.
data.compartmentId OCID du compartiment de la ressource émettant l'événement.
data.compartmentName Nom du compartiment de la ressource émettant l'événement.
data.definedTags Balises définies ajoutées à la ressource émettant l'événement.
data.eventGroupingId

Cette valeur lie plusieurs événements d'audit qui font partie de la même opération d'API. Par exemple, une opération d'API à longue durée d'exécution qui émet un événement au début et à la fin de l'opération.

data.eventName

Nom de l'opération d'API qui a généré cet événement.

Exemple : LaunchInstance

data.freeformTags Balises à format libre ajoutées à la ressource émettant l'événement.
data.identity Objet de conteneur pour les attributs d'identité. Reportez-vous à Identité.
data.request Objet de conteneur pour les attributs de demande. Reportez-vous à Demande.
data.resourceId OCID ou ID de la ressource émettant l'événement.
data.resourceName Nom de la ressource émettant l'événement.
data.response Objet de conteneur pour les attributs de réponse. Reportez-vous à Réponse.
data.stateChange Objet de conteneur pour les attributs de modification d'état. Reportez-vous à Modification de l'état.

Identité

L'objet identity contient les attributs suivants.

Propriété Description
data.identity.authType Type d'authentification utilisé.
data.identity.callerId OCID de l'appelant. Appelant ayant effectué une demande au nom du principal.
data.identity.callerName Nom de l'utilisateur ou du service émettant la demande. Cette valeur est le nom convivial associé à callerId.
data.identity.consoleSessionId Cette valeur identifie toute session de la console associée à cette demande.
data.identity.credentials ID d'information d'identification de l'utilisateur.
data.identity.ipAddress Adresse IP de la source de la demande.
data.identity.principalId OCID du principal.
data.identity.principalName Nom de l'utilisateur ou du service. Cette valeur est le nom convivial associé à principalId.
data.identity.tenantId OCID du locataire.
data.identity.userAgent Agent utilisateur du client qui a formulé la demande.

Demande

L'objet request contient les attributs suivants.

Propriété Description
data.request.action

Méthode HTTP de la demande.

Exemple : GET

data.request.headers Champs et valeurs d'en-tête HTTP dans la demande.
data.request.id Identificateur unique d'une demande.
data.request.parameters Tous les paramètres fournis par l'appelant pendant cette opération.
data.request.path

Chemin complet de la demande d'API.

Exemple : /20160918/instances/ocid1.instance.oc1.phx.<unique_ID>

Réponse

L'objet response contient les attributs suivants.

Propriété Description
data.response.headers En-têtes de la réponse.
data.response.message Description conviviale de ce qui s'est produit lors de l'opération.
data.response.payload Cette valeur est incluse à des fins de compatibilité amont avec le schéma d'audit version 1, dans lequel elle contient les métadonnées d'intérêt de la charge utile de réponse.
data.response.responseTime Heure de la réponse à la demande soumise à un audit, exprimée au format d'horodatage RFC 3339.
data.response.status Code de statut de la réponse.

Modification de l'état

L'objet stateChange contient les attributs suivants.

Propriété Description
data.stateChange.current Indique l'état en cours des champs qui ont pu changer lors d'une opération. Pour déterminer la façon dont l'opération en cours a modifié une ressource, comparez les informations de cet attribut à data.stateChange.previous.
data.stateChange.previous Indique l'état précédent des champs qui ont pu changer lors d'une opération. Pour déterminer la façon dont l'opération en cours a modifié une ressource, comparez les informations de cet attribut à data.stateChange.current.

Exemple de journal d'audit

Voici un exemple d'événement enregistré par le service Audit.

{
	"eventType": "com.oraclecloud.ComputeApi.GetInstance",
	"cloudEventsVersion": "0.1",
	"eventTypeVersion": "2.0",
	"source": "ComputeApi",
	"eventId": "<unique_ID>",
	"eventTime": "2019-09-18T00:10:59.252Z",
	"contentType": "application/json",
	"data": {
		"eventGroupingId": null,
		"eventName": "GetInstance",
		"compartmentId": "ocid1.tenancy.oc1..<unique_ID>",
		"compartmentName": "compartmentA",
		"resourceName": "my_instance",
		"resourceId": "ocid1.instance.oc1.phx.<unique_ID>",
		"availabilityDomain": "<availability_domain>",
		"freeformTags": null,
		"definedTags": null,
		"identity": {
			"principalName": "ExampleName",
			"principalId": "ocid1.user.oc1..<unique_ID>",
			"authType": "natv",
			"callerName": null,
			"callerId": null,
			"tenantId": "ocid1.tenancy.oc1..<unique_ID>",
			"ipAddress": "172.24.80.88",
			"credentials": null,
			"userAgent": "Jersey/2.23 (HttpUrlConnection 1.8.0_212)",
			"consoleSessionId": null
		},
		"request": {
			"id": "<unique_ID>",
			"path": "/20160918/instances/ocid1.instance.oc1.phx.<unique_ID>",
			"action": "GET",
			"parameters": {},
			"headers": {
				"opc-principal": [
					"{\"tenantId\":\"ocid1.tenancy.oc1..<unique_ID>\",\"subjectId\":\"ocid1.user.oc1..<unique_ID>\",\"claims\":[{\"key\":\"pstype\",\"value\":\"natv\",\"issuer\":\"authService.oracle.com\"},{\"key\":\"h_host\",\"value\":\"iaas.r2.oracleiaas.com\",\"issuer\":\"h\"},{\"key\":\"h_opc-request-id\",\"value\":\"<unique_ID>\",\"issuer\":\"h\"},{\"key\":\"ptype\",\"value\":\"user\",\"issuer\":\"authService.oracle.com\"},{\"key\":\"h_date\",\"value\":\"Wed, 18 Sep 2019 00:10:58 UTC\",\"issuer\":\"h\"},{\"key\":\"h_accept\",\"value\":\"application/json\",\"issuer\":\"h\"},{\"key\":\"authorization\",\"value\":\"Signature headers=\\\"date (request-target) host accept opc-request-id\\\",keyId=\\\"ocid1.tenancy.oc1..<unique_ID>/ocid1.user.oc1..<unique_ID>/8c:b4:5f:18:e7:ec:db:08:b8:fa:d2:2a:7d:11:76:ac\\\",algorithm=\\\"rsa-pss-sha256\\\",signature=\\\"<unique_ID>\\\",version=\\\"1\\\"\",\"issuer\":\"h\"},{\"key\":\"h_(request-target)\",\"value\":\"get /20160918/instances/ocid1.instance.oc1.phx.<unique_ID>\",\"issuer\":\"h\"}]}"
				],
				"Accept": [
					"application/json"
				],
				"X-Oracle-Auth-Client-CN": [
					"splat-proxy-se-02302.node.ad2.r2"
				],
				"X-Forwarded-Host": [
					"compute-api.svc.ad1.r2"
				],
				"Connection": [
					"close"
				],
				"User-Agent": [
					"Jersey/2.23 (HttpUrlConnection 1.8.0_212)"
				],
				"X-Forwarded-For": [
					"172.24.80.88"
				],
				"X-Real-IP": [
					"172.24.80.88"
				],
				"oci-original-url": [
					"https://iaas.r2.oracleiaas.com/20160918/instances/ocid1.instance.oc1.phx.<unique_ID>"
				],
				"opc-request-id": [
					"<unique_ID>"
				],
				"Date": [
					"Wed, 18 Sep 2019 00:10:58 UTC"
				]
			}
		},
		"response": {
			"status": "200",
			"responseTime": "2019-09-18T00:10:59.278Z",
			"headers": {
				"ETag": [
					"<unique_ID>"
				],
				"Connection": [
					"close"
				],
				"Content-Length": [
					"1828"
				],
				"opc-request-id": [
					"<unique_ID>"
				],
				"Date": [
					"Wed, 18 Sep 2019 00:10:59 GMT"
				],
				"Content-Type": [
					"application/json"
				]
			},
			"payload": {
				"resourceName": "my_instance",
				"id": "ocid1.instance.oc1.phx.<unique_ID>"
			},
			"message": null
		},
		"stateChange": {
			"previous": null,
			"current": null
		},
		"additionalDetails": {
			"imageId": "ocid1.image.oc1.phx.<unique_ID>",
			"shape": "VM.Standard1.1",
			"type": "CustomerVmi"
		}
	}
}