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.
EC2 Instance Stack | Collectez des informations sur Log4j
Génère un rapport identifiant les occurrences de Log4j2 sur les instances spécifiées. EC2 Il s'agit d'un rapport basé sur le meilleur effort et il est possible que certains événements ne soient pas détectés dans le rapport.
Classification complète : Gestion | Composants de pile avancés | Stack d' EC2 instances | Collecte d'informations log4j
Détails du type de modification
Modifier l'identifiant du type |
ct-19f40lfm5umy8 |
Version actuelle |
2.0 |
Durée d'exécution prévue |
360 minutes |
Approbation AWS |
Obligatoire |
Approbation du client |
Facultatif |
Mode d'exécution |
Automatisé |
Informations supplémentaires
Mettre à jour d'autres CTs
Ce qui suit montre ce type de modification dans la console AMS.
Comment cela fonctionne :
Accédez à la page Créer une RFC : Dans le volet de navigation de gauche de la console AMS, cliquez RFCspour ouvrir la page de RFCs liste, puis cliquez sur Créer une RFC.
Choisissez un type de modification (CT) populaire dans la vue Parcourir les types de modification par défaut, ou sélectionnez un CT dans la vue Choisir par catégorie.
Parcourir par type de modification : vous pouvez cliquer sur un CT populaire dans la zone de création rapide pour ouvrir immédiatement la page Run RFC. Notez que vous ne pouvez pas choisir une ancienne version CT avec création rapide.
Pour trier CTs, utilisez la zone Tous les types de modifications dans l'affichage Carte ou Tableau. Dans l'une ou l'autre vue, sélectionnez un CT, puis cliquez sur Créer une RFC pour ouvrir la page Exécuter une RFC. Le cas échéant, une option Créer avec une ancienne version apparaît à côté du bouton Créer une RFC.
Choisissez par catégorie : sélectionnez une catégorie, une sous-catégorie, un article et une opération et la zone de détails du CT s'ouvre avec une option permettant de créer avec une ancienne version, le cas échéant. Cliquez sur Créer une RFC pour ouvrir la page Exécuter une RFC.
Sur la page Run RFC, ouvrez la zone de nom du CT pour voir la boîte de détails du CT. Un sujet est requis (il est renseigné pour vous si vous choisissez votre CT dans la vue Parcourir les types de modification). Ouvrez la zone de configuration supplémentaire pour ajouter des informations sur le RFC.
Dans la zone Configuration de l'exécution, utilisez les listes déroulantes disponibles ou entrez des valeurs pour les paramètres requis. Pour configurer les paramètres d'exécution facultatifs, ouvrez la zone de configuration supplémentaire.
Lorsque vous avez terminé, cliquez sur Exécuter. S'il n'y a aucune erreur, la page RFC créée avec succès s'affiche avec les détails de la RFC soumise et le résultat d'exécution initial.
Ouvrez la zone Paramètres d'exécution pour voir les configurations que vous avez soumises. Actualisez la page pour mettre à jour l'état d'exécution de la RFC. Vous pouvez éventuellement annuler la RFC ou en créer une copie à l'aide des options en haut de la page.
Comment cela fonctionne :
Utilisez soit le Inline Create (vous émettez une
create-rfccommande avec tous les paramètres RFC et d'exécution inclus), soit le Template Create (vous créez deux fichiers JSON, un pour les paramètres RFC et un pour les paramètres d'exécution) et émettez lacreate-rfccommande avec les deux fichiers en entrée. Les deux méthodes sont décrites ici.Soumettez la
aws amscm submit-rfc --rfc-idcommande RFC : avec l'ID RFC renvoyé.IDSurveillez la
aws amscm get-rfc --rfc-idcommande RFC :.ID
Pour vérifier la version du type de modification, utilisez cette commande :
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
Note
Vous pouvez utiliser n'importe quel CreateRfc paramètre avec n'importe quelle RFC, qu'ils fassent ou non partie du schéma du type de modification. Par exemple, pour recevoir des notifications lorsque le statut de la RFC change, ajoutez cette ligne --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" aux paramètres RFC de la demande (et non aux paramètres d'exécution). Pour obtenir la liste de tous les CreateRfc paramètres, consultez le manuel AMS Change Management API Reference.
CRÉATION EN LIGNE :
Émettez la commande create RFC avec les paramètres d'exécution fournis en ligne (évitez les guillemets lorsque vous fournissez des paramètres d'exécution en ligne), puis soumettez l'ID RFC renvoyé. Par exemple, vous pouvez remplacer le contenu par quelque chose comme ceci :
La version 2.0 :
Scannez toutes les instances :
aws amscm create-rfc --change-type-id "ct-19f40lfm5umy8" --change-type-version "2.0" --title "Log4j Investigation" --execution-parameters "{\"DocumentName\":\"AWSManagedServices-GatherLog4jInformation\",\"Region\":\"us-east-1\",\"Parameters\":{\"S3Bucket\":[\"s3://BUCKET_NAME\"]},\"TargetParameterName\": \"InstanceId\",\"Targets\": [{\"Key\": \"AWS::EC2::Instance\",\"Values\": [\"*\"]}],\"MaxConcurrency\": \"10\",\"MaxErrors\": \"100%\"}"
Scannez une liste d'instances :
aws amscm create-rfc --change-type-id "ct-19f40lfm5umy8" --change-type-version "2.0" --title "Log4j Investigation" --execution-parameters "{\"DocumentName\":\"AWSManagedServices-GatherLog4jInformation\",\"Region\":\"us-east-1\",\"Parameters\":{\"S3Bucket\":[\"s3://BUCKET_NAME\"]},\"TargetParameterName\": \"InstanceId\",\"Targets\": [{\"Key\": \"ParameterValues\",\"Values\": [\"INSTANCE_ID_1\",\"INSTANCE_ID_2\",\"INSTANCE_ID_3\",\"INSTANCE_ID_4\",\"INSTANCE_ID_5\"]}],\"MaxConcurrency\": \"10\",\"MaxErrors\": \"100%\"}"
CRÉATION D'UN MODÈLE :
Exportez les paramètres d'exécution de ce type de modification dans un fichier JSON ; cet exemple le nomme GatherLog 4 jInfoParams .json :
aws amscm get-change-type-version --change-type-id "ct-19f40lfm5umy8" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > GatherLog4jInfoParams.jsonModifiez et enregistrez le jInfoParams fichier GatherLog 4 en ne conservant que les paramètres que vous souhaitez modifier. Par exemple, vous pouvez remplacer le contenu par quelque chose comme ceci :
La version 2.0 :
Scannez toutes les instances :
{ "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://BUCKET_NAME" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "AWS::EC2::Instance", "Values": [ "*" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }Scannez une liste d'instances :
{ "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "BUCKET_NAMEParameterValues", "Values": [ "INSTANCE_ID_1", "INSTANCE_ID_2", "INSTANCE_ID_3", "INSTANCE_ID_4", "INSTANCE_ID_5" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }Exportez le modèle RFC dans un fichier de votre dossier actuel ; cet exemple le nomme GatherLog 4 jInfoRfc .json :
aws amscm create-rfc --generate-cli-skeleton > GatherLog4jInfoRfc.jsonModifiez et enregistrez le fichier GatherLog 4 jInfoRfc .json. Par exemple, vous pouvez remplacer le contenu par quelque chose comme ceci :
{ "ChangeTypeVersion": "2.0", "ChangeTypeId": "ct-19f40lfm5umy8", "Title": "Log4j Investigation" }Créez la RFC en spécifiant le jInfoRfc fichier GatherLog 4 et le jInfoParams fichier GatherLog 4 :
aws amscm create-rfc --cli-input-json file://GatherLog4jInfoRfc.json --execution-parameters file://GatherLog4jInfoParams.json
Ce type de modification analyse l' EC2 instance spécifiée à la recherche de packages contenant une version affectée de la classe Java Apache Log4j. Cette fonctionnalité produit un rapport optimal, certaines occurrences peuvent passer inaperçues ou mal identifiées.
AWS CloudShell est un shell basé sur un navigateur qui facilite la gestion, l'exploration et l'interaction en toute sécurité avec vos ressources AWS. AWS CloudShell est pré-authentifié à l'aide des informations d'identification de votre console lorsque vous vous connectez. Les outils de développement et d'exploitation courants étant préinstallés, aucune installation ou configuration locale n'est requise. Avec AWS CloudShell, vous pouvez exécuter rapidement des scripts avec l'interface de ligne de commande AWS (AWS CLI), tester le APIs service AWS à l'aide d' SDKsAWS ou utiliser toute une gamme d'autres outils pour être productif. Vous pouvez utiliser AWS CloudShell directement depuis votre navigateur, sans frais supplémentaires.
Note
Vous pouvez utiliser la console CloudShell AWS depuis n'importe quelle autre région AWS, ou depuis la région la plus proche, où elle est disponible, pour effectuer l'agrégation. Par exemple, pour effectuer l'agrégation des données stockées dans la région de Virginie, ouvrez un fichier CloudShell dans la région AWS « USA Est (Virginie) us-east-1 » dans la console AWS et suivez les instructions ci-dessous.
Les données du rapport incluent des informations sur les archives Java (fichiers JAR), trouvées dans l'environnement spécifié qui contiennent la JndiLookup classe vulnérable. AMS recommande de mettre à niveau les bibliothèques concernées vers la dernière version disponible, qui peut être téléchargée directement depuis Apache sur Download Apache Log4j 2
Pour agréger tous les fichiers CSV générés et créer un rapport unique avec AWS CloudShell :
À partir de n'importe quelle page ou région AWS de la console de gestion AWS, ouvrez AWS CloudShell pour exécuter le script ci-dessous. Assurez-vous que vous êtes connecté à l'AWS Management Console avec le AWSManaged ServicesReadOnlyRole rôle.
# Specify the S3 bucket and AWS region that contains the individual CSV files: BUCKET_NAME="YOUR BUCKET HERE" BUCKET_REGION="THE BUCKET REGION HERE" # Aggregate the CSV files: mkdir -p log4j-report aws s3 cp s3://$BUCKET_NAME/ams/log4j-scan/ ./log4j-report --recursive --include "*.csv" echo "aws_account_id,region,scan_time,instance_id,scan_type,location" > log4j-report/report.csv for i in `find log4j-report -type f \( -iname "*.csv" ! -iname "report.csv" \)`; do awk 'FNR > 1' $i >> log4j-report/report.csv; done # Upload the report to the same S3 bucket: file_name="report_$(date -d "today" +"%Y%m%d%H%M").csv" aws s3 cp log4j-report/report.csv s3://$BUCKET_NAME/ams/log4j-reports/$file_name # Open the following URL and select \"Download\" to download the report: echo "Report uploaded to: https://s3.console.aws.amazon.com/s3/object/$BUCKET_NAME?region=$BUCKET_REGION&prefix=ams/log4j-reports/$file_name"Le script affiche l'URL S3 à partir de laquelle télécharger le rapport.
Copiez et ouvrez l'URL, puis choisissez Télécharger
Zone d'atterrissage à compte unique : utilisation du rapport
Si vous travaillez dans une zone de landing zone à compte unique, le CloudShell service AWS n'est pas disponible. Cependant, vous pouvez toujours tirer parti de l'AWS CLI pour effectuer les étapes nécessaires. Suivez cette documentation. Comment accorder à mes utilisateurs Active Directory l'accès à l'API ou à la CLI AWS avec AD FS ?Customer_ReadOnly_Role. Exécutez ensuite le script à l'étape 1 pour générer le rapport CSV requis.
Comment lire le rapport
Le rapport contient les colonnes suivantes :
scan_time : heure à laquelle le scan de l'instance a été effectué
instance_id : ID de l'instance EC2
scan_type : type de scan effectué. Par exemple, si le scan est examiné dans les informations de mémoire, le scan_type sera MEMORY. Si le système de fichiers a été vérifié, le scan_type sera FILESYSTEM
emplacement : Le chemin vers le match
Paramètres d'entrée d'exécution
Pour des informations détaillées sur les paramètres d'entrée d'exécution, consultezSchéma pour le type de modification ct-19f40lfm5umy8.
Exemple : paramètres obligatoires
Example not available.
Exemple : tous les paramètres
{ "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://test" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "ParameterValues", "Values": [ "i-1234567890abcdef0", "i-1234567890abcdef1", "i-1234567890abcdef2", "i-1234567890abcdef3", "i-1234567890abcdef4" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }