doc-locale/fr-fr/api/graphql/audit_event_streaming_instances.md
{{< details >}}
{{< /details >}}
{{< history >}}
ff_external_audit_events. Désactivé par défaut.ff_external_audit_events. Désactivé par défaut.ff_external_audit_events est activé par défaut dans GitLab 16.2.ff_external_audit_events a été supprimé.{{< /history >}}
Gérez les destinations de diffusion des événements d'audit pour les instances à l'aide d'une API GraphQL.
Gérez les destinations de diffusion HTTP pour une instance entière.
Ajoutez une nouvelle destination de diffusion HTTP à une instance.
Prérequis :
Pour activer la diffusion et ajouter une destination, utilisez la mutation instanceExternalAuditEventDestinationCreate dans l'API GraphQL.
mutation {
instanceExternalAuditEventDestinationCreate(input: { destinationUrl: "https://mydomain.io/endpoint/ingest"}) {
errors
instanceExternalAuditEventDestination {
destinationUrl
id
name
verificationToken
}
}
}
La diffusion des événements est activée si :
errors renvoyé est vide.200 OK.Vous pouvez éventuellement spécifier votre propre nom de destination (au lieu du nom généré par défaut par GitLab) à l'aide de la mutation GraphQL instanceExternalAuditEventDestinationCreate. La longueur du nom ne doit pas dépasser 72 caractères et les espaces blancs en fin de chaîne ne sont pas supprimés. Cette valeur doit être unique. Par exemple :
mutation {
instanceExternalAuditEventDestinationCreate(input: { destinationUrl: "https://mydomain.io/endpoint/ingest", name: "destination-name-here"}) {
errors
instanceExternalAuditEventDestination {
destinationUrl
id
name
verificationToken
}
}
}
Les administrateurs d'instance peuvent ajouter un en-tête HTTP à l'aide de la mutation GraphQL auditEventsStreamingInstanceHeadersCreate. Vous pouvez récupérer l'ID de destination en répertoriant toutes les destinations de diffusion pour l'instance ou à partir de la mutation précédente.
mutation {
auditEventsStreamingInstanceHeadersCreate(input:
{
destinationId: "gid://gitlab/AuditEvents::InstanceExternalAuditEventDestination/42",
key: "foo",
value: "bar",
active: true
}) {
errors
header {
id
key
value
active
}
}
}
L'en-tête est créé si l'objet errors renvoyé est vide.
Répertoriez toutes les destinations de diffusion HTTP pour une instance.
Prérequis :
Pour afficher une liste des destinations de diffusion pour une instance, utilisez le type de requête instanceExternalAuditEventDestinations.
query {
instanceExternalAuditEventDestinations {
nodes {
id
name
destinationUrl
verificationToken
headers {
nodes {
id
key
value
active
}
}
eventTypeFilters
}
}
}
Si la liste résultante est vide, la diffusion des audits n'est pas activée pour l'instance.
Vous avez besoin des valeurs d'ID renvoyées par cette requête pour les mutations de mise à jour et de suppression.
Mettez à jour une destination de diffusion HTTP pour une instance.
Prérequis :
Pour mettre à jour les destinations de diffusion pour une instance, utilisez le type de mutation instanceExternalAuditEventDestinationUpdate. Vous pouvez récupérer l'ID de destination en répertoriant toutes les destinations externes pour l'instance.
mutation {
instanceExternalAuditEventDestinationUpdate(input: {
id: "gid://gitlab/AuditEvents::InstanceExternalAuditEventDestination/1",
destinationUrl: "https://www.new-domain.com/webhook",
name: "destination-name"}) {
errors
instanceExternalAuditEventDestination {
destinationUrl
id
name
verificationToken
}
}
}
La destination de diffusion est mise à jour si :
errors renvoyé est vide.200 OK.Les administrateurs d'instance peuvent mettre à jour les en-têtes HTTP personnalisés des destinations de diffusion à l'aide du type de mutation auditEventsStreamingInstanceHeadersUpdate. Vous pouvez récupérer l'ID des en-têtes HTTP personnalisés en répertoriant tous les en-têtes HTTP personnalisés pour l'instance.
mutation {
auditEventsStreamingInstanceHeadersUpdate(input: { headerId: "gid://gitlab/AuditEvents::Streaming::InstanceHeader/2", key: "new-key", value: "new-value", active: false }) {
errors
header {
id
key
value
active
}
}
}
L'en-tête est mis à jour si l'objet errors renvoyé est vide.
Supprimez les destinations de diffusion pour une instance entière.
Lorsque la dernière destination est supprimée avec succès, la diffusion est désactivée pour l'instance.
Prérequis :
Pour supprimer les destinations de diffusion, utilisez le type de mutation instanceExternalAuditEventDestinationDestroy. Vous pouvez récupérer l'ID des destinations en répertoriant toutes les destinations de diffusion pour l'instance.
mutation {
instanceExternalAuditEventDestinationDestroy(input: { id: "gid://gitlab/AuditEvents::InstanceExternalAuditEventDestination/1" }) {
errors
}
}
La destination de diffusion est supprimée si :
errors renvoyé est vide.200 OK.Pour supprimer un en-tête HTTP, utilisez la mutation GraphQL auditEventsStreamingInstanceHeadersDestroy. Pour récupérer l'ID de l'en-tête, répertoriez tous les en-têtes HTTP personnalisés pour l'instance.
mutation {
auditEventsStreamingInstanceHeadersDestroy(input: { headerId: "gid://gitlab/AuditEvents::Streaming::InstanceHeader/<id>" }) {
errors
}
}
L'en-tête est supprimé si l'objet errors renvoyé est vide.
{{< history >}}
{{< /history >}}
Lorsque cette fonctionnalité est activée pour une instance, vous pouvez utiliser une API pour permettre aux utilisateurs de filtrer les événements d'audit diffusés par destination. Si la fonctionnalité est activée sans filtre, la destination reçoit tous les événements d'audit.
Une destination de diffusion dont un filtre de type d'événement est défini possède un label filtré ({{< icon name="filter" >}}).
Prérequis :
Vous pouvez ajouter une liste de filtres de type d'événement à l'aide de la mutation auditEventsStreamingDestinationInstanceEventsAdd :
mutation {
auditEventsStreamingDestinationInstanceEventsAdd(input: {
destinationId: "gid://gitlab/AuditEvents::InstanceExternalAuditEventDestination/1",
eventTypeFilters: ["list of event type filters"]}){
errors
eventTypeFilters
}
}
Les filtres de type d'événement sont ajoutés si :
errors renvoyé est vide.200 OK.Prérequis :
Vous pouvez supprimer une liste de filtres de type d'événement à l'aide de la mutation auditEventsStreamingDestinationInstanceEventsRemove :
mutation {
auditEventsStreamingDestinationInstanceEventsRemove(input: {
destinationId: "gid://gitlab/AuditEvents::InstanceExternalAuditEventDestination/1",
eventTypeFilters: ["list of event type filters"]
}){
errors
}
}
Les filtres de type d'événement sont supprimés si :
errors renvoyé est vide.200 OK.{{< history >}}
{{< /history >}}
Gérez les destinations Google Cloud Logging pour une instance entière.
Avant de configurer la diffusion des événements d'audit Google Cloud Logging, vous devez satisfaire les prérequis.
Ajoutez une nouvelle destination de configuration Google Cloud Logging à une instance.
Prérequis :
Pour activer la diffusion et ajouter une configuration, utilisez la mutation instanceGoogleCloudLoggingConfigurationCreate dans l'API GraphQL.
mutation {
instanceGoogleCloudLoggingConfigurationCreate(input: { googleProjectIdName: "my-google-project", clientEmail: "[email protected]", privateKey: "YOUR_PRIVATE_KEY", logIdName: "audit-events", name: "destination-name" } ) {
errors
googleCloudLoggingConfiguration {
id
googleProjectIdName
logIdName
clientEmail
name
}
errors
}
}
La diffusion des événements est activée si :
errors renvoyé est vide.200 OK.Répertoriez toutes les destinations de configuration Google Cloud Logging pour une instance.
Prérequis :
Vous pouvez afficher une liste des configurations de diffusion pour une instance à l'aide du type de requête instanceGoogleCloudLoggingConfigurations.
query {
instanceGoogleCloudLoggingConfigurations {
nodes {
id
logIdName
googleProjectIdName
clientEmail
name
}
}
}
Si la liste résultante est vide, la diffusion des audits n'est pas activée pour l'instance.
Vous avez besoin des valeurs d'ID renvoyées par cette requête pour les mutations de mise à jour et de suppression.
Mettez à jour les destinations de configuration Google Cloud Logging pour une instance.
Prérequis :
Pour mettre à jour la configuration de diffusion pour une instance, utilisez le type de mutation instanceGoogleCloudLoggingConfigurationUpdate. Vous pouvez récupérer l'ID de configuration en répertoriant toutes les destinations externes.
mutation {
instanceGoogleCloudLoggingConfigurationUpdate(
input: {id: "gid://gitlab/AuditEvents::Instance::GoogleCloudLoggingConfiguration/1", googleProjectIdName: "updated-google-id", clientEmail: "[email protected]", privateKey: "YOUR_PRIVATE_KEY", logIdName: "audit-events", name: "updated name"}
) {
errors
instanceGoogleCloudLoggingConfiguration {
id
logIdName
googleProjectIdName
clientEmail
name
}
}
}
La configuration de diffusion est mise à jour si :
errors renvoyé est vide.200 OK.Supprimez les destinations de diffusion pour une instance.
Lorsque la dernière destination est supprimée avec succès, la diffusion est désactivée pour l'instance.
Prérequis :
Pour supprimer les configurations de diffusion, utilisez le type de mutation instanceGoogleCloudLoggingConfigurationDestroy. Vous pouvez récupérer l'ID des configurations en répertoriant toutes les destinations de diffusion pour l'instance.
mutation {
instanceGoogleCloudLoggingConfigurationDestroy(input: { id: "gid://gitlab/AuditEvents::Instance::GoogleCloudLoggingConfiguration/1" }) {
errors
}
}
La configuration de diffusion est supprimée si :
errors renvoyé est vide.200 OK.