Suivi des modifications apportées à vos comptes AMS Accelerate - Guide de l'utilisateur d'AMS Accelerate

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.

Suivi des modifications apportées à vos comptes AMS Accelerate

Important

Le service Change Record est obsolète depuis le 1er juillet 2025.

Les nouveaux comptes ne peuvent pas être intégrés au service Change Record.

Pour interroger CloudTrail les données de vos comptes AMS Accelerate, vous pouvez utiliser les services suivants :

  • Dans AWS CloudTrail, choisissez Historique des événements et filtrez les événements à l'aide des attributs de recherche. Vous pouvez utiliser le filtre par plage de temps et choisir de filtrer l'historique des événements par source d'événement en s3.amazon.aws.com spécifiant, ou choisir de filtrer l'historique des événements par nom d'utilisateur. Pour plus d'informations, consultez la section Utilisation de l'historique des CloudTrail événements.

  • Utilisez AWS CloudTrail Lake pour recueillir des données par le biais de requêtes. Dans, AWS CloudTrail choisissez Lake, puis Query. Vous pouvez créer vos propres requêtes, utiliser le générateur de requêtes ou utiliser des exemples de requêtes pour recueillir des données basées sur des événements. Par exemple, vous pouvez demander qui a supprimé une EC2 instance Amazon la semaine dernière. Pour plus d'informations, consultez la section Création d'un lac de données à partir d'une AWS CloudTrail source et de CloudTrailLake requêtes.

  • Créez une table Amazon Athena AWS CloudTrail et définissez l'emplacement de stockage comme étant le compartiment Amazon S3 associé à votre parcours. Vérifiez que la région d'origine de votre sentier et celle du compartiment Amazon S3 sont identiques. Dans Amazon Athena, utilisez l'éditeur de requêtes pour exécuter les requêtes par défaut fournies par Accelerate à utiliser avec la console Athena. Pour plus d'informations sur la création d'une table Athena pour interroger les CloudTrail journaux, consultez la section Journaux des requêtes AWS CloudTrail.

AWS Managed Services vous aide à suivre les modifications apportées par l'équipe AMS Accelerate Operations et AMS Accelerate Automation en fournissant une interface interrogeable à l'aide de la console Amazon Athena (Athena) et de la gestion des journaux AMS Accelerate.

Athena est un service de requête interactif que vous pouvez utiliser pour analyser des données dans Amazon S3 à l'aide du langage de requête structuré (SQL) standard (voir Référence SQL pour Amazon Athena). Athena fonctionnant sans serveur, vous n'avez pas d'infrastructure à gérer et vous ne payez que pour les requêtes que vous exécutez. AMS Accelerate crée des tables Athena avec des partitions quotidiennes sur les CloudTrail journaux, et fournit des requêtes sur votre AWS région principale et au sein du ams-change-recordgroupe de travail. Vous pouvez choisir n'importe laquelle des requêtes par défaut et les exécuter selon vos besoins. Pour en savoir plus sur les groupes de travail Athena, consultez Comment fonctionnent les groupes de travail.

Note

Seul Accelerate peut interroger les CloudTrail événements de votre compte Accelerate à l'aide d'Athena lorsqu'Accelerate est intégré au journal de votre CloudTrail organisation, sauf si l'administrateur de votre organisation a déployé un rôle IAM pour utiliser Athena pour interroger et analyser les CloudTrail événements de votre compte, lors de l'intégration.

À l'aide de l'enregistrement des modifications, vous pouvez facilement répondre à des questions telles que :

  • Qui (AMS Accelerate Systems ou AMS Accelerate Operators) a accédé à votre compte

  • Quelles modifications ont été apportées par AMS Accelerate à votre compte ?

  • Quand est-ce qu'AMS Accelerate a apporté des modifications à votre compte ?

  • Où consulter les modifications apportées à votre compte

  • Pourquoi AMS Accelerate avait besoin d'apporter les modifications à votre compte

  • Comment modifier les requêtes pour obtenir des réponses à toutes ces questions, y compris pour toute modification non liée à l'AMS

Afficher vos enregistrements de modifications

Pour utiliser les requêtes Athena, connectez-vous à la console de AWS gestion et accédez à la console Athena dans votre région principale. AWS

Note

