Seguimiento de los cambios en sus cuentas de AMS Accelerate - Guía del usuario de AMS Accelerate

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Seguimiento de los cambios en sus cuentas de AMS Accelerate

importante

El servicio Change Record dejará de estar disponible a partir del 1 de julio de 2025.

No se pueden incorporar cuentas nuevas al servicio Change Record.

Para consultar CloudTrail los datos de sus cuentas de AMS Accelerate, puede utilizar estos servicios:

  • En AWS CloudTrail, elija Historial de eventos y filtre los eventos mediante los atributos de búsqueda. Puede usar el filtro de rango de tiempo y elegir filtrar el historial de eventos por fuente de eventos según lo s3.amazon.aws.com especificado, o filtrar el historial de eventos por nombre de usuario. Para obtener más información, consulta Cómo trabajar con el historial de CloudTrail eventos.

  • Use AWS CloudTrail Lake para recopilar datos a través de consultas. En, AWS CloudTrail elija Lake y, a continuación, elija Query. Puede crear sus propias consultas, utilizar el generador de consultas o utilizar consultas de ejemplo para recopilar datos basados en eventos. Por ejemplo, puedes preguntar quién eliminó una EC2 instancia de Amazon la semana pasada. Para obtener más información, consulta Cómo crear un lago de datos a partir de una AWS CloudTrail fuente y CloudTrailLake consultas.

  • Crea una tabla de Amazon Athena AWS CloudTrail y establece la ubicación de almacenamiento como el depósito de Amazon S3 asociado a tu ruta. Comprueba que la región de origen de tu ruta y la del bucket de Amazon S3 sean las mismas. En Amazon Athena, utilice el editor de consultas para ejecutar las consultas predeterminadas que Accelerate proporciona para su uso con la consola de Athena. Para obtener más información sobre cómo crear una tabla de Athena para consultar los CloudTrail registros, consulte Registros de consultas AWS CloudTrail.

AWS Managed Services le ayuda a realizar un seguimiento de los cambios realizados por el equipo de AMS Accelerate Operations y la automatización de AMS Accelerate al proporcionar una interfaz consultable mediante la consola Amazon Athena (Athena) y la administración de registros de AMS Accelerate.

Athena es un servicio de consultas interactivo que puede utilizar para analizar datos en Amazon S3 mediante el lenguaje de consulta estructurado (SQL) estándar (consulte Referencia de SQL para Amazon Athena). Athena no requiere un servidor, por lo que no hay una infraestructura para administrar y solo pagará por las consultas que ejecute. AMS Accelerate crea tablas de Athena con particiones diarias sobre CloudTrail registros y proporciona consultas en su AWS región principal y dentro del ams-change-recordgrupo de trabajo. Puede elegir cualquiera de las consultas predeterminadas y ejecutarlas según sea necesario. Para obtener más información sobre los grupos de trabajo de Athena, consulte Cómo funcionan los grupos de trabajo.

nota

Solo Accelerate puede consultar CloudTrail los eventos de su cuenta de Accelerate mediante Athena cuando Accelerate está integrado en el registro de su CloudTrail organización, a menos que el administrador de su organización haya implementado un rol de IAM para usar Athena para consultar y analizar CloudTrail los eventos de su cuenta durante la incorporación.

Con el registro de cambios, puede responder fácilmente a preguntas como las siguientes:

  • ¿Quién (AMS Accelerate Systems o AMS Accelerate Operators) ha accedido a su cuenta

  • ¿Qué cambios ha realizado AMS Accelerate en su cuenta

  • ¿Cuándo realizó AMS Accelerate cambios en su cuenta

  • ¿Dónde ir para ver los cambios realizados en su cuenta

  • ¿Por qué AMS Accelerate necesitaba realizar los cambios en su cuenta

  • ¿Cómo modificar las consultas para obtener respuestas a todas esas preguntas también en el caso de cambios que no sean de AMS

Ver tus registros de cambios

