Il est possible qu'une partie ou l'ensemble des informations de cette page ne s'appliquent pas au Cloud de confiance S3NS.
Bonnes pratiques pour l'audit de l'accès SSH
Ce document décrit les bonnes pratiques à suivre pour auditer l'accès SSH aux instances de machines virtuelles (VM) Linux.
Cloud Audit Logs vous permet d'analyser les activités passées et peut être une source d'informations importante pour analyser les activités suspectes affectant vos ressourcesTrusted Cloud .
Les sections suivantes décrivent les bonnes pratiques à suivre pour conserver un outil d'audit non-répudiable:
Ce document est consacré aux pratiques spécifiques à Trusted Cloud by S3NS ou particulièrement adaptées lors de l'utilisation de SSH sur Trusted Cloud. Il n'aborde pas les bonnes pratiques de mises en œuvre spécifiques d'un client ou d'un serveur SSH.
Activer les journaux d'accès aux données pour IAP
Pour vous assurer qu'IAP ajoute une entrée à Cloud Audit Logs chaque fois qu'un utilisateur tente d'établir une connexion SSH, activez les journaux d'accès aux données pour l'API Cloud Identity-Aware Proxy.
Les journaux d'accès aux données sont désactivés par défaut. Sauf si vous avez des inquiétudes concernant le volume de journaux, activez les journaux d'accès aux données pour tous les projets contenant des instances de VM.
Surveiller les entrées de journaux d'audit liées à l'utilisation de SSH
L'utilisation de SSH peut avoir une incidence sur la sécurité des VM et de leurs charges de travail. Il est donc important de conserver une piste d'audit pour les tentatives de connexion réussies et les tentatives d'accès échouées.
Cette fonctionnalité est particulièrement importante dans les environnements de production, où l'utilisation de SSH doit être considérée comme une action sensible.
Pour suivre l'accès SSH et éventuellement détecter un comportement suspect, veillez à surveiller les entrées de journal liées à SSH, y compris les suivantes:
Service |
Méthode |
Description |
IAP |
AuthorizeUser |
Indique une tentative de connexion via le transfert TCP IAP.
Les entrées de journal contiennent des informations sur l'appareil de l'utilisateur, les niveaux d'accès satisfaits et les niveaux d'accès non satisfaits.
|
OS Login |
google.cloud.oslogin.dataplane.OsLoginDataPlaneService.CheckPolicy |
Indique une tentative de connexion. |
OS Login |
google.cloud.oslogin.dataplane.OsLoginDataPlaneService.StartSession |
Indique le début d'un test d'authentification à deux facteurs OS Login. |
OS Login |
google.cloud.oslogin.dataplane.OsLoginDataPlaneService.ContinueSession |
Indique la fin d'un test d'authentification à deux facteurs OS Login. |
Compute Engine |
v1.compute.projects.setCommonInstanceMetadata |
Si le champ projectMetadataDelta contient une entrée pour "ssh-keys", cette entrée de journal indique qu'une clé SSH a été ajoutée, supprimée ou modifiée dans les métadonnées du projet.
|
Compute Engine |
v1.compute.instances.setMetadata |
Si le champ projectMetadataDelta contient une entrée pour "ssh-keys" ou "sshKeys", cette entrée de journal indique qu'une clé SSH a été ajoutée, supprimée ou modifiée dans les métadonnées de l'instance.
|
Compute Engine |
google.ssh-serialport.v1.connect |
Indique une tentative de connexion à la console série |
IAM |
beta.compute.instances.setIamPolicy ,
v1.compute.instances.setIamPolicy
|
Indique une modification de la stratégie IAM d'une instance de VM. Une modification de stratégie IAM peut affecter la capacité des utilisateurs à modifier les métadonnées d'une instance.
|
IAM |
SetIamPolicy |
Indique une modification de la stratégie IAM d'un projet. Une modification de stratégie IAM peut affecter la capacité des utilisateurs à modifier les métadonnées du projet, ainsi que la configuration des journaux d'audit des accès aux données du projet.
|
Tous les enregistrements du journal d'audit contiennent un champ principalEmail
qui identifie le compte principal qui a initié l'activité.
Pour obtenir une vue complète de l'activité de vos VM, configurez-les pour exporter les journaux des serveurs /var/log/messages
et SSH vers Cloud Logging, par exemple à l'aide de l'agent Ops.
Notez que selon la distribution Linux que vous utilisez, les journaux de serveur SSH peuvent être écrits dans différents fichiers journaux (généralement /var/log/auth.log
ou /var/log/secure
), et que ces fichiers journaux ne sont pas couverts par la configuration par défaut utilisée par l'agent Ops.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/19 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/19 (UTC)."],[[["\u003cp\u003eThis document outlines best practices for auditing SSH access to Linux virtual machine (VM) instances on Google Cloud, emphasizing the importance of maintaining a non-repudiable audit trail.\u003c/p\u003e\n"],["\u003cp\u003eEnabling data access logs for the Cloud Identity-Aware Proxy API is crucial to capture all SSH connection attempts via IAP, and should be considered unless log volume is a concern.\u003c/p\u003e\n"],["\u003cp\u003eMonitoring specific audit log entries related to SSH usage, including connection attempts, is important, particularly for sensitive actions in production environments.\u003c/p\u003e\n"],["\u003cp\u003eVarious services and methods within Google Cloud generate audit logs related to SSH, such as IAP's \u003ccode\u003eAuthorizeUser\u003c/code\u003e and Compute Engine's metadata modification methods.\u003c/p\u003e\n"],["\u003cp\u003eFor a comprehensive view of VM activity, exporting \u003ccode\u003e/var/log/messages\u003c/code\u003e and SSH server logs to Cloud Logging, potentially through Ops Agent, is recommended, noting that SSH logs may vary by Linux distribution.\u003c/p\u003e\n"]]],[],null,["*** ** * ** ***\n\nThis document describes best practices for auditing SSH access\nto Linux virtual machine (VM) instances.\n\nCloud Audit Logs let you analyze past activity and can be an important source\nof information when investigating suspicious activity affecting your\nGoogle Cloud resources.\n\nThe following sections contains best practices that can help you maintain a non-repudiable\naudit trail:\n\n- [Enable data access logs for IAP](#enable-iap-access-logs)\n- [Monitor audit log entries related to SSH usage](#monitor-ssh-usage)\n\nThe document focuses on practices that are either specific to Google Cloud or\nof particular relevance when using SSH on Google Cloud. The document doesn't\ncover best practices for specific SSH client or server implementations.\n\nEnable data access logs for IAP\n\nTo make sure that IAP adds an entry to the Cloud Audit Logs\nwhenever a user attempts to establish an SSH connection, [enable data access logs](/logging/docs/audit/configure-data-access) for the **Cloud Identity-Aware Proxy API**.\nData access logs are disabled by default. Unless you have concerns about log volume,\nenable data access logs for all projects that contain VM instances.\n\nMonitor audit log entries related to SSH usage\n\nSSH usage can impact the security of VMs and their workloads, so it's important to\nkeep an audit trail for both successful connection attempts and failed access attempts.\nThis is especially important in production environments, where SSH usage should be\nconsidered a sensitive action.\n\nTo track SSH access and possibly to find suspicious behavior, make sure that you\nmonitor log entries related to SSH, including the following:\n\n| Service | Method | Description |\n|----------------|----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| IAP | `AuthorizeUser` | Indicates a connection attempt through IAP TCP-forwarding. Log entries contain details about the user's device, satisfied access levels, and unsatisfied access levels. |\n| OS Login | `google.cloud.oslogin.dataplane.OsLoginDataPlaneService.CheckPolicy` | [Indicates a login attempt](/compute/docs/oslogin/view-audit-logs). |\n| OS Login | `google.cloud.oslogin.dataplane.OsLoginDataPlaneService.StartSession` | [Indicates the start of a OS Login 2FA challenge](/compute/docs/oslogin/view-audit-logs) |\n| OS Login | `google.cloud.oslogin.dataplane.OsLoginDataPlaneService.ContinueSession` | [Indicates the completion of a OS Login 2FA challenge](/compute/docs/oslogin/view-audit-logs) |\n| Compute Engine | `v1.compute.projects.setCommonInstanceMetadata` | If the field `projectMetadataDelta` contains an entry for \\`ssh-keys\\`, then this log entry indicates that an SSH key was added, removed or modified in project metadata. |\n| Compute Engine | `v1.compute.instances.setMetadata` | If the field `projectMetadataDelta` contains an entry for \\`ssh-keys\\` or \\`sshKeys\\`, then this log entry indicates that an SSH key was added, removed or modified in instance metadata. |\n| Compute Engine | `google.ssh-serialport.v1.connect` | Indicates a connection attempt to the serial console |\n| IAM | `beta.compute.instances.setIamPolicy`, `v1.compute.instances.setIamPolicy` | Indicates a change to the IAM policy of a VM instance. An IAM policy change might affect users' ability to modify instance metadata. |\n| IAM | `SetIamPolicy` | Indicates a change to the IAM policy of a project. An IAM policy change might affect users' ability to modify project metadata and the project's [Data Access audit logs configuration](/logging/docs/audit/configure-data-access#config-api). |\n\nAll audit log records contain a `principalEmail` field that identifies the principal\nthat initiated the activity.\n\nTo get a complete picture of activity on your VMs, configure your VMs to export\n`/var/log/messages` and SSH server logs to Cloud Logging, for example\nby using [Ops Agent](/logging/docs/agent/ops-agent).\n\nNotice that depending on the Linux distribution you use, SSH server logs might\nbe written to different log files (typically, `/var/log/auth.log` or `/var/log/secure`),\nand that these log files aren't covered by the\n[default configuration used by Ops Agent](/logging/docs/agent/ops-agent/configuration#default)."]]