Si la page de démarrage d'Amazon Athena s'affiche lorsque vous effectuez l'une des étapes, cliquez sur Commencer. Cela peut vous apparaître même si votre infrastructure d'enregistrement des modifications est déjà en place.

  1. Choisissez Workgroup dans le panneau de navigation supérieur de la console Athena.

  2. Choisissez le ams-change-recordgroupe de travail, puis cliquez sur Changer de groupe de travail.

  3. Choisissez dans la zone ams-change-record-databasede liste déroulante de base de données. Le ams-change-record-tabletableau est ams-change-record-databaseinclus.

  4. Choisissez Requêtes enregistrées dans le panneau de navigation supérieur.

  5. La fenêtre Requêtes enregistrées affiche la liste des requêtes fournies par AMS Accelerate, que vous pouvez exécuter. Choisissez la requête que vous souhaitez exécuter dans la liste des requêtes enregistrées. Par exemple, requête ams_session_accesses_v1.

    Pour la liste complète des requêtes AMS Accelerate prédéfinies, voirRequêtes par défaut.

  6. Ajustez le filtre date/heure dans la boîte de l'éditeur de requête selon vos besoins ; par défaut, la requête ne vérifie que les modifications effectuées depuis le dernier jour.

  7. Choisissez Exécuter la requête.

Requêtes par défaut

AMS Accelerate fournit plusieurs requêtes par défaut que vous pouvez utiliser dans la console Athena. Les requêtes par défaut sont répertoriées dans les tableaux suivants.

Note
  • Toutes les requêtes acceptent la plage de dates et d'heures comme filtre facultatif ; par défaut, toutes les requêtes sont exécutées au cours des dernières 24 heures. Pour les informations attendues, voir la sous-section suivante,Modification du filtre date/heure dans les requêtes.

  • Les entrées de paramètres que vous pouvez ou devez modifier sont affichées dans la requête sous forme <PARAMETER_NAME> d'accolades angulaires. Remplacez l'espace réservé et les accolades angulaires par la valeur de votre paramètre.

  • Tous les filtres sont facultatifs. Dans les requêtes, certains filtres facultatifs sont commentés par un double tiret (--) au début de la ligne. Toutes les requêtes seront exécutées sans eux, avec les paramètres par défaut. Si vous souhaitez définir des valeurs de paramètres pour ces filtres facultatifs, supprimez le double tiret (--) au début de la ligne et remplacez le paramètre comme vous le souhaitez.

  • Toutes les requêtes renvoient IAM PincipalId et IAM SessionId apparaissent dans les sorties

  • Le coût calculé pour exécuter une requête dépend du nombre de CloudTrail journaux générés pour le compte. Pour calculer le coût, utilisez le calculateur de prix AWS Athena.

Requêtes prédéfinies
Objet/Description Inputs Outputs

Nom de la requête : ams_access_session_query_v1

Suivi des sessions d'accès AMS Accelerate

Fournit des informations sur une session d'accès AMS Accelerate spécifique. La requête accepte l'ID principal IAM comme filtre facultatif et renvoie l'heure de l'événement, les besoins commerciaux pour accéder au compte, le demandeur, etc.

Vous pouvez filtrer en fonction d'un ID principal IAM spécifique en décommentant la ligne et en remplaçant l'espace réservé IAM PrincipalId par un identifiant spécifique dans l'éditeur de requêtes.

Vous pouvez également répertorier les sessions d'accès non-AMS en supprimant la ligne de filtre useragent dans la clause WHERE de la requête.

(Facultatif) IAM PrincipalId : Identifiant principal IAM de la ressource qui tente d'accéder. Le format est UNIQUE_IDENTIFIER :RESOURCE_NAME. Pour plus de détails, voir Identifiants uniques. Vous pouvez exécuter la requête sans ce filtre pour déterminer l'IAM PrincipalId exact avec lequel vous souhaitez filtrer.

  • EventTime: Heure d'obtention de l'accès

  • EventName: nom de l'événement AWS (AssumeRole)

  • EventRegion: région AWS qui reçoit la demande

  • EventId: ID de CloudTrail l'événement

  • BusinessNeed Type : type de raison commerciale pour accéder au compte. Les valeurs autorisées sont : SupportCase OpsItem, Issue, Text.

  • BusinessNeed: Les entreprises doivent accéder au compte. Par exemple, l'identifiant du dossier de support, l'identifiant de l'élément opérationnel, etc.

  • Demandeur : ID de l'opérateur qui accède au compte ou système d'automatisation qui accède au compte.

  • RequestAccessType: type de demandeur (System, OpsAPI OpsConsole, Unset)

Nom de la requête : ams_events_query_v1

Suivez toutes les actions de mutation effectuées par AMS Accelerate

Renvoie toutes les actions d'écriture effectuées sur le compte à l'aide de ce filtre de rôle AMS Accelerate.

Vous pouvez également suivre les actions de mutation effectuées par des rôles non-AMS en supprimant les lignes de filtre useridentity.arn de la clause WHERE de la requête.

(Facultatif)