Para usar las consultas de Athena, inicia sesión en la consola de AWS administración y navega hasta la consola de Athena en tu región principal. AWS

nota

Si ve la página Primeros pasos de Amazon Athena mientras realiza alguno de los pasos, haga clic en Comenzar. Es posible que esto le aparezca incluso si su infraestructura de registro de cambios ya está instalada.

  1. Seleccione Grupo de trabajo en el panel de navegación superior de la consola de Athena.

  2. Elija el ams-change-recordgrupo de trabajo y, a continuación, haga clic en Cambiar grupo de trabajo.

  3. Elija una opción ams-change-record-databasedel cuadro combinado de base de datos. ams-change-record-databaseIncluye la ams-change-record-tabletabla.

  4. Seleccione Consultas guardadas en el panel de navegación superior.

  5. La ventana Consultas guardadas muestra una lista de consultas que proporciona AMS Accelerate y que puede ejecutar. Elija la consulta que desee ejecutar en la lista de consultas guardadas. Por ejemplo, la consulta ams_session_accesses_v1.

    Para ver la lista completa de consultas predefinidas de AMS Accelerate, consulte. Consultas predeterminadas

  6. Ajuste el filtro de fecha y hora en el cuadro del editor de consultas según sea necesario; de forma predeterminada, la consulta solo comprueba los cambios del último día.

  7. Elija Ejecutar consulta.

Consultas predeterminadas

AMS Accelerate proporciona varias consultas predeterminadas que puede utilizar en la consola de Athena. Las consultas predeterminadas se muestran en las siguientes tablas.

nota
  • Todas las consultas aceptan el intervalo de fecha y hora como filtro opcional; de forma predeterminada, todas las consultas se ejecutan durante las últimas 24 horas. Para conocer los datos esperados, consulte la siguiente subsección,. Modificación del filtro de fecha y hora en las consultas

  • Las entradas de parámetros que puede o necesita cambiar se muestran en la consulta como ocurre <PARAMETER_NAME> con las llaves angulares. Sustituya el marcador de posición y las llaves angulares por el valor del parámetro.

  • Todos los filtros son opcionales. En las consultas, algunos filtros opcionales se comentan con un doble guión (--) al principio de la línea. Todas las consultas se ejecutarán sin ellos, con los parámetros predeterminados. Si desea especificar los valores de los parámetros para estos filtros opcionales, elimine el doble guión (--) situado al principio de la línea y sustituya el parámetro como desee.

  • Todas las consultas retornan IAM PincipalId y IAM SessionId aparecen en los resultados

  • El coste calculado de ejecutar una consulta depende del número de CloudTrail registros que se generen para la cuenta. Para calcular el costo, utilice la calculadora de precios de AWS Athena.

Consultas predefinidas
Propósito/descripción Entradas Salidas

Nombre de la consulta: ams_access_session_query_v1

Seguimiento de las sesiones de acceso a AMS Accelerate

Proporciona información sobre una sesión de acceso específica a AMS Accelerate. La consulta acepta el ID principal de IAM como filtro opcional y devuelve la hora del evento, la necesidad empresarial de acceder a la cuenta, el solicitante, etc.

Puede filtrar por un ID principal de IAM específico quitando el comentario de la línea y sustituyendo el marcador de posición por un ID específico en el IAM PrincipalId editor de consultas.

También puede enumerar las sesiones de acceso que no sean de AMS quitando la línea de filtro useragent de la cláusula WHERE de la consulta.

