Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Journalisation des audits de base de données
Amazon Redshift consigne dans un journal les informations sur les connexions et les activités de l'utilisateur dans votre base de données. Ces journaux vous permettent de contrôler la base de données à des fins de sécurité et de résolution des problèmes, ce qui est un processus souvent appelé audit de la base de données. Les journaux peuvent être stockés dans :
-
Compartiments Amazon S3 : ils fournissent un accès pratique aux fonctions de sécurité des données pour les utilisateurs qui sont responsables de la surveillance des activités de la base de données.
-
Amazon CloudWatch - Vous pouvez consulter les données d'enregistrement des audits à l'aide des fonctionnalités intégrées CloudWatch, telles que les fonctionnalités de visualisation et les actions de configuration.
Note
SYS_ CONNECTION _ LOG collecte les données du journal de connexion pour Amazon Redshift Serverless. Notez que lorsque vous collectez des données de journalisation d'audit pour Amazon Redshift Serverless, elles ne peuvent pas être envoyées vers des fichiers journaux, mais uniquement vers. CloudWatch
Rubriques
Journaux Amazon Redshift
Amazon Redshift enregistre les informations dans les fichiers journaux suivants :
-
Journal de connexion : consigne les tentatives d'authentification, les connexions et les déconnexions.
-
Journal de l'utilisateur : consigne les informations sur les modifications apportées aux définitions d'utilisateur de base de données.
-
Journal d'activité utilisateur : consigne chaque requête avant qu'elle soit exécutée sur la base de données.
Les journaux de connexion et utilisateur sont utiles principalement à des fins de sécurité. Vous pouvez utiliser le journal de connexion pour contrôler les informations sur les utilisateurs qui se connectent à la base de données ainsi que les informations de connexion associées. Il peut s'agir de leur adresse IP, du moment où la demande a été effectuée, du type d'authentification utilisé, etc. Vous pouvez utiliser le journal utilisateur pour surveiller les modifications apportées aux définitions des utilisateurs de base de données.
Le journal d'activité utilisateur est utile principalement à des fins de résolution de problèmes. Il effectue le suivi d'informations sur les types de requêtes exécutées par les utilisateurs et le système dans la base de données.
Les journaux de connexion et utilisateur correspondent aux informations stockées dans les tables système de votre base de données. Vous pouvez utiliser les tables système pour obtenir les mêmes informations, mais les fichiers journaux constituent un mécanisme de récupération et de vérification plus simple. Les fichiers journaux s'appuient sur les autorisations Amazon S3 plutôt que sur les autorisations de base de données pour exécuter des requêtes sur les tables de base de données. En outre, le fait d'afficher les informations dans des fichiers journaux plutôt que d'interroger les tables système vous permet de limiter l'impact de l'interaction avec la base de données.
Note
Les fichiers journaux ne sont pas aussi récents que les tables journaux du système qui sont STL_ USERLOG et STL_ CONNECTION _ LOG. Les enregistrements qui sont plus anciens que les derniers enregistrements, mais ne les incluent pas, sont copiés dans les fichiers journaux.
Note
Pour Amazon Redshift Serverless, SYS_ CONNECTION _ LOG collecte les données du journal des connexions. Lorsque vous collectez des données de journalisation d'audit pour Amazon Redshift Serverless, elles ne peuvent pas être envoyées vers des fichiers journaux, mais uniquement vers. CloudWatch
Journal de connexion
Enregistre les tentatives d'authentification, ainsi que les connexions et déconnexions. Le tableau suivant décrit les informations contenues dans le journal de connexion. Pour plus d'informations sur ces champs, consultez STL_ CONNECTION _ LOG dans le manuel Amazon Redshift Database Developer Guide. Pour plus d'informations sur les données du journal de connexion collectées pour Amazon Redshift Serverless, consultez SYS _ _. CONNECTION LOG
Nom de la colonne | Description |
---|---|
event | Connexion ou événement d'authentification. |
recordtime | Heure de l'événement. |
remotehost | Nom ou adresse IP de l'hôte distant. |
remoteport | Numéro de port de l'hôte distant. |
pid | ID de processus associé à l'instruction. |
dbname | Nom de la base de données. |
nom d’utilisateur | Nom d'utilisateur. |
authmethod | Méthode d'authentification. |
duration | Durée de connexion en microsecondes. |
sslversion | Version Secure Sockets Layer (SSL). |
sslcipher | SSLchiffrer. |
mtu | Unité de transmission maximale (MTU). |
sslcompression | SSLtype de compression. |
sslexpansion | SSLtype d'extension. |
iamauthguid | Le AWS Identity and Access Management (IAM) identifiant d'authentification pour AWS CloudTrail demande. Il s'agit de l'identifiant de l'GetClusterCredentialsAPIappel pour créer les informations d'identification utilisées pour une connexion donnée. |
application_name | Nom initial ou mis à jour de l’application pour une séance. |
os_version | La version du système d’exploitation de la machine cliente qui se connecte à votre cluster Amazon Redshift. |
driver_version | Version ODBC ou JDBC pilote qui se connecte à votre cluster Amazon Redshift à partir de vos outils SQL clients tiers. |
plugin_name | Le nom du plugin utilisé pour se connecter à votre cluster Amazon Redshift. |
protocol_version | La version du protocole interne que le pilote Amazon Redshift utilise pour établir sa connexion avec le serveur. |
sessionid | Identifiant unique au niveau mondial pour la session en cours. |
compression | Algorithme de compression utilisé pour la connexion. |
Journal utilisateur
Enregistre les détails des modifications suivantes apportées à un utilisateur de base de données :
-
Créer un utilisateur
-
Supprimer un utilisateur
-
Modifier un utilisateur (renommer)
-
Modifier un utilisateur (modifier les propriétés)
Nom de la colonne | Description |
---|---|
userid | ID de l'utilisateur affecté par la modification. |
nom d’utilisateur | Nom d'utilisateur de l'utilisateur affecté par la modification. |
oldusername | Pour une action d’attribution d’un nouveau nom, le nom original de l’utilisateur. Pour toute autre action, ce champ est vide. |
action | Action qui s’est produite. Valeurs valides :
|
usecreatedb | Si true (1), indique que l'utilisateur a créé des autorisations de base de données. |
usesuper | Si true (1), indique que l'utilisateur est un super-utilisateur. |
usecatupd | Si true (1), indique que l'utilisateur peut mettre à jour les catalogues système. |
valuntil | Date d'expiration du mot de passe. |
pid | ID du processus. |
xid | ID de transaction. |
recordtime | Heure à UTC laquelle la requête a commencé. |
Interrogez la vue USERLOG système SYS_ pour obtenir des informations supplémentaires sur les modifications apportées aux utilisateurs. Cette vue comprend les données de journal d'Amazon Redshift sans serveur.
Journal d'activité utilisateur
Consigne chaque requête avant qu'elle soit exécutée sur la base de données.
Nom de la colonne | Description |
---|---|
recordtime | Heure de l'événement. |
db | Nom de la base de données. |
utilisateur | Nom d'utilisateur. |
pid | ID de processus associé à l'instruction. |
userid | ID de l'utilisateur. |
xid | ID de transaction. |
query | Un préfixe de LOG : suivi du texte de la requête, y compris les nouvelles lignes. |
Journaux d'audit et Amazon CloudWatch
La journalisation des audits n'est pas activée par défaut dans Amazon Redshift. Lorsque vous activez la journalisation sur votre cluster, Amazon Redshift exporte les journaux vers Amazon CloudWatch, ou crée et télécharge des journaux vers Amazon S3, qui capturent les données depuis le moment où la journalisation des audits est activée jusqu'à aujourd'hui. Chaque mise à jour de journalisation constitue la suite des journaux précédents.
La journalisation des audits vers CloudWatch ou vers Amazon S3 est un processus facultatif. La journalisation dans les tables système n'est pas facultative et se fait automatiquement. Pour plus d'informations sur la journalisation dans les tables système, veuillez consulter la rubrique Référence des tables système dans le Guide du développeur de la base de données Amazon Redshift.
Le journal de connexion, le journal utilisateur et le journal d'activité utilisateur sont activés ensemble à l'aide du AWS Management Console, le Amazon Redshift API Reference, ou le AWS Command Line Interface (AWS CLI). Pour le journal d'activité de l'utilisateur, vous devez également activer le paramètre enable_user_activity_logging
de base de données. Si vous activez uniquement la fonction de journalisation des audits, mais pas le paramètre associé, les journaux d'audit de base de données enregistrent des informations uniquement pour les journaux de connexion et utilisateur, mais pas pour le journal d'activité utilisateur. Le paramètre enable_user_activity_logging
n'est pas activé (false
) par défaut. Vous pouvez le définir sur true
pour activer le journal d'activité de l'utilisateur. Pour de plus amples informations, veuillez consulter Groupes de paramètres Amazon Redshift.
Lorsque vous activez la connexion à CloudWatch, Amazon Redshift exporte les données de connexion au cluster, d'utilisateur et d'activité des utilisateurs vers un groupe de CloudWatch journaux Amazon Logs. Les données du journal ne changent pas, en termes de schéma. CloudWatch est conçu pour surveiller les applications, et vous pouvez l'utiliser pour effectuer des analyses en temps réel ou le configurer pour qu'il prenne des mesures. Vous pouvez également utiliser Amazon CloudWatch Logs pour stocker vos enregistrements de journal dans un espace de stockage durable.
L'utilisation CloudWatch pour afficher les journaux est une alternative recommandée au stockage des fichiers journaux dans Amazon S3. Cela ne nécessite pas beaucoup de configuration et peut répondre à vos exigences de surveillance, surtout si vous l'utilisez déjà pour surveiller d'autres services et d’autres applications.
Groupes de journaux et événements de journalisation sur Amazon CloudWatch
Après avoir sélectionné les journaux Amazon Redshift à exporter, vous pouvez surveiller les événements des journaux dans Amazon CloudWatch Logs. Un nouveau groupe de journaux est automatiquement créé pour Amazon Redshift Serverless sous le préfixe suivant, dans lequel log_type
représente le type de journal.
/aws/redshift/cluster/<cluster_name>/<log_type>
Par exemple, si vous choisissez d'exporter le journal des connexions, les données du journal sont stockées dans le groupe de journaux suivant.
/aws/redshift/cluster/cluster1/connectionlog
Les événements de journal sont exportés vers un groupe de journaux à l'aide du flux de journaux. Pour rechercher des informations dans les événements de journalisation de votre point de terminaison sans serveur, utilisez la console Amazon CloudWatch Logs, AWS CLI, ou Amazon CloudWatch LogsAPI. Pour de plus amples informations sur la recherche et le filtrage des données de journaux, veuillez consulter Création de métriques à partir d'événements du journal à l'aide de filtres.
Dans CloudWatch, vous pouvez rechercher les données de votre journal à l'aide d'une syntaxe de requête garantissant granularité et flexibilité. Pour plus d'informations, consultez la section Syntaxe de requête CloudWatch Logs Insights.
Migration vers la journalisation des CloudWatch audits Amazon
Dans tous les cas où vous envoyez des journaux à Amazon S3 et que vous modifiez la configuration, par exemple pour envoyer des journaux à CloudWatch, les journaux qui restent dans Amazon S3 ne sont pas affectés. Vous pouvez toujours interroger les données de journaux dans les compartiments Simple Storage Service (Amazon S3) où elles se trouvent.
Fichiers journaux dans Amazon S3
Le nombre et la taille des fichiers journaux Amazon Redshift dans Amazon S3 dépendent fortement de l'activité de votre cluster. Si vous avez un cluster actif qui génère un grand nombre de journaux, Amazon Redshift peut générer des fichiers journaux plus fréquemment. Vous pouvez disposer d'une série de fichiers journaux pour le même type d'activité, par exemple plusieurs journaux de connexion au cours de la même heure.
Lorsqu’Amazon Redshift utilise Amazon S3 pour stocker les journaux, vous devez payer des frais pour le stockage que vous utilisez dans Amazon S3. Avant de configurer la journalisation dans Amazon S3, vous devez avoir planifié la durée de stockage des fichiers journaux. Dans le cadre de ce plan, déterminez quand les fichiers journaux peuvent être supprimés ou archivés en fonction de vos besoins en audit. Le plan que vous créez dépend fortement du type de données que vous stockez, telles que les données soumises à des exigences réglementaires ou de conformité. Pour de plus amples informations sur la tarification d'Amazon S3, veuillez consulter la tarification Amazon Simple Storage Service (S3)
Limites lorsque vous activez la journalisation sur Amazon S3
La journalisation d'audit présente les contraintes suivantes :
-
Vous ne pouvez utiliser que le chiffrement par clés gérées par Amazon SSE S3 (-S3) (-256). AES
-
Les compartiments Amazon S3 doivent avoir la fonction Verrouillage des objets S3 désactivée.
Autorisations du compartiment pour la journalisation des audits Amazon Redshift
Lorsque vous activez la journalisation dans Amazon S3, Amazon Redshift collecte des informations de journalisation et les charge dans les fichiers journaux stockés dans Amazon S3. Vous ou utiliser un compartiment existant ou créer un compartiment. Amazon Redshift nécessite les IAM autorisations suivantes pour accéder au compartiment :
-
s3:GetBucketAcl
Le service nécessite des autorisations de lecture pour le compartiment Amazon S3 afin de pouvoir identifier le propriétaire du compartiment. -
s3:PutObject
Le service nécessite des autorisations de placement d'objet pour charger les journaux. En outre, l'utilisateur ou le IAM rôle qui active la journalisation doit êtres3:PutObject
autorisé à accéder au compartiment Amazon S3. Chaque fois que les journaux sont chargés, le service détermine si le propriétaire actuel du compartiment correspond au propriétaire du compartiment au moment de l'activation de la journalisation. Si ces propriétaires ne correspondent pas, vous recevez une erreur.
Si, lorsque vous activez la journalisation d'audit, vous sélectionnez l'option permettant de créer un compartiment, les autorisations correctes sont appliquées à celui-ci. Toutefois, si vous créez votre propre compartiment dans Amazon S3 ou que vous utilisez un compartiment existant, veillez à ajouter une politique de compartiment incluant le nom du compartiment. Les journaux sont fournis à l'aide des informations d'identification du principal du service. Pour la plupart Régions AWS, vous ajoutez le nom principal du service Redshift, redshift.amazonaws.com
.
La politique de compartiment utilise le format suivant. ServiceName
and BucketName
sont des espaces réservés à vos propres valeurs. Spécifiez également les actions et les ressources associées dans la politique de compartiment.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "ServiceName" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::BucketName", "arn:aws:s3:::BucketName/*" ] } ] }
L'exemple suivant présente une politique de compartiment pour la région USA Est (Virginie du Nord) et le compartiment nommé AuditLogs
.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::AuditLogs", "arn:aws:s3:::AuditLogs/*" ] } ] }
Les régions qui ne sont pas activées par défaut, également appelées régions « opt-in », nécessitent un nom de principal du service spécifique à une région. Pour cela, le nom du principal du service inclut la région, au format redshift.
. Par exemple, region
.amazonaws.comredshift.ap-east-1.amazonaws.com
pour la région Asie-Pacifique (Hong Kong). Pour obtenir la liste des régions qui ne sont pas activées par défaut, voir Gestion Régions AWS dans le .Références générales AWS.
Note
Le nom du principal du service spécifique à la région correspond à la région où se trouve le cluster.
Bonnes pratiques relatives aux fichiers journaux
Lorsque Redshift charge des fichiers journaux sur Amazon S3, les fichiers volumineux peuvent être téléchargés en plusieurs parties. Si un chargement partitionné ne réussit pas, il est possible que certaines parties d'un fichier restent dans le compartiment Amazon S3. Cela peut entraîner des coûts de stockage supplémentaires. Il est donc important de comprendre ce qui se produit lorsqu'un chargement partitionné échoue. Pour obtenir des explications détaillées sur le chargement partitionné pour les journaux d'audit, veuillez consulter Chargement et copie d'objets à l'aide d'un chargement partitionné et Interruption d'un chargement partitionné.
Pour plus d'informations sur la création de compartiments Amazon S3 et l'ajout de politiques de compartiments, veuillez consulter la rubrique Création d'un compartiment et Modification des autorisations de compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service.
Structure du compartiment pour la journalisation d'audit Amazon Redshift
Par défaut, Amazon Redshift organise les fichiers journaux dans le compartiment Amazon S3 en utilisant la structure de compartiment et d'objet suivante :
AWSLogs/
AccountID
/ServiceName
/Region
/Year
/Month
/Day
/AccountID_ServiceName_Region_ClusterName_LogType_Timestamp.gz
Voici un exemple : AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz
.
Si vous fournissez un préfixe de clé Amazon S3, placez-le au début de la clé.
Par exemple, si vous spécifiez un préfixe « myprefix » : myprefix/AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz
Le préfixe de clé Amazon S3 ne doit pas dépasser 512 caractères. Il ne peut pas contenir d'espaces ( ), de guillemets doubles ("), d'apostrophes (') et de barre oblique inverse (\). Un certain nombre de caractères spéciaux et de caractères de contrôle ne sont pas autorisés non plus. Les codes hexadécimaux de ces caractères sont les suivants :
-
x00 à x20
-
x22
-
x27
-
x5c
-
x7f ou plus
Considérations relatives à la journalisation des audits dans Amazon S3
La journalisation d'audit Amazon Redshift peut être interrompue pour les raisons suivantes :
-
Amazon Redshift n'a pas l'autorisation de télécharger les journaux vers le compartiment Amazon S3. Vérifiez que le bucket est configuré avec la bonne IAM politique. Pour de plus amples informations, veuillez consulter Autorisations du compartiment pour la journalisation des audits Amazon Redshift.
-
Le propriétaire du compartiment a changé. Quand Amazon Redshift charge les journaux, il vérifie que le propriétaire du compartiment est le même que lors de l'activation de la journalisation. Si le propriétaire du compartiment a changé, Amazon Redshift ne peut pas charger les journaux tant que vous ne configurez pas d'autre compartiment à utiliser pour la journalisation d'audit.
-
Impossible de trouver le compartiment. Si le compartiment est supprimé dans Amazon S3, Amazon Redshift ne peut pas télécharger les journaux. Vous devez recréer le compartiment ou configurer Amazon Redshift pour charger les journaux dans un autre compartiment.
APIappels avec AWS CloudTrail
Amazon Redshift est intégré à AWS CloudTrail, un service qui fournit un enregistrement des actions entreprises par un utilisateur, un rôle ou un AWS service dans Amazon Redshift. CloudTrail capture tous les API appels pour Amazon Redshift sous forme d'événements. Pour plus d'informations sur l'intégration d'Amazon Redshift avec AWS CloudTrail, voir Logging with CloudTrail.
Vous pouvez utiliser la journalisation des audits de base de données Amazon Redshift CloudTrail indépendamment ou en complément de celle-ci.
Pour en savoir plus CloudTrail, consultez le AWS CloudTrail Guide de l'utilisateur.