Seule la plage de dates et d'heures. Consultez Modification du filtre date/heure dans les requêtes.

  • AccountId: ID de compte AWS

  • RoleArn: RoleArn pour le demandeur

  • EventTime: Heure d'obtention de l'accès

  • EventName: nom de l'événement AWS (AssumeRole)

  • EventRegion: région AWS qui reçoit la demande

  • EventId: ID de CloudTrail l'événement

  • RequestParameters : paramètres de demande pour la demande

  • ResponseElements: éléments de réponse pour la réponse.

  • UserAgent: agent CloudTrail utilisateur AWS

Nom de la requête : ams_instance_access_sessions_query_v1

Suivez les accès aux instances par AMS Accelerate

Renvoie une liste des accès aux instances AMS Accelerate ; chaque enregistrement inclut l'heure de l'événement, la région de l'événement, l'ID d'instance, l'ID principal IAM, l'ID de session IAM, l'ID de session SSM. Vous pouvez utiliser l'ID principal IAM pour obtenir plus de détails sur les besoins de l'entreprise en matière d'accès à l'instance à l'aide de la requête ams_access_sessions_query_v1 Athena. Vous pouvez utiliser l'ID de session SSM pour obtenir plus de détails sur la session d'accès à l'instance, notamment l'heure de début et de fin de la session, les détails du journal et l'utilisation de la console du gestionnaire de AWS session dans la AWS région de l'instance.

Les utilisateurs peuvent également répertorier les accès aux instances non AMS en supprimant la ligne de filtre useridentity dans la clause WHERE de la requête.

Seul datetime range. Consultez Modification du filtre date/heure dans les requêtes.

  • InstanceId: ID de l'instance

  • SSMSession Identifiant : ID de session SSM

  • RoleArn: RoleArn pour le demandeur

  • EventTime: Heure d'obtention de l'accès

  • EventName: nom de l'événement AWS (AssumeRole)

  • EventRegion: région AWS qui reçoit la demande

  • EventId: ID de CloudTrail l'événement

Nom de la requête : ams_privilege_escalation_events_query_v1

Suivez les événements relatifs aux autorisations (escalade) pour les utilisateurs AMS et non-AMS

Fournit une liste d'événements susceptibles d'entraîner directement ou potentiellement une augmentation des privilèges. La requête accepte ActionedBy comme filtre facultatif et renvoie EventName, EventId EventTime, et ainsi de suite. Tous les champs associés à l'événement sont également renvoyés. Les champs sont vides s'ils ne s'appliquent pas à cet événement. Le ActionedBy filtre est désactivé par défaut ; pour l'activer, supprimez « -- » de cette ligne.

Par défaut, le ActionedBy filtre est désactivé (il affiche les événements d'augmentation de privilèges de tous les utilisateurs). Pour afficher les événements relatifs à un utilisateur ou à un rôle en particulier, supprimez le double tiret (--) de la ligne de filtre useridentity dans la clause WHERE et remplacez l'espace réservé par un nom ACTIONEDBY_PUT_USER_NAME_HERE d'utilisateur ou de rôle IAM. Vous pouvez exécuter la requête sans le filtre pour déterminer l'utilisateur exact avec lequel vous souhaitez filtrer.

(Facultatif) ACTIONEDBY_PUT_USER_NAME : nom d'utilisateur de l'utilisateur ActionedBy. Il peut s’agir d’un utilisateur ou d’un rôle IAM. Par exemple, ams-access-admin.

(Facultatif) datetime range. Consultez Modification du filtre date/heure dans les requêtes.

  • AccountId: ID de compte

  • ActionedBy: ActionedBy Nom d'utilisateur

  • EventTime: Heure d'obtention de l'accès

  • EventName: nom de l'événement AWS (AssumeRole).

  • EventRegion: région AWS qui reçoit la demande

  • EventId: ID de CloudTrail l'événement

Nom de la requête : ams_resource_events_query_v1

Suivez les événements de rédaction pour des ressources spécifiques (AMS ou non-AMS)

Fournit une liste des événements effectués sur une ressource spécifique. La requête accepte l'ID de ressource dans les filtres (remplacez l'espace réservé RESOURCE_INFO dans la clause WHERE de la requête) et renvoie toutes les actions d'écriture effectuées sur cette ressource.

(Obligatoire) RESOURCE_INFO : L'identifiant de ressource peut être un identifiant pour n'importe quelle ressource AWS du compte. Ne confondez pas cela avec les ressources ARNs. Par exemple, un ID d'instance pour une EC2 instance, un nom de table pour une table DynamoDB logGroupName , pour CloudWatch un journal, etc.

