From 301b388fb979c6cd12c213da1fccbf008935eb75 Mon Sep 17 00:00:00 2001 From: gbarideau Date: Mon, 16 Jun 2025 11:43:45 +0200 Subject: [PATCH 1/6] New KMS troubleshooting guide --- pages/index.md | 2 + .../kms/kms-troubleshooting/guide.en-gb.md | 103 +++++++++++++++++ .../kms/kms-troubleshooting/guide.fr-fr.md | 105 ++++++++++++++++++ .../images/kms-ldp-subscription.png | Bin 0 -> 41357 bytes .../images/kms-logs-tab.png | Bin 0 -> 20562 bytes .../kms/kms-troubleshooting/meta.yaml | 3 + 6 files changed, 213 insertions(+) create mode 100644 pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md create mode 100644 pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md create mode 100644 pages/manage_and_operate/kms/kms-troubleshooting/images/kms-ldp-subscription.png create mode 100644 pages/manage_and_operate/kms/kms-troubleshooting/images/kms-logs-tab.png create mode 100644 pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml diff --git a/pages/index.md b/pages/index.md index adb21ab2525..ccbd64694b0 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1941,6 +1941,7 @@ + [Pushing logs from a Kubernetes cluster to Logs Data Platform using Fluent Bit](manage_and_operate/observability/logs_data_platform/ingestion_kubernetes_fluent_bit) + [Pushing logs from OVHcloud account to Logs Data Platform](manage_and_operate/iam/iam-logs-forwarding) + [Pushing logs from SAP to Logs Data Platform](hosted_private_cloud/sap_on_ovhcloud/cookbook_sap_logs_on_ovhcloud_logs_data_platform_solution_setup) + + [Pushing logs from OVHcloud KMS to Logs Data Platform](manage_and_operate/kms/kms-troubleshooting) + [Logs Data Platform - Collect VMware on OVHcloud logs](/pages/hosted_private_cloud/hosted_private_cloud_powered_by_vmware/vmware_ldp) + [Visualizing, querying and exploiting your logs](observability-logs-data-platform-visualizing-querying-exploiting) + [Exposing your logs to third-party tools via the OpenSearch API](manage_and_operate/observability/logs_data_platform/integration_opensearch_api) @@ -1966,6 +1967,7 @@ + [OVHcloud KMS Architecture overview](manage_and_operate/kms/architecture-overview) + [OVHcloud KMS - Responsibility model](manage_and_operate/kms/responsibility-model-kms) + [How to connect a compatible product using KMIP protocol with OVHcloud KMS](manage_and_operate/kms/kms-kmip) + + [How to troubleshoot OVHcloud KMS access](manage_and_operate/kms/kms-troubleshooting) + OVHcloud Labs + [Data Collector](products/ovhcloud-labs-data-collector) + [Getting started](ovhcloud-labs-data-collector-getting-started) diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md new file mode 100644 index 00000000000..49d41c01bf7 --- /dev/null +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md @@ -0,0 +1,103 @@ +--- +title: "How to troubleshoot OVHcloud KMS access" +excerpt: "Analyze KMS logs through LDP" +updated: 2025-06-13 +--- + +## Objective + +This guide aim to introduce logs generated by OVHcloud KMS and how to analyze them + +## Requirements + +- An [OVHcloud customer account](/pages/account_and_service_management/account_information/ovhcloud-account-creation). +- An [OVHcloud KMS ordered and an access certificate created](/pages/manage_and_operate/kms/quick-start) + +## Instructions + +### Description + +OVHcloud KMS has a native integration with [Logs Data Plateform](https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/) for logs management + +### Logs direct access + +KMS logs are available from each KMS `Logs`{.action} tab + +![Logs tab](images/kms-logs-tab.png){.thumbnail} + +This tab display in real time all KMS logs +A selector allow to switch display between the two types of logs + +- REST API audit logs +- KMIP audit logs + +### Logs access through LDP + +From the `Logs`{.action} tab, it's possible to subscribe to a LDP data stream +One the subscribtion enable, all the logs will be pushed to [Logs Data Plateform](https://www.ovhcloud.com/fr/identity-security-operations/logs-data-platform/) to archive generated logs and perform advanced searches, create alerts and visualisations + +![LDP Subscription](images/kms-ldp-subscription.png){.thumbnail} + +For more informations, please look the [dedicated documentation](pages\manage_and_operate\observability\logs_data_platform\getting_started_quick_start) + +### Available logs details + +KMS logs contains following information: + +- REST API + +Logs are display with this format: + +```bash +{{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} +``` + +As example: INFO | GET /v1/servicekey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - 200 - identity: urn:v1:eu:identity:group:xx1111-ovh/john.smith - operation: okms:apiovh:serviceKey/get on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxx/serviceKey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - from Manager/APIv2 - request id: EU.manager-5.684c3abe.3880620.2080cff16eaa5539bf92cxxxxxxxx + +Elements that can be pushed to Logs Data Plateform: + +|**Field**|**Description**| +| :-: | :-: | +|domain_id|OKMS domain ID| +|request_id|request ID| +|log_level|Log priority level| +|client_ip|IP of the client making the request| +|tls_cert_id|Authentication certificate ID used| +|res_urn|target resource URN| +|region|OKMS domain region| +|iam_operation|IAM action evalutated| +|iam_identities|IAM identity used for rights evaluation| +|http_path|Request path| +|http_status|HTTP answer status| +|http_method|Request method| +|err_category|Error category| + +- KMIP + +Logs are display with this format: + +```bash +{{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} +``` + +As example : INFO | GET on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxxx/kmip/ff55638c-3e86-4cb3-xxxx-xxxxxxxx - identity: urn:v1:eu:identity:account:xx1111-ovh - operation: okms:kmip:get - from XXX.XXX.XXX.XXX with certificate e7850a19-a5de-4527-xxxx-xxxxxxxxx - request id: OKMS.db61c455-abfa-4a66-xxxx-xxxxxxxxxxx" + +Elements that can be pushed to Logs Data Plateform: + +|**Field**|**Description**| +| :-: | :-: | +|domain_id|OKMS domain ID| +|request_id|request ID| +|log_level|Log priority level| +|client_ip|IP of the client making the request| +|tls_cert_id|Authentication certificate ID used| +|res_urn|target resource URN| +|region|OKMS domain region| +|iam_operation|IAM action evalutated| +|iam_identities|IAM identity used for rights evaluation| +|kmip_operation|KMIP operation used| +|kmip_reason|[Standard KMIP error code](https://docs.oasis-open.org/kmip/spec/v1.4/kmip-spec-v1.4.pdf#%5B%7B%22num%22%3A484%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C720%2C0%5D)| + +## Go further + +Join our [community of users](/links/community). diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md new file mode 100644 index 00000000000..0a12b0720f5 --- /dev/null +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md @@ -0,0 +1,105 @@ +--- +title: "Comment diagnostiquer les accès sur un OVHcloud KMS" +excerpt: "Analyser les logs KMS via LDP" +updated: 2025-06-13 +--- + +## Objectif + +L'objectif de ce guide est de présenter les logs générés par le KMS OVHcloud et comment les interprêter + +## Prérequis + +- Disposer d'un [compte client OVHcloud](/pages/account_and_service_management/account_information/ovhcloud-account-creation). +- Avoir [commandé un KMS OVHcloud et créer un certificat d'accès](/pages/manage_and_operate/kms/quick-start) + +## En pratique + +### Description + +Le KMS OVHcloud dispose d'une intégration native avec [Logs Data Plateform](https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/) pour la gestion des logs + +### Accès aux logs en direct + +Les logs du KMS sont accessibles depuis l'onglet `Logs`{.action} d'un KMS + +![Logs tab](images/kms-logs-tab.png){.thumbnail} + +Cet onglet affiche en temps réel les logs du KMS. +Le sélecteur permet de choisir le type de logs affichés : + +- REST API audit logs +- KMIP audit logs + +### Accès aux logs via LDP + +Depuis l'onglet `Logs`{.action} il est possible de s'abonner à un flux LDP. +Une fois l'abonnement actif, l'ensemble des logs seront transmis à [Logs Data Plateform](https://www.ovhcloud.com/fr/identity-security-operations/logs-data-platform/) pour retrouver l'historique des logs généré et la possiblité de faire des recherches plus avancées, créer des alertes et des visualisations. + +![LDP Subscription](images/kms-ldp-subscription.png){.thumbnail} + +Pour plus d'informations, il est possible de regarder la [documentation dédiée](pages\manage_and_operate\observability\logs_data_platform\getting_started_quick_start) + +### Liste des logs générés + +Les logs du KMS comportent les informations suivantes : + +- API REST + +Les logs sont sous le format suivant : + +```bash +{{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} +``` + +Par exemple : INFO | GET /v1/servicekey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - 200 - identity: urn:v1:eu:identity:group:xx1111-ovh/john.smith - operation: okms:apiovh:serviceKey/get on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxx/serviceKey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - from Manager/APIv2 - request id: EU.manager-5.684c3abe.3880620.2080cff16eaa5539bf92cxxxxxxxx + +Les éléments pouvant être transmis à Logs Data Plateform étant : + +|**Champ**|**Description**| +| :-: | :-: | +|domain_id|ID du domaine OKMS| +|request_id|ID de la requête| +|type|| +|log_level|Niveau de priorité du log| +|client_ip|IP du client réalisant la requête| +|tls_cert_id|ID du certificat utilisé pour l'authentification| +|res_urn|URN de la ressource ciblé| +|region|Région du domaine OKMS| +|iam_operation|Action IAM évaluée| +|iam_identities|Identitée IAM utilisé pour l'évaluation des droits| +|http_path|Chemin de la requête| +|http_status|Status de la réponse HTTP| +|http_method|Methode de la requête| +|err_category|Catégorie de l'erreur| + +- KMIP + +Les logs sont sous le format suivant : + +```bash +{{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} +``` + +Par exemple : INFO | GET on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxxx/kmip/ff55638c-3e86-4cb3-xxxx-xxxxxxxx - identity: urn:v1:eu:identity:account:xx1111-ovh - operation: okms:kmip:get - from XXX.XXX.XXX.XXX with certificate e7850a19-a5de-4527-xxxx-xxxxxxxxx - request id: OKMS.db61c455-abfa-4a66-xxxx-xxxxxxxxxxx" + +Les éléments pouvant être transmis à Logs Data Plateform étant : + +|**Champ**|**Description**| +| :-: | :-: | +|domain_id|ID du domaine OKMS| +|request_id|ID de la requête| +|type|| +|log_level|Niveau de priorité du log| +|client_ip|IP du client réalisant la requête| +|tls_cert_id|ID du certificat utilisé pour l'authentification| +|res_urn|URN de la ressource ciblé| +|region|Région du domaine OKMS| +|iam_operation|Action IAM évaluée| +|iam_identities|Identitée IAM utilisé pour l'évaluation des droits| +|kmip_operation|Opération KMIP utilisée| +|kmip_reason|[code d'erreur KMIP](https://docs.oasis-open.org/kmip/spec/v1.4/kmip-spec-v1.4.pdf#%5B%7B%22num%22%3A484%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C720%2C0%5D)| + +## Aller plus loin + +Échangez avec notre [communauté d'utilisateurs](/links/community). diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/images/kms-ldp-subscription.png b/pages/manage_and_operate/kms/kms-troubleshooting/images/kms-ldp-subscription.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5a0faa0535f2d3acd7d2514277f1ebe99ace2e GIT binary patch literal 41357 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 L>80x5Z{GhOSM(XW literal 0 HcmV?d00001 diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/images/kms-logs-tab.png b/pages/manage_and_operate/kms/kms-troubleshooting/images/kms-logs-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8caea27f19e56c0a9ddc2c9fe7c79c114a500a GIT binary patch literal 20562 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 F{|l^3q)z|< literal 0 HcmV?d00001 diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml b/pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml new file mode 100644 index 00000000000..2a4d1a420f7 --- /dev/null +++ b/pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml @@ -0,0 +1,3 @@ +id: 751e237a-47e4-4ac8-854d-189530462197 +full_slug: kms-troubleshooting +reference_category: manage-operate-kms \ No newline at end of file From 976bab64c996d0a6f3b38b3e057cf7d222dd7043 Mon Sep 17 00:00:00 2001 From: gbarideau Date: Mon, 16 Jun 2025 17:49:53 +0200 Subject: [PATCH 2/6] changing title --- pages/index.md | 2 +- .../manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md | 4 ++-- .../manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/index.md b/pages/index.md index ccbd64694b0..77b03e20e2e 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1967,7 +1967,7 @@ + [OVHcloud KMS Architecture overview](manage_and_operate/kms/architecture-overview) + [OVHcloud KMS - Responsibility model](manage_and_operate/kms/responsibility-model-kms) + [How to connect a compatible product using KMIP protocol with OVHcloud KMS](manage_and_operate/kms/kms-kmip) - + [How to troubleshoot OVHcloud KMS access](manage_and_operate/kms/kms-troubleshooting) + + [Pushing logs from OVHcloud KMS to Logs Data Platform](manage_and_operate/kms/kms-troubleshooting) + OVHcloud Labs + [Data Collector](products/ovhcloud-labs-data-collector) + [Getting started](ovhcloud-labs-data-collector-getting-started) diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md index 49d41c01bf7..a74d65c920a 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md @@ -1,12 +1,12 @@ --- -title: "How to troubleshoot OVHcloud KMS access" +title: "Pushing logs from OVHcloud KMS to Logs Data Platform" excerpt: "Analyze KMS logs through LDP" updated: 2025-06-13 --- ## Objective -This guide aim to introduce logs generated by OVHcloud KMS and how to analyze them +This guide aim to introduce logs generated by OVHcloud KMS and how managed them from Logs Data Platform ## Requirements diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md index 0a12b0720f5..d6948d8917b 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md @@ -1,12 +1,12 @@ --- -title: "Comment diagnostiquer les accès sur un OVHcloud KMS" +title: "Transférer les logs du KMS OVHcloud à Logs Data Platform" excerpt: "Analyser les logs KMS via LDP" updated: 2025-06-13 --- ## Objectif -L'objectif de ce guide est de présenter les logs générés par le KMS OVHcloud et comment les interprêter +L'objectif de ce guide est de présenter les logs générés par le KMS OVHcloud et comment y accéder depuis Logs Data Platform ## Prérequis From 5d6dc15b1ff0833964471673fabaeeffb88aa103 Mon Sep 17 00:00:00 2001 From: benchbzh Date: Tue, 17 Jun 2025 10:12:25 +0200 Subject: [PATCH 3/6] proofreading --- .../kms/kms-troubleshooting/guide.en-gb.md | 33 ++++++++++--------- .../kms/kms-troubleshooting/guide.fr-fr.md | 26 +++++++-------- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md index a74d65c920a..9efee9e3e10 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md @@ -1,44 +1,44 @@ --- title: "Pushing logs from OVHcloud KMS to Logs Data Platform" excerpt: "Analyze KMS logs through LDP" -updated: 2025-06-13 +updated: 2025-06-17 --- ## Objective -This guide aim to introduce logs generated by OVHcloud KMS and how managed them from Logs Data Platform +This guide aim to introduce logs generated by OVHcloud KMS and how they are managed from Logs Data Platform. ## Requirements - An [OVHcloud customer account](/pages/account_and_service_management/account_information/ovhcloud-account-creation). -- An [OVHcloud KMS ordered and an access certificate created](/pages/manage_and_operate/kms/quick-start) +- An [OVHcloud KMS ordered and an access certificate created](/pages/manage_and_operate/kms/quick-start). ## Instructions ### Description -OVHcloud KMS has a native integration with [Logs Data Plateform](https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/) for logs management +OVHcloud KMS has a native integration with [Logs Data Plateform](/links/manage-operate/ldp) for logs management. ### Logs direct access -KMS logs are available from each KMS `Logs`{.action} tab +KMS logs are available from each KMS `Logs`{.action} tab. ![Logs tab](images/kms-logs-tab.png){.thumbnail} -This tab display in real time all KMS logs -A selector allow to switch display between the two types of logs +This tab display in real time all KMS logs. +A selector allow to switch display between the two types of logs: -- REST API audit logs -- KMIP audit logs +- REST API audit logs. +- KMIP audit logs. ### Logs access through LDP -From the `Logs`{.action} tab, it's possible to subscribe to a LDP data stream -One the subscribtion enable, all the logs will be pushed to [Logs Data Plateform](https://www.ovhcloud.com/fr/identity-security-operations/logs-data-platform/) to archive generated logs and perform advanced searches, create alerts and visualisations +From the `Logs`{.action} tab, it's possible to subscribe to a LDP data stream. +One the subscribtion enable, all the logs will be pushed to [Logs Data Plateform](/links/manage-operate/ldp) to archive generated logs and perform advanced searches, create alerts and visualisations ![LDP Subscription](images/kms-ldp-subscription.png){.thumbnail} -For more informations, please look the [dedicated documentation](pages\manage_and_operate\observability\logs_data_platform\getting_started_quick_start) +For more information, please refer to our guide "[Quick start for Logs Data Platform](pages\manage_and_operate\observability\logs_data_platform\getting_started_quick_start)". ### Available logs details @@ -60,6 +60,7 @@ Elements that can be pushed to Logs Data Plateform: | :-: | :-: | |domain_id|OKMS domain ID| |request_id|request ID| +|type|| |log_level|Log priority level| |client_ip|IP of the client making the request| |tls_cert_id|Authentication certificate ID used| @@ -87,17 +88,17 @@ Elements that can be pushed to Logs Data Plateform: |**Field**|**Description**| | :-: | :-: | |domain_id|OKMS domain ID| -|request_id|request ID| +|request_id|Request ID| |log_level|Log priority level| |client_ip|IP of the client making the request| |tls_cert_id|Authentication certificate ID used| -|res_urn|target resource URN| +|res_urn|Target resource URN| |region|OKMS domain region| |iam_operation|IAM action evalutated| |iam_identities|IAM identity used for rights evaluation| |kmip_operation|KMIP operation used| -|kmip_reason|[Standard KMIP error code](https://docs.oasis-open.org/kmip/spec/v1.4/kmip-spec-v1.4.pdf#%5B%7B%22num%22%3A484%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C720%2C0%5D)| +|kmip_reason|[Standard KMIP error code](https://docs.oasis-open.org/kmip/spec/v1.4/kmip-spec-v1.4.pdf#%5B%7B%22num%22%3A484%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C720%2C0%5D){.external}| ## Go further -Join our [community of users](/links/community). +Join our [community of users](/links/community). \ No newline at end of file diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md index d6948d8917b..f24b3daedf6 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md @@ -1,44 +1,44 @@ --- title: "Transférer les logs du KMS OVHcloud à Logs Data Platform" excerpt: "Analyser les logs KMS via LDP" -updated: 2025-06-13 +updated: 2025-06-17 --- ## Objectif -L'objectif de ce guide est de présenter les logs générés par le KMS OVHcloud et comment y accéder depuis Logs Data Platform +L'objectif de ce guide est de présenter les logs générés par le KMS OVHcloud et la manière dont ils sont gérés depuis Logs Data Platform. ## Prérequis - Disposer d'un [compte client OVHcloud](/pages/account_and_service_management/account_information/ovhcloud-account-creation). -- Avoir [commandé un KMS OVHcloud et créer un certificat d'accès](/pages/manage_and_operate/kms/quick-start) +- Avoir [commandé un KMS OVHcloud et créé un certificat d'accès](/pages/manage_and_operate/kms/quick-start). ## En pratique ### Description -Le KMS OVHcloud dispose d'une intégration native avec [Logs Data Plateform](https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/) pour la gestion des logs +Le KMS OVHcloud dispose d'une intégration native avec [Logs Data Plateform](https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/) pour la gestion des logs. ### Accès aux logs en direct -Les logs du KMS sont accessibles depuis l'onglet `Logs`{.action} d'un KMS +Les logs du KMS sont accessibles depuis l'onglet `Logs`{.action} d'un KMS. ![Logs tab](images/kms-logs-tab.png){.thumbnail} Cet onglet affiche en temps réel les logs du KMS. Le sélecteur permet de choisir le type de logs affichés : -- REST API audit logs -- KMIP audit logs +- REST API audit logs. +- KMIP audit logs. ### Accès aux logs via LDP Depuis l'onglet `Logs`{.action} il est possible de s'abonner à un flux LDP. -Une fois l'abonnement actif, l'ensemble des logs seront transmis à [Logs Data Plateform](https://www.ovhcloud.com/fr/identity-security-operations/logs-data-platform/) pour retrouver l'historique des logs généré et la possiblité de faire des recherches plus avancées, créer des alertes et des visualisations. +Une fois l'abonnement actif, l'ensemble des logs seront transmis à [Logs Data Plateform](/links/manage-operate/ldp) pour retrouver l'historique des logs générés et la possiblité de faire des recherches plus avancées, créer des alertes et des visualisations. ![LDP Subscription](images/kms-ldp-subscription.png){.thumbnail} -Pour plus d'informations, il est possible de regarder la [documentation dédiée](pages\manage_and_operate\observability\logs_data_platform\getting_started_quick_start) +Pour plus d'informations, veuillez consulter notre guide « [Quick start for Logs Data Platform](/pages/manage_and_operate/observability/logs_data_platform/getting_started_quick_start) ». ### Liste des logs générés @@ -54,7 +54,7 @@ Les logs sont sous le format suivant : Par exemple : INFO | GET /v1/servicekey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - 200 - identity: urn:v1:eu:identity:group:xx1111-ovh/john.smith - operation: okms:apiovh:serviceKey/get on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxx/serviceKey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - from Manager/APIv2 - request id: EU.manager-5.684c3abe.3880620.2080cff16eaa5539bf92cxxxxxxxx -Les éléments pouvant être transmis à Logs Data Plateform étant : +Les éléments pouvant être transmis à Logs Data Plateform sont : |**Champ**|**Description**| | :-: | :-: | @@ -93,13 +93,13 @@ Les éléments pouvant être transmis à Logs Data Plateform étant : |log_level|Niveau de priorité du log| |client_ip|IP du client réalisant la requête| |tls_cert_id|ID du certificat utilisé pour l'authentification| -|res_urn|URN de la ressource ciblé| +|res_urn|URN de la ressource ciblée| |region|Région du domaine OKMS| |iam_operation|Action IAM évaluée| |iam_identities|Identitée IAM utilisé pour l'évaluation des droits| |kmip_operation|Opération KMIP utilisée| -|kmip_reason|[code d'erreur KMIP](https://docs.oasis-open.org/kmip/spec/v1.4/kmip-spec-v1.4.pdf#%5B%7B%22num%22%3A484%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C720%2C0%5D)| +|kmip_reason|[code d'erreur KMIP](https://docs.oasis-open.org/kmip/spec/v1.4/kmip-spec-v1.4.pdf#%5B%7B%22num%22%3A484%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C720%2C0%5D){.external}| ## Aller plus loin -Échangez avec notre [communauté d'utilisateurs](/links/community). +Échangez avec notre [communauté d'utilisateurs](/links/community). \ No newline at end of file From 78d1d37a5d71574aae81fe76acae6455c5721bff Mon Sep 17 00:00:00 2001 From: benchbzh Date: Tue, 17 Jun 2025 10:18:06 +0200 Subject: [PATCH 4/6] minor updates --- pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md | 2 +- pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md index 9efee9e3e10..160af7b7b8a 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md @@ -38,7 +38,7 @@ One the subscribtion enable, all the logs will be pushed to [Logs Data Plateform ![LDP Subscription](images/kms-ldp-subscription.png){.thumbnail} -For more information, please refer to our guide "[Quick start for Logs Data Platform](pages\manage_and_operate\observability\logs_data_platform\getting_started_quick_start)". +For more information, please refer to our guide "[Quick start for Logs Data Platform](/pages/manage_and_operate/observability/logs_data_platform/getting_started_quick_start)". ### Available logs details diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md index f24b3daedf6..ed7bb1c0345 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md @@ -17,7 +17,7 @@ L'objectif de ce guide est de présenter les logs générés par le KMS OVHcloud ### Description -Le KMS OVHcloud dispose d'une intégration native avec [Logs Data Plateform](https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/) pour la gestion des logs. +Le KMS OVHcloud dispose d'une intégration native avec [Logs Data Plateform](/links/manage-operate/ldp) pour la gestion des logs. ### Accès aux logs en direct From fc3bd6f26a9878f7a3eb713ca85c601d715d25a1 Mon Sep 17 00:00:00 2001 From: Yoann Cosse Date: Tue, 17 Jun 2025 10:27:37 +0200 Subject: [PATCH 5/6] Additional proofreading --- .../kms/kms-troubleshooting/guide.en-gb.md | 34 ++++++++++++------- .../kms/kms-troubleshooting/guide.fr-fr.md | 20 +++++++---- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md index 160af7b7b8a..c4cc8757148 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.en-gb.md @@ -6,7 +6,7 @@ updated: 2025-06-17 ## Objective -This guide aim to introduce logs generated by OVHcloud KMS and how they are managed from Logs Data Platform. +This guide aims to introduce logs generated by OVHcloud KMS and how they are managed from Logs Data Platform. ## Requirements @@ -17,7 +17,7 @@ This guide aim to introduce logs generated by OVHcloud KMS and how they are mana ### Description -OVHcloud KMS has a native integration with [Logs Data Plateform](/links/manage-operate/ldp) for logs management. +OVHcloud KMS has a native integration with [Logs Data Platform](/links/manage-operate/ldp) for logs management. ### Logs direct access @@ -25,16 +25,16 @@ KMS logs are available from each KMS `Logs`{.action} tab. ![Logs tab](images/kms-logs-tab.png){.thumbnail} -This tab display in real time all KMS logs. -A selector allow to switch display between the two types of logs: +This tab displays all KMS logsin real time. +A selector allows to switch display between the two types of logs: - REST API audit logs. - KMIP audit logs. ### Logs access through LDP -From the `Logs`{.action} tab, it's possible to subscribe to a LDP data stream. -One the subscribtion enable, all the logs will be pushed to [Logs Data Plateform](/links/manage-operate/ldp) to archive generated logs and perform advanced searches, create alerts and visualisations +From the `Logs`{.action} tab, you can subscribe to an LDP data stream. +Once the subscription is enabled, all the logs will be pushed to [Logs Data Platform](/links/manage-operate/ldp) to archive generated logs and perform advanced searches, create alerts and visualisations. ![LDP Subscription](images/kms-ldp-subscription.png){.thumbnail} @@ -42,19 +42,23 @@ For more information, please refer to our guide "[Quick start for Logs Data Plat ### Available logs details -KMS logs contains following information: +KMS logs contain the following information: - REST API -Logs are display with this format: +Logs are displayed with this format: ```bash {{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} ``` -As example: INFO | GET /v1/servicekey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - 200 - identity: urn:v1:eu:identity:group:xx1111-ovh/john.smith - operation: okms:apiovh:serviceKey/get on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxx/serviceKey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - from Manager/APIv2 - request id: EU.manager-5.684c3abe.3880620.2080cff16eaa5539bf92cxxxxxxxx +**Example:** -Elements that can be pushed to Logs Data Plateform: +```console +INFO | GET /v1/servicekey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - 200 - identity: urn:v1:eu:identity:group:xx1111-ovh/john.smith - operation: okms:apiovh:serviceKey/get on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxx/serviceKey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - from Manager/APIv2 - request id: EU.manager-5.684c3abe.3880620.2080cff16eaa5539bf92cxxxxxxxx +``` + +Elements that can be pushed to Logs Data Platform: |**Field**|**Description**| | :-: | :-: | @@ -75,15 +79,19 @@ Elements that can be pushed to Logs Data Plateform: - KMIP -Logs are display with this format: +Logs are displayed with this format: ```bash {{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} ``` -As example : INFO | GET on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxxx/kmip/ff55638c-3e86-4cb3-xxxx-xxxxxxxx - identity: urn:v1:eu:identity:account:xx1111-ovh - operation: okms:kmip:get - from XXX.XXX.XXX.XXX with certificate e7850a19-a5de-4527-xxxx-xxxxxxxxx - request id: OKMS.db61c455-abfa-4a66-xxxx-xxxxxxxxxxx" +**Example:** + +```console +INFO | GET on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxxx/kmip/ff55638c-3e86-4cb3-xxxx-xxxxxxxx - identity: urn:v1:eu:identity:account:xx1111-ovh - operation: okms:kmip:get - from XXX.XXX.XXX.XXX with certificate e7850a19-a5de-4527-xxxx-xxxxxxxxx - request id: OKMS.db61c455-abfa-4a66-xxxx-xxxxxxxxxxx +``` -Elements that can be pushed to Logs Data Plateform: +Elements that can be pushed to Logs Data Platform: |**Field**|**Description**| | :-: | :-: | diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md index ed7bb1c0345..a91f6e3b3ce 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md +++ b/pages/manage_and_operate/kms/kms-troubleshooting/guide.fr-fr.md @@ -17,7 +17,7 @@ L'objectif de ce guide est de présenter les logs générés par le KMS OVHcloud ### Description -Le KMS OVHcloud dispose d'une intégration native avec [Logs Data Plateform](/links/manage-operate/ldp) pour la gestion des logs. +Le KMS OVHcloud dispose d'une intégration native avec [Logs Data Platform](/links/manage-operate/ldp) pour la gestion des logs. ### Accès aux logs en direct @@ -34,7 +34,7 @@ Le sélecteur permet de choisir le type de logs affichés : ### Accès aux logs via LDP Depuis l'onglet `Logs`{.action} il est possible de s'abonner à un flux LDP. -Une fois l'abonnement actif, l'ensemble des logs seront transmis à [Logs Data Plateform](/links/manage-operate/ldp) pour retrouver l'historique des logs générés et la possiblité de faire des recherches plus avancées, créer des alertes et des visualisations. +Une fois l'abonnement actif, l'ensemble des logs seront transmis à [Logs Data Platform](/links/manage-operate/ldp) pour retrouver l'historique des logs générés et la possiblité de faire des recherches plus avancées, créer des alertes et des visualisations. ![LDP Subscription](images/kms-ldp-subscription.png){.thumbnail} @@ -52,9 +52,13 @@ Les logs sont sous le format suivant : {{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} ``` -Par exemple : INFO | GET /v1/servicekey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - 200 - identity: urn:v1:eu:identity:group:xx1111-ovh/john.smith - operation: okms:apiovh:serviceKey/get on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxx/serviceKey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - from Manager/APIv2 - request id: EU.manager-5.684c3abe.3880620.2080cff16eaa5539bf92cxxxxxxxx +**Exemple :** -Les éléments pouvant être transmis à Logs Data Plateform sont : +```console +INFO | GET /v1/servicekey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - 200 - identity: urn:v1:eu:identity:group:xx1111-ovh/john.smith - operation: okms:apiovh:serviceKey/get on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxx/serviceKey/77f0a3f6-c2ef-4e76-xxxx-xxxxxxxxxxxx - from Manager/APIv2 - request id: EU.manager-5.684c3abe.3880620.2080cff16eaa5539bf92cxxxxxxxx +``` + +Les éléments pouvant être transmis à Logs Data Platform sont : |**Champ**|**Description**| | :-: | :-: | @@ -81,9 +85,13 @@ Les logs sont sous le format suivant : {{ http_method }} {{ http_path }} - {{ http_status }} - identity: {{ iam_identities }} - operation: {{ iam_operation }} on {{ res_urn }} - from {{ip}} with certificate {{cert_id}} - request id: {{ request_id }} ``` -Par exemple : INFO | GET on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxxx/kmip/ff55638c-3e86-4cb3-xxxx-xxxxxxxx - identity: urn:v1:eu:identity:account:xx1111-ovh - operation: okms:kmip:get - from XXX.XXX.XXX.XXX with certificate e7850a19-a5de-4527-xxxx-xxxxxxxxx - request id: OKMS.db61c455-abfa-4a66-xxxx-xxxxxxxxxxx" +**Exemple :** + +```console +INFO | GET on urn:v1:eu:resource:okms:8d1c84cc-1128-4629-xxxx-xxxxxxxxxxx/kmip/ff55638c-3e86-4cb3-xxxx-xxxxxxxx - identity: urn:v1:eu:identity:account:xx1111-ovh - operation: okms:kmip:get - from XXX.XXX.XXX.XXX with certificate e7850a19-a5de-4527-xxxx-xxxxxxxxx - request id: OKMS.db61c455-abfa-4a66-xxxx-xxxxxxxxxxx" +``` -Les éléments pouvant être transmis à Logs Data Plateform étant : +Les éléments pouvant être transmis à Logs Data Platform étant : |**Champ**|**Description**| | :-: | :-: | From e9cfe1d016087f224c589c9be6af6b1d47dfbf50 Mon Sep 17 00:00:00 2001 From: gbarideau <130669353+gbarideau@users.noreply.github.com> Date: Tue, 17 Jun 2025 10:35:17 +0200 Subject: [PATCH 6/6] Update pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml Co-authored-by: Yoann Cosse <63302382+Y0Coss@users.noreply.github.com> --- pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml b/pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml index 2a4d1a420f7..b5aab7d7f73 100644 --- a/pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml +++ b/pages/manage_and_operate/kms/kms-troubleshooting/meta.yaml @@ -1,3 +1,3 @@ id: 751e237a-47e4-4ac8-854d-189530462197 -full_slug: kms-troubleshooting +full_slug: kms-logs reference_category: manage-operate-kms \ No newline at end of file