(Opcional)IAM PrincipalId: el identificador principal de IAM del recurso al que se intenta acceder. El formato esUNIQUE_IDENTIFIER:RESOURCE_NAME. Para obtener más información, consulte identificadores únicos. Puede ejecutar la consulta sin este filtro para determinar el IAM exacto con PrincipalId el que desea filtrar.

  • EventTime: Hora de obtener el acceso

  • EventName: nombre del evento de AWS (AssumeRole)

  • EventRegion: Región de AWS que recibe la solicitud

  • EventId: ID CloudTrail del evento

  • BusinessNeed Tipo: tipo de motivo comercial para acceder a la cuenta. Los valores permitidos son: SupportCase OpsItem, Issue, Text.

  • BusinessNeed: Las empresas deben acceder a la cuenta. Por ejemplo, Support Case ID, Ops Item ID, etc.

  • Solicitante: ID de operador que accede a la cuenta o sistema de automatización que accede a la cuenta.

  • RequestAccessType: Tipo de solicitante (System, OpsAPI OpsConsole, Unset)

Nombre de la consulta: ams_events_query_v1

Realice un seguimiento de todas las acciones de mutación realizadas por AMS Accelerate

Devuelve todas las acciones de escritura realizadas en la cuenta utilizando ese filtro de roles de AMS Accelerate.

También puede realizar un seguimiento de las acciones de mutación realizadas por roles ajenos a AMS quitando las líneas del filtro useridentity.arn de la cláusula WHERE de la consulta.

(Opcional)

Solo rango de fecha y hora. Consulte Modificación del filtro de fecha y hora en las consultas.

  • AccountId: ID de cuenta de AWS

  • RoleArn: RoleArn para el solicitante

  • EventTime: Hora de obtener el acceso

  • EventName: nombre del evento de AWS (AssumeRole)

  • EventRegion: Región de AWS que recibe la solicitud

  • EventId: ID CloudTrail del evento

  • RequestParameters : Parámetros de solicitud para la solicitud

  • ResponseElements: Elementos de respuesta para la respuesta.

  • UserAgent: Agente de CloudTrail usuario de AWS

Nombre de la consulta: ams_instance_access_sessions_query_v1

Realice un seguimiento de los accesos a las instancias mediante AMS Accelerate

Devuelve una lista de los accesos a las instancias de AMS Accelerate; cada registro incluye la hora del evento, la región del evento, el ID de instancia, el ID principal de IAM, el ID de sesión de IAM y el ID de sesión de SSM. Puede usar el ID principal de IAM para obtener más detalles sobre la necesidad empresarial de acceder a la instancia mediante la consulta ams_access_sessions_query_v1 Athena. Puede usar el ID de sesión SSM para obtener más detalles sobre la sesión de acceso a la instancia, incluida la hora de inicio y finalización de la sesión, los detalles del registro y el uso de la consola del administrador de AWS sesiones en la región de la instancia. AWS

Los usuarios también pueden enumerar los accesos a instancias ajenas a AMS quitando la línea del filtro de identidad de usuario de la cláusula WHERE de la consulta.

Solo datetime range. Consulte Modificación del filtro de fecha y hora en las consultas.

  • InstanceId: ID de instancia

  • SSMSession ID: ID de sesión de SSM

  • RoleArn: RoleArn para el solicitante

  • EventTime: Hora de obtener el acceso

  • EventName: nombre del evento de AWS (AssumeRole)

  • EventRegion: Región de AWS que recibe la solicitud

  • EventId: ID CloudTrail del evento

Nombre de la consulta: ams_privilege_escalation_events_query_v1

Realice un seguimiento de los eventos de permisos (escalamiento) para usuarios de AMS y no usuarios de AMS

Proporciona una lista de eventos que pueden conducir directa o potencialmente a una escalada de privilegios. La consulta se acepta ActionedBy como filtro opcional y devuelve EventName EventId, EventTime, y así sucesivamente. También se devuelven todos los campos asociados al evento. Los campos están en blanco si no son aplicables a ese evento. El ActionedBy filtro está desactivado de forma predeterminada; para activarlo, elimine «--" de esa línea.