(Facultatif) datetime range. Consultez Modification du filtre date/heure dans les requêtes.

  • AccountId: ID de compte

  • ActionedBy: ActionedBy Nom d'utilisateur

  • EventTime: Heure d'obtention de l'accès

  • EventName: nom de l'événement AWS (AssumeRole).

  • EventRegion: région AWS qui reçoit la demande

  • EventId: ID de CloudTrail l'événement

Nom de la requête : ams_session_events_query_v1

Suivez les actions d'écriture effectuées par AMS Accelerate au cours d'une session spécifique

Fournit une liste des événements réalisés au cours d'une session spécifique. La requête accepte l'ID principal IAM dans le cadre des filtres (remplacez l'espace réservé PRINCIPAL_ID dans la clause WHERE de la requête) et renvoie toutes les actions d'écriture effectuées sur cette ressource.

(Obligatoire) PRINCIPAL_ID : ID principal de la session. Le format est UNIQUE_IDENTIFIER :RESOURCE_NAME. Pour plus de détails, voir Identifiants uniques. Vous pouvez exécuter la requête « ams_session_ids_by_requester_v1" pour obtenir la liste des principaux IAM d'un demandeur. IDs Vous pouvez également exécuter la requête sans ce filtre pour déterminer l'IAM exact avec PrincipalId lequel vous souhaitez filtrer.

(Facultatif) datetime range. Consultez Modification du filtre date/heure dans les requêtes.

  • AccountId: ID de compte

  • ActionedBy: ActionedBy Nom d'utilisateur

  • EventTime: Heure d'obtention de l'accès

  • EventName: nom de l'événement AWS (AssumeRole)

  • EventRegion: région AWS qui reçoit la demande

  • EventId: ID de CloudTrail l'événement

Nom de la requête : ams_session_ids_by_requester_v1

Suivez l'IAM Principal/Session IDs pour un demandeur spécifique.

La requête accepte le terme « demandeur » (remplacez l'espace réservé Requester dans la clause WHERE de la requête) et renvoie tous les identifiants principaux IAM de ce demandeur pendant la période spécifiée.

(Obligatoire) Requester : ID d'opérateur qui accède au compte (par exemple : alias d'un opérateur), ou système d'automatisation qui accède au compte (par exemple : OsConfiguration, AlarmManager, etc.).

(Facultatif) datetime range. Consultez Modification du filtre date/heure dans les requêtes.

  • IAM PrincipalId - Identifiant principal IAM de la session. Le format est UNIQUE_IDENTIFIER :RESOURCE_NAME. Pour plus de détails, voir Identifiants uniques. Vous pouvez exécuter la requête sans ce filtre pour déterminer l'IAM exact avec PrincipalId lequel vous souhaitez filtrer.

  • IAM SessionId - ID de session IAM pour la session d'accès

  • EventTime: Heure d'obtention de l'accès

Modification du filtre date/heure dans les requêtes

Toutes les requêtes acceptent la plage de dates et d'heures comme filtre facultatif. Par défaut, toutes les requêtes sont exécutées au cours du dernier jour.

Le format utilisé pour le champ datetime est yyyy/MM/dd (par exemple : 01/01/2021). N'oubliez pas qu'il ne stocke que la date et non l'horodatage complet. Pour l'horodatage complet, utilisez le champ eventime, qui stocke l'horodatage au format ISO 8601 yyyy-MM-dd T HH:mm:SS Z (par exemple : 2021-01-01T 23:59:59 Z). Cependant, étant donné que la table est partitionnée dans le champ datetime, vous devez transmettre le filtre datetime et eventtime à la requête. Voir les exemples suivantes.

Note

Pour voir toutes les manières acceptées de modifier la plage, consultez la dernière documentation des fonctions Presto basée sur la version du moteur Athena actuellement utilisée pour les fonctions et les opérateurs de date et d'heure pour voir toutes les méthodes acceptées pour modifier la plage.

Niveau de date : 1 dernier jour ou dernières 24 heures (par défaut) Exemple : si CURRENT_DATE='2021/01/01', le filtre soustraira un jour de la date actuelle et le formatera comme date/heure > '2020/12/31'

datetime > date_format(date_add('day', - 1, CURRENT_DATE), '%Y/%m/%d')

Niveau de date : exemple des 2 derniers mois :

datetime > date_format(date_add('month', - 2, CURRENT_DATE), '%Y/%m/%d')

Niveau de date : entre 2 dates, exemple :

datetime > '2021/01/01' AND datetime < '2021/01/10'

Niveau d'horodatage : exemple des 12 dernières heures :

Partitionnez les données numérisées pour qu'elles durent 1 jour, puis filtrez tous les événements survenus au cours des 12 dernières heures

datetime > date_format(date_add('day', - 1, CURRENT_DATE), '%Y/%m/%d') AND eventtime > date_format(date_add('hour', - 12, CURRENT_TIMESTAMP), '%Y-%m-%dT%H:%i:%sZ')

Niveau d'horodatage : entre 2 horodatages, exemple :

Organisez des événements entre le 1er janvier 2021 à 12 h 00 et le 10 janvier 2021 à 15 h 00.

datetime > '2021/01/01' AND datetime < '2021/01/10' AND eventtime > '2021-01-01T12:00:00Z' AND eventtime < '2021-01-10T15:00:00Z'

Exemples de requêtes par défaut

Name: ams_access_session_query_v1 Description: >- The query provides more information on specific AMS access session. The query accepts IAM Principal Id as an optional filter and returns event time, business need for accessing the account, requester, ... etc. By default; the query filter last day events only, the user can change the datetime filter to search for more wide time range. By default; the IAM PrincipalId filter is disabled. To enable it, remove "-- " from that line. AthenaQueryString: |- /* The query provides list of AMS access sessions during specific time range. The query accepts IAM Principal Id as an optional filter and returns event time, business need for accessing the account, requester, ... etc. By default, the query filters the last day's events only; you can change the "datetime" filter to search for a wider time range. By default; the IAM Principal ID filter is disabled (it shows access sessions for all IAM principals). If you want to only show access sessions for a particular IAM principal ID, remove the double-dash (--) from the "IAM Principal ID" filter line in the WHERE clause of the query, and replace the placeholder "<IAM PrincipalId>" with the specific ID that you want. You can run the query without the filter to determine the exact IAM PrincipalId you want to filter with. By default; the query only shows AMS access sessions. If you also want to show non-AMS access sessions, remove the "useragent" filter in the WHERE clause of the query. For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries */ SELECT json_extract_scalar(responseelements, '$.assumedRoleUser.assumedRoleId') AS "IAM PrincipalId", json_extract_scalar(responseelements, '$.credentials.accessKeyId') AS "IAM SessionId", eventtime AS "EventTime", eventname AS "EventName", awsregion AS "EventRegion", eventid AS "EventId", json_extract_scalar(requestparameters, '$.tags[0].value') AS "BusinessNeed", json_extract_scalar(requestparameters, '$.tags[1].value') AS "BusinessNeedType", json_extract_scalar(requestparameters, '$.tags[2].value') AS "Requester", json_extract_scalar(requestparameters, '$.tags[3].value') AS "AccessRequestType" FROM "{DATABASE NAME HERE}".{TABLENAME HERE} <- This should auto-populate WHERE datetime > date_format(date_add('day', - 1, CURRENT_DATE), '%Y/%m/%d') AND eventname = 'AssumeRole' AND useragent = 'access.managedservices.amazonaws.com' -- AND json_extract_scalar(responseelements, '$.assumedRoleUser.assumedRoleId') = '<IAM PrincipalId>' ORDER BY eventtime InsightsQueryString: |- # The query provides list of AMS access sessions during specific time range. # The query accepts IAM Principal Id as an optional filter and returns event time, business need for accessing the account, requester, ... etc. # # By default; the IAM Principal ID filter is disabled (it shows access sessions for all IAM principals). # If you want to only show access sessions for a particular IAM principal ID, remove the # (#) from # the "IAM Principal ID" filter of the query, and replace the placeholder "<IAM PrincipalId>" with the specific ID that you want. # You can run the query without the filter to determine the exact IAM PrincipalId you want to filter with. # # By default; the query only shows AMS access sessions. If you also want to show non-AMS access sessions, # remove the "useragent" filter from the query. # # For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries filter eventName="AssumeRole" AND userAgent="access.managedservices.amazonaws.com" # | filter responseElements.assumedRoleUser.assumedRoleId= "<IAM PrincipalId>" | sort eventTime desc | fields responseElements.assumedRoleUser.assumedRoleId as IAMPrincipalId, responseElements.credentials.accessKeyId as IAMSessionId, eventTime as EventTime, eventName as EventName, awsRegion as EventRegion, eventID as EventId, requestParameters.tags.0.value as BusinessNeed, requestParameters.tags.1.value as BusinessNeedType, requestParameters.tags.2.value as Requester, requestParameters.tags.3.value as AccessRequestType
ams_events_query_v1.yaml /* The query provides list of events to track write actions for all AMS changes. The query returns all write actions done on the account using that AMS role filter. By default, the query filters the last day's events only; you can change the "datetime" filter to search for a wider time range. You can also track mutating actions done by non-AMS roles by removing the "useridentity.arn" filter lines from the WHERE clause of the query. For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries */ SELECT useridentity.principalId AS "IAM PrincipalId", useridentity.accesskeyid AS "IAM SessionId", useridentity.accountid AS "AccountId", useridentity.arn AS "RoleArn", eventid AS "EventId", eventname AS "EventName", awsregion AS "EventRegion", eventsource AS "EventService", eventtime AS "EventTime", requestparameters As "RequestParameters", responseelements AS "ResponseElements", useragent AS "UserAgent" FROM "{DATABASE NAME HERE}".{TABLENAME HERE} <- This should auto-populate WHERE readonly <> 'true' AND ( LOWER(useridentity.arn) LIKE '%/ams%' OR LOWER(useridentity.arn) LIKE '%/customer_ssm_automation_role%' ) ORDER BY eventtime
ams_instance_access_sessions_query_v1 /* The query provides list of AMS Instance accesses during specific time range. The query returns the list of AMS instance accesses; every record includes the event time, the event AWS Region, the instance ID, the IAM session ID, and the SSM session ID. You can use the IAM Principal ID to get more details on the business need for accessing the instance by using ams_access_session_query_v1 athena query. You can use the SSM session ID to get more details on the instance access session, including the start and end time of the session and log details, using the AWS Session Manager Console in the instance's AWS Region. You can also list non-AMS instance accesses by removing the "useridentity" filter line in the WHERE clause of the query. By default, the query filters the last day's events only; you can change the "datetime" filter to search for a wider time range. For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries */ SELECT useridentity.principalId AS "IAM PrincipalId", useridentity.accesskeyid AS "IAM SessionId", json_extract_scalar(requestparameters, '$.target') AS "InstanceId", json_extract_scalar(responseelements, '$.sessionId') AS "SSM SessionId", eventname AS "EventName", awsregion AS "EventRegion", eventid AS "EventId", eventsource AS "EventService", eventtime AS "EventTime" FROM "{DATABASE NAME HERE}".{TABLENAME HERE} <- This should auto-populate WHERE useridentity.sessionContext.sessionIssuer.arn like '%/ams_%' AND eventname = 'StartSession' ORDER BY eventtime
ams_privilege_escalation_events_query_v1.yaml /* The query provides list of events that can directly or potentially lead to a privilege escalation. The query accepts ActionedBy as an optional filter and returns EventName, EventId, EventTime, ... etc. All fields associated with the event are also returned. Some fields are blank if not applicable for that event. You can use the IAM Session ID to get more details about events happened in that session by using ams_session_events_query_v1 query. By default, the query filters the last day's events only; you can change the "datetime" filter to search for a wider time range. By default, the ActionedBy filter is disabled (it shows privilege escalation events from all users). To show events for a particular user or role, remove the double-dash (--) from the useridentity filter line in the WHERE clause of the query and replace the placeholder "<ACTIONEDBY_PUT_USER_NAME_HERE>" with an IAM user or role name. You can run the query without the filter to determine the exact user you want to filter with. For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries */ SELECT useridentity.principalId AS "IAM PrincipalId", useridentity.accesskeyid AS "IAM SessionId", useridentity.accountid AS "AccountId", reverse(split_part(reverse(useridentity.arn), ':', 1)) AS "ActionedBy", eventname AS "EventName", awsregion AS "EventRegion", eventid AS "EventId", eventtime AS "EventTime", json_extract_scalar(requestparameters, '$.userName') AS "UserName", json_extract_scalar(requestparameters, '$.roleName') AS "RoleName", json_extract_scalar(requestparameters, '$.groupName') AS "GroupName", json_extract_scalar(requestparameters, '$.policyArn') AS "PolicyArn", json_extract_scalar(requestparameters, '$.policyName') AS "PolicyName", json_extract_scalar(requestparameters, '$.permissionsBoundary') AS "PermissionsBoundary", json_extract_scalar(requestparameters, '$.instanceProfileName') AS "InstanceProfileName", json_extract_scalar(requestparameters, '$.openIDConnectProviderArn') AS "OpenIDConnectProviderArn", json_extract_scalar(requestparameters, '$.serialNumber') AS "SerialNumber", json_extract_scalar(requestparameters, '$.serverCertificateName') AS "ServerCertificateName", json_extract_scalar(requestparameters, '$.accessKeyId') AS "AccessKeyId", json_extract_scalar(requestparameters, '$.certificateId') AS "CertificateId", json_extract_scalar(requestparameters, '$.newUserName') AS "NewUserName", json_extract_scalar(requestparameters, '$.newGroupName') AS "NewGroupName", json_extract_scalar(requestparameters, '$.newServerCertificateName') AS "NewServerCertificateName", json_extract_scalar(requestparameters, '$.name') AS "SAMLProviderName", json_extract_scalar(requestparameters, '$.sAMLProviderArn') AS "SAMLProviderArn", json_extract_scalar(requestparameters, '$.sSHPublicKeyId') AS "SSHPublicKeyId", json_extract_scalar(requestparameters, '$.virtualMFADeviceName') AS "VirtualMFADeviceName" FROM "{DATABASE NAME HERE}".{TABLENAME HERE} <- This should auto-populate WHERE ( -- More event names can be found at https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html eventname LIKE 'Add%' OR eventname LIKE 'Attach%' OR eventname LIKE 'Delete%' AND eventname != 'DeleteAccountAlias' OR eventname LIKE 'Detach%' OR eventname LIKE 'Create%' AND eventname != 'CreateAccountAlias' OR eventname LIKE 'Put%' OR eventname LIKE 'Remove%' OR eventname LIKE 'Update%' OR eventname LIKE 'Upload%' OR eventname = 'DeactivateMFADevice' OR eventname = 'EnableMFADevice' OR eventname = 'ResetServiceSpecificCredential' OR eventname = 'SetDefaultPolicyVersion' ) AND eventsource = 'iam.amazonaws.com' ORDER BY eventtime
Name: ams_resource_events_query_v1 Description: >- The query provides list of events done on specific resource. The query accepts resource id as part of the filters, and return all write actions done on that resource. By default; the query list the accesses for last day, the user can change the time range by changing the datetime filter. AthenaQueryString: |- /* The query provides list of events done on specific resource. The query accepts the resource ID as part of the filters (replace the placeholder "<RESOURCE_INFO>" in the WHERE clause of the query), and returns all write actions done on that resource. The resource ID can be an ID for any AWS resource in the account. Example: An instance ID for an EC2 instance, table name for a DynamoDB table, logGroupName for a CloudWatch Log, etc. By default, the query filters the last day's events only; you can change the "datetime" filter to search for a wider time range. For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries */ SELECT useridentity.principalId AS "IAM PrincipalId", useridentity.accesskeyid AS "IAM SessionId", useridentity.accountid AS "AccountId", reverse(split_part(reverse(useridentity.arn), ':', 1)) AS "ActionedBy", eventname AS "EventName", awsregion AS "EventRegion", eventid AS "EventId", eventsource AS "EventService", eventtime AS "EventTime" FROM "{DATABASE NAME HERE}".{TABLENAME HERE} <- This should auto-populate WHERE datetime > date_format(date_add('day', - 1, CURRENT_DATE), '%Y/%m/%d') AND readonly <> 'true' AND ( requestparameters LIKE '%<RESOURCE_INFO>%' OR responseelements LIKE '%<RESOURCE_INFO>%' ) ORDER BY eventtime InsightsQueryString: |- # The query provides list of events done on specific resource. # # The query accepts the resource ID as part of the filters (replace the placeholder "<RESOURCE_INFO>" in the filter of the query), # and returns all write actions done on that resource. The resource ID can be an ID for any AWS resource in the account. # Example: An instance ID for an EC2 instance, table name for a DynamoDB table, logGroupName for a CloudWatch Log, etc. # # For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries filter readOnly=0 | parse @message '"requestParameters":{*}' as RequestParameters | parse @message '"responseElements":{*}' as ResponseElements # | filter RequestParameters like "RESOURCE_INFO" or ResponseElements like "<RESOURCE_INFO>" | fields userIdentity.principalId as IAMPrincipalId, userIdentity.accessKeyId as IAMSessionId, userIdentity.accountId as AccountId, userIdentity.arn as ActionedBy, eventName as EventName, awsRegion as EventRegion, eventID as EventId, eventSource as EventService, eventTime as EventTime | display IAMPrincipalId, IAMSessionId, AccountId, ActionedBy, EventName, EventRegion, EventId, EventService, EventTime | sort eventTime desc
Name: ams_session_events_query_v1 Description: >- The query provides list of events done on specific session. The query accepts IAM Principal Id as part of the filters, and return all write actions done on that resource. By default; the query list the accesses for last day, the user can change the time range by changing the datetime filter. AthenaQueryString: |- /* The query provides a list of events executed on a specific session. The query accepts the IAM principal ID as part of the filters (replace the placeholder "<PRINCIPAL_ID>" in the WHERE clause of the query), and returns all write actions done on that resource. By default, the query filters the last day's events only; you can change the "datetime" filter to search for a wider time range. For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries */ SELECT useridentity.principalId AS "IAM PrincipalId", useridentity.accesskeyid AS "IAM SessionId", useridentity.accountid AS "AccountId", reverse(split_part(reverse(useridentity.arn), ':', 1)) AS "ActionedBy", eventname AS "EventName", awsregion AS "EventRegion", eventsource AS "EventService", eventtime AS "EventTime", requestparameters As "RequestParameters", responseelements AS "ResponseElements", useragent AS "UserAgent" FROM "{DATABASE NAME HERE}".{TABLENAME HERE} <- This should auto-populate WHERE useridentity.principalid = '<PRINCIPAL_ID>' AND datetime > date_format(date_add('day', - 1, CURRENT_DATE), '%Y/%m/%d') AND readonly <> 'true' ORDER BY eventtime InsightsQueryString: |- # The query provides a list of events executed on a specific session. # # The query accepts the IAM principal ID as part of the filters (replace the placeholder "<PRINCIPAL_ID>" in the filter of the query), # and returns all write actions done on that resource. # # For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries filter readOnly=0 AND userIdentity.principalId = "<IAM Principal>" | sort eventTime desc | fields userIdentity.accessKeyId as IAMSessionId, userIdentity.principalId as IAMPrincipalId, userIdentity.accountId as AccountId, userIdentity.arn as ActionedBy, eventName as EventName, awsRegion as EventRegion, eventSource as EventService, eventTime as EventTime, userAgent as UserAgent | parse @message '"requestParameters":{*}' as RequestParameters | parse @message '"responseElements":{*}' as ResponseElements
Name: ams_session_ids_by_requester_v1 Description: >- The query provides list of IAM Principal/Session Ids for specific requester. The query accepts requester and return all IAM Principal/Session Ids by that requester during specific time range. By default; the query list the accesses for last day, the user can change the time range by changing the datetime filter. AthenaQueryString: |- /* The query provides list of IAM Principal IDs for a specific requester. The query accepts the requester (replace placeholder "<Requester>" in the WHERE clause of the query), and returns all IAM Principal IDs by that requester during a specific time range. By default, the query filters the last day's events only; you can change the "datetime" filter to search for a wider time range. For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries */ SELECT json_extract_scalar(responseelements, '$.assumedRoleUser.assumedRoleId') AS "IAM PrincipalId", json_extract_scalar(responseelements, '$.credentials.accessKeyId') AS "IAM SessionIId", eventtime AS "EventTime" FROM "{DATABASE NAME HERE}".{TABLENAME HERE} <- This should auto-populate WHERE datetime > date_format(date_add('day', - 1, CURRENT_DATE), '%Y/%m/%d') AND json_extract_scalar(requestparameters, '$.tags[2].value') = '<Requester>' ORDER BY eventtime InsightsQueryString: |- # The query provides list of IAM Principal IDs for a specific requester. # # The query accepts the requester (replace placeholder "<Requester>" in the filter of the query), # and returns all IAM Principal IDs by that requester during a specific time range. # # For expected inputs and scenarios, refer to AMS Documentation -> Tracking changes in your AMS Accelerate accounts -> Default Queries filter eventName="AssumeRole" AND requestParameters.tags.2.value="<Requester>" | sort eventTime desc | fields responseElements.assumedRoleUser.assumedRoleId as IAMPrincipalId, responseElements.credentials.accessKeyId as IAMSessionId, eventTime as EventTime

Modifier les autorisations d'enregistrement

Les autorisations suivantes sont nécessaires pour exécuter des requêtes d'enregistrement de modification :

  • Athéna

    • Athéna : GetWorkGroup

    • Athéna : StartQueryExecution

    • Athéna : ListDataCatalogs

    • Athéna : GetQueryExecution

    • Athéna : GetQueryResults

    • Athéna : BatchGetNamedQuery

    • Athéna : ListWorkGroups

    • Athéna : UpdateWorkGroup

    • Athéna : GetNamedQuery

    • Athéna : ListQueryExecutions

    • Athéna : ListNamedQueries

  • AWS KMS

    • kms:Decrypt

    • AWS KMS ID clé de AMSCloudTrailLogManagement, ou votre/vos identifiant (s) AWS KMS clé (s), si Accelerate utilise vos CloudTrail événements de suivi, le magasin de données du compartiment Amazon S3 à l'aide du cryptage SSE-KMS.

  • AWS Glue

    • colle : GetDatabase

    • colle : GetTables

    • colle : GetDatabases

    • colle : GetTable

  • Accès en lecture à Amazon S3

    • Banque de CloudTrail données du compartiment Amazon S3 : ams-a AccountId -cloudtrail-, ou le nom de primary region votre compartiment Amazon S3, suivi des événements, magasin de données du compartiment CloudTrail Amazon S3.

  • Accès en écriture sur Amazon S3

    • Résultats de la requête relative aux événements Athena, compartiment Amazon S3 : AccountId ams-a athena-results- primary region