Identificação de solicitações pré-assinadas - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Identificação de solicitações pré-assinadas

Identificação de solicitações que usaram um URL pré-assinado

O Amazon S3 fornece dois mecanismos integrados para monitorar o uso em um nível de solicitação: registros AWS CloudTrail de acesso ao servidor Amazon S3 e eventos de dados. Ambos os mecanismos podem identificar o uso de URL pré-assinado. 

Para filtrar os registros de uso de URL pré-assinada, você pode usar o tipo de autenticação. Para registros de acesso ao servidor, examine o campo Tipo de autenticação, que normalmente é denominado authtype quando definido em uma tabela do Amazon Athena. Pois CloudTrail, examine AuthenticationMethodem additionalEventData campo. Em ambos os casos, o valor do campo para solicitações que usam URLs preassinadas éQueryString, enquanto AuthHeader é o valor para a maioria das outras solicitações.

QueryStringo uso nem sempre está associado a URLs pré-assinados. Para restringir sua pesquisa somente ao uso de URL pré-assinada, encontre solicitações que contenham o parâmetro X-Amz-Expires da sequência de caracteres de consulta. Para registros de acesso ao servidor, examine Request-URI e procure solicitações que tenham um X-Amz-Expires parâmetro na string de consulta. Para CloudTrail, examine o requestParameters elemento em busca de um X-Amz-Expires elemento.

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

A seguinte consulta do Athena aplica esse filtro:

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

Para AWS CloudTrail Lake, a consulta a seguir aplica esse filtro:

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

Identificação de outros tipos de solicitações pré-assinadas

A solicitação POST também tem um tipo de autenticação exclusivo,HtmlForm, nos registros de acesso ao servidor Amazon S3 e. CloudTrail Esse tipo de autenticação é menos comum, então talvez você não encontre essas solicitações em seu ambiente.

A consulta do Athena a seguir aplica o filtro para: HtmlForm

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

Para CloudTrail Lake, a consulta a seguir aplica o filtro:

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

Identificação de padrões de solicitação

Você pode encontrar solicitações pré-assinadas usando as técnicas discutidas na seção anterior. No entanto, para tornar esses dados úteis, você deve encontrar padrões. TOP 10Os resultados simples da sua consulta podem fornecer uma visão, mas se isso não for suficiente, use as opções de agrupamento na tabela a seguir.

Opção de agrupamento

Registros de acesso ao servidor

CloudTrailLago

Descrição

Agente de usuário

GROUP BY useragent

GROUP BY userAgent

Essa opção de agrupamento ajuda você a encontrar a origem e a finalidade das solicitações. O agente do usuário é fornecido pelo usuário e não é confiável como mecanismo de autenticação ou autorização. No entanto, isso pode revelar muito se você estiver procurando por padrões, porque a maioria dos clientes usa uma string exclusiva que é pelo menos parcialmente legível por humanos.

Solicitante

GROUP BY requester

GROUP BY userIdentity['arn']

Essa opção de agrupamento ajuda a encontrar diretores do IAM que assinaram solicitações. Se sua meta é bloquear essas solicitações ou criar uma exceção para solicitações existentes, essas consultas fornecem informações suficientes para essa finalidade. Quando você usa funções de acordo com as melhores práticas do IAM, a função tem um proprietário claramente identificado, e você pode usar essas informações para saber mais.

Endereço IP de origem

GROUP BY remoteip

GROUP BY sourceIPAddress

Essa opção é agrupada pelo último salto de tradução de rede antes de chegar ao Amazon S3.

  • Se o tráfego passar por um gateway NAT, esse será o endereço do gateway NAT.

  • Se o tráfego passar por um gateway da Internet, esse será o endereço IP público que enviou o tráfego para o gateway da Internet.

  • Se o tráfego tiver origem externa AWS, esse será o endereço público da Internet associado à origem.

  • Se ele passar por um endpoint de gateway de nuvem privada virtual (VPC), esse será o endereço IP da instância na VPC.

  • Se passar por uma interface virtual pública (VIF), esse será o IP local do solicitante ou de qualquer intermediário, como um servidor proxy ou firewall, que expõe somente seu endereço IP.

  • Se ele passar por uma interface VPC endpoint, esse pode ser o endereço IP de uma instância na VPC. Também pode ser um endereço IP de outra VPC ou de uma rede local. Assim como acontece com os VIFs públicos, esse pode ser o endereço IP de qualquer intermediário.

Esses dados são úteis se seu objetivo é impor controles de rede. Talvez seja necessário combinar essa opção com dados como endpoint (para registros de acesso ao servidor) ou vpcEndpointId (para CloudTrail Lake) para esclarecer a origem, pois redes diferentes podem duplicar endereços IP privados.

Nome do bucket S3

GROUP BY bucket_name

GROUP BY requestParameters['bucketName']

Essa opção de agrupamento ajuda a encontrar buckets que receberam solicitações. Isso ajuda você a identificar a necessidade de exceções.