De forma predeterminada, el ActionedBy filtro está deshabilitado (mostrará los eventos de escalamiento de privilegios de todos los usuarios). Para mostrar los eventos de un usuario o rol en particular, elimine el doble guión (--) de la línea del filtro de identidad de usuario de la cláusula WHERE y sustituya el marcador ACTIONEDBY_PUT_USER_NAME_HERE de posición por el nombre de un usuario o rol de IAM. Puede ejecutar la consulta sin el filtro para determinar el usuario exacto con el que desea filtrar.

(Opcional)ACTIONEDBY_PUT_USER_NAME: nombre de usuario del usuario ActionedBy. Puede ser un rol o un usuario de IAM. Por ejemplo,. ams-access-admin

(Opcional)datetime range. Consulte Modificación del filtro de fecha y hora en las consultas.

  • AccountId: ID de cuenta

  • ActionedByNombre de usuario ActionedBy :

  • EventTime: Hora de obtener el acceso

  • EventName: Nombre del evento de AWS (AssumeRole).

  • EventRegion: Región de AWS que recibe la solicitud

  • EventId: ID CloudTrail del evento

Nombre de la consulta: ams_resource_events_query_v1

Realice un seguimiento de los eventos de escritura para recursos específicos (AMS o no AMS)

Proporciona una lista de los eventos realizados en un recurso específico. La consulta acepta el identificador del recurso como parte de los filtros (reemplaza el marcador de posición RESOURCE_INFO en la cláusula WHERE de la consulta) y devuelve todas las acciones de escritura realizadas en ese recurso.

(Obligatorio)RESOURCE_INFO: el identificador del recurso puede ser un ID de cualquier recurso de AWS de la cuenta. No hay que confundir esto con un recurso ARNs. Por ejemplo, un ID de instancia para una EC2 instancia, un nombre de tabla para una tabla de DynamoDB logGroupName , para CloudWatch un registro, etc.

(Opcional). datetime range Consulte Modificación del filtro de fecha y hora en las consultas.

  • AccountId: ID de cuenta

  • ActionedByNombre de usuario ActionedBy :

  • EventTime: Hora de obtener el acceso

  • EventName: Nombre del evento de AWS (AssumeRole).

  • EventRegion: Región de AWS que recibe la solicitud

  • EventId: ID CloudTrail del evento

Nombre de la consulta: ams_session_events_query_v1

Realice un seguimiento de las acciones de escritura realizadas por AMS Accelerate durante una sesión específica

Proporciona una lista de los eventos realizados en una sesión específica. La consulta acepta el ID principal de IAM como parte de los filtros (sustituya el marcador PRINCIPAL_ID de posición de la cláusula WHERE de la consulta) y devuelve todas las acciones de escritura realizadas en ese recurso.

(Obligatorio)PRINCIPAL_ID: ID principal de la sesión. El formato esUNIQUE_IDENTIFIER:RESOURCE_NAME. Para obtener más información, consulte identificadores únicos. Puede ejecutar la consulta «ams_session_ids_by_requester_v1" para obtener la lista del principal de IAM de un solicitante. IDs También puede ejecutar la consulta sin este filtro para determinar el IAM exacto con el que desea filtrar. PrincipalId

(Opcional). datetime range Consulte Modificación del filtro de fecha y hora en las consultas.

  • AccountId: ID de cuenta

  • ActionedByNombre de usuario ActionedBy :

  • EventTime: Hora de obtener el acceso

  • EventName: nombre del evento de AWS (AssumeRole)

  • EventRegion: Región de AWS que recibe la solicitud

  • EventId: ID CloudTrail del evento

Nombre de la consulta: ams_session_ids_by_requester_v1

Realice un seguimiento del IAM Principal/Session IDs de un solicitante específico.

La consulta acepta la palabra «solicitante» (sustituya el marcador Requester de posición de la cláusula WHERE de la consulta) y devuelve todos los identificadores principales de IAM de ese solicitante durante el intervalo de tiempo especificado.

(Obligatorio)Requester: ID de operador que accede a la cuenta (por ejemplo: alias de un operador) o sistema de automatización que accede a la cuenta (por ejemplo: OsConfiguration,, AlarmManager etc.).

