Identificación de solicitudes prefirmadas - AWS Guía prescriptiva

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.

Identificación de solicitudes prefirmadas

Identificar las solicitudes que utilizaban una URL prefirmada

Amazon S3 proporciona dos mecanismos integrados para supervisar el uso a nivel de solicitud: los registros de acceso al servidor Amazon S3 y AWS CloudTrail los eventos de datos. Ambos mecanismos pueden identificar el uso de URL prefirmadas. 

Para filtrar los registros en función del uso de URL prefirmadas, puede utilizar el tipo de autenticación. Para los registros de acceso al servidor, examine el campo Tipo de autenticación, que normalmente se denomina authtype cuando se define en una tabla de Amazon Athena. Para CloudTrail, examine AuthenticationMethoden el additionalEventData campo. En ambos casos, el valor del campo para las solicitudes que utilizan direcciones URL prefirmadas esQueryString, mientras que AuthHeader es el valor para la mayoría de las demás solicitudes.

QueryStringel uso no siempre está asociado a las URL prefirmadas. Para restringir la búsqueda únicamente al uso de URL prefirmadas, busca las solicitudes que contengan el parámetro de cadena de consulta. X-Amz-Expires Para los registros de acceso al servidor, examina el URI de la solicitud y busca las solicitudes que tengan un X-Amz-Expires parámetro en la cadena de consulta. Para CloudTrail, examine el requestParameters elemento en busca de un X-Amz-Expires elemento.

{"Records": [{…, "requestParameters": {…, "X-Amz-Expires": "300"}}, …]}

La siguiente consulta de Athena aplica este filtro:

SELECT * FROM {athena-table} WHERE authtype = 'QueryString' AND request_uri LIKE '%X-Amz-Expires=%';

Para AWS CloudTrail Lake, la siguiente consulta aplica este filtro:

SELECT * FROM {data-store-event-id} WHERE additionalEventData['AuthenticationMethod'] = 'QueryString' AND requestParameters['X-Amz-Expires'] IS NOT NULL

Identificar otros tipos de solicitudes prefirmadas

La solicitud POST también tiene un tipo de autenticación únicoHtmlForm, en los registros de acceso al servidor Amazon S3 y CloudTrail. Este tipo de autenticación es menos común, por lo que es posible que no encuentre estas solicitudes en su entorno.

La siguiente consulta de Athena aplica el filtro para: HtmlForm

SELECT * FROM {athena-table} WHERE authtype = 'HtmlForm';

En el caso de CloudTrail Lake, la siguiente consulta aplica el filtro:

SELECT * FROM {data-store-event-id} WHERE additionalEventData['AuthenticationMethod'] = 'HtmlForm'

Identificar los patrones de solicitud

Puede encontrar las solicitudes prefirmadas mediante las técnicas descritas en la sección anterior. Sin embargo, para que esos datos sean útiles, querrás buscar patrones. TOP 10Los resultados simples de la consulta pueden proporcionarte una idea, pero si eso no es suficiente, usa las opciones de agrupación de la siguiente tabla.

Opción de agrupamiento

Registros de acceso al servidor

CloudTrailLago

Descripción

Agente usuario

GROUP BY useragent

GROUP BY userAgent

Esta opción de agrupación le ayuda a encontrar el origen y el propósito de las solicitudes. El agente de usuario lo proporciona el usuario y no es fiable como mecanismo de autenticación o autorización. Sin embargo, puede revelar muchas cosas si se buscan patrones, ya que la mayoría de los clientes utilizan una cadena única que es, al menos parcialmente, legible por humanos.

Solicitante

GROUP BY requester

GROUP BY userIdentity['arn']

Esta opción de agrupación ayuda a encontrar a los directores de IAM que firmaron las solicitudes. Si su objetivo es bloquear estas solicitudes o crear una excepción para las solicitudes existentes, estas consultas proporcionan suficiente información para ello. Si utilizas los roles de acuerdo con las mejores prácticas de IAM, el rol tiene un propietario claramente identificado y puedes usar esa información para obtener más información.

Dirección IP de origen

GROUP BY remoteip

GROUP BY sourceIPAddress

Esta opción se agrupa por el último salto de traducción de red antes de llegar a Amazon S3.

  • Si el tráfico pasa por una puerta de enlace NAT, esta será la dirección de la puerta de enlace NAT.

  • Si el tráfico pasa por una puerta de enlace de Internet, será la dirección IP pública que envió el tráfico a la puerta de enlace de Internet.

  • Si el tráfico se origina desde fuera AWS, será la dirección pública de Internet asociada al origen.

  • Si pasa por un punto final de nube privada virtual (VPC) de puerta de enlace, será la dirección IP de la instancia en la VPC.

  • Si pasa a través de una interfaz virtual pública (VIF), será la IP local del solicitante o de cualquier intermediario, como un servidor proxy o un firewall, que solo exponga su dirección IP.

  • Si pasa a través de un punto final de la VPC de la interfaz, podría ser la dirección IP de una instancia de la VPC. También puede ser una dirección IP de otra VPC o de una red local. Al igual que ocurre con los VIF públicos, puede ser la dirección IP de cualquier intermediario.

Estos datos son útiles si su objetivo es imponer controles de red. Puede que tengas que combinar esta opción con datos como endpoint (para los registros de acceso al servidor) o vpcEndpointId (para CloudTrail Lake) para aclarar la fuente, ya que diferentes redes pueden duplicar las direcciones IP privadas.

Nombre del bucket de S3

GROUP BY bucket_name

GROUP BY requestParameters['bucketName']

Esta opción de agrupación ayuda a encontrar los depósitos que recibieron solicitudes. Esto le ayuda a identificar la necesidad de excepciones.