(Opcional). datetime range Consulte Modificación del filtro de fecha y hora en las consultas.

  • IAM PrincipalId : ID principal de IAM de la sesión. El formato esUNIQUE_IDENTIFIER:. RESOURCE_NAME Para obtener más información, consulte identificadores únicos. Puede ejecutar la consulta sin este filtro para determinar el IAM exacto con el PrincipalId que desea filtrar.

  • IAM SessionId : ID de sesión de IAM para la sesión de acceso

  • EventTime: Hora de obtener el acceso

Modificación del filtro de fecha y hora en las consultas

Todas las consultas aceptan el rango de fecha y hora como filtro opcional. De forma predeterminada, todas las consultas se ejecutan durante el último día.

El formato utilizado para el campo de fecha y hora es yyyy/MM/dd (por ejemplo: 01/01/2021). Recuerde que solo almacena la fecha y no la marca de tiempo completa. Para toda la marca de tiempo, utilice el campo eventime, que almacena la marca de tiempo en el formato ISO 8601 yyyy-MM-dd T HH:mm:ss Z (por ejemplo: 2021-01-01T 23:59:59 Z). Sin embargo, dado que la tabla está dividida en el campo de fecha y hora, tendrás que pasar los filtros de fecha y hora a la consulta. Vea los siguientes ejemplos de .

nota

Para ver todas las formas aceptadas de modificar el rango, consulte la documentación más reciente de la función Presto, basada en la versión del motor Athena que se utiliza actualmente para las funciones y operadores de fecha y hora, para ver todas las formas aceptadas de modificar el rango.

Nivel de fecha: último día o últimas 24 horas (predeterminado) Ejemplo: si CURRENT_DATE='2021/01/01', el filtro restará un día de la fecha actual y le dará el formato de datetime > '2020/12/31'

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

Nivel de fecha: ejemplo de los últimos 2 meses:

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

Nivel de fecha: ejemplo entre 2 fechas:

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

Nivel de marca horaria: ejemplo de las últimas 12 horas:

Particione los datos escaneados para que duren 1 día y, a continuación, filtre todos los eventos de las últimas 12 horas

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')

Nivel de marca de tiempo: ejemplo de entre 2 marcas de tiempo:

Obtenga eventos entre el 1 de enero de 2021 a las 12:00 p. m. y el 10 de enero de 2021 a las 3:00 p. m.

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

Ejemplos de consultas por defecto

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

Cambiar los permisos de registro

Se necesitan los siguientes permisos para ejecutar consultas de registro de cambios:

  • Athena

    • Atenea: GetWorkGroup

    • atenea: StartQueryExecution

    • atenea: ListDataCatalogs

    • atenea: GetQueryExecution

    • atenea: GetQueryResults

    • atenea: BatchGetNamedQuery

    • atenea: ListWorkGroups

    • atenea: UpdateWorkGroup

    • atenea: GetNamedQuery

    • atenea: ListQueryExecutions

    • atenea: ListNamedQueries

  • AWS KMS

    • kms:Decrypt

    • AWS KMS ID de clave de AMSCloudTrailLogManagement, o sus ID de AWS KMS clave, si Accelerate utiliza su almacén de datos de bucket Amazon S3 de CloudTrail Trail Events mediante el cifrado SSE-KMS.

  • AWS Glue

    • pegamento: GetDatabase

    • pegamento: GetTables

    • pegamento: GetDatabases

    • pegamento: GetTable

  • Acceso de lectura a Amazon S3

    • CloudTrail Almacén de datos de bucket de Amazon S3: ams-a AccountId -cloudtrail-, o el nombre de primary region su bucket de Amazon S3, trail events CloudTrail Amazon S3 data store.

  • Acceso de escritura a Amazon S3

    • Resultados de consultas de eventos de Athena bucket de Amazon S3: AccountId ams-a athena-results- primary region