Identificazione delle richieste predefinite - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Identificazione delle richieste predefinite

Identificazione delle richieste che hanno utilizzato un URL predefinito

Amazon S3 offre due meccanismi integrati per il monitoraggio dell'utilizzo a livello di richiesta: i log AWS CloudTrail di accesso al server Amazon S3 e gli eventi relativi ai dati. Entrambi i meccanismi possono identificare l'utilizzo di URL predefiniti. 

Per filtrare i log per l'utilizzo di URL predefiniti, puoi utilizzare il tipo di autenticazione. Per i log di accesso al server, esamina il campo Authentication Type, che in genere viene denominato authtype quando è definito in una tabella Amazon Athena. Perché CloudTrail, esamina sul AuthenticationMethodcampo. additionalEventData In entrambi i casi, il valore del campo per le richieste che utilizzano URL predefiniti èQueryString, mentre AuthHeader è il valore per la maggior parte delle altre richieste.

QueryStringl'utilizzo non è sempre associato a URL predefiniti. Per limitare la ricerca solo all'utilizzo di URL predefiniti, trova le richieste che contengono il parametro della stringa di query. X-Amz-Expires Per i log di accesso al server, esamina Request-URI e cerca le richieste che hanno un X-Amz-Expires parametro nella stringa di query. Per CloudTrail, esamina l'requestParameterselemento alla ricerca di un elemento. X-Amz-Expires

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

La seguente query Athena applica questo filtro:

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

Per AWS CloudTrail Lake, la seguente query applica questo filtro:

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

Identificazione di altri tipi di richieste predefinite

La richiesta POST ha anche un tipo di autenticazione univocoHtmlForm, nei log di accesso al server Amazon S3 e. CloudTrail Questo tipo di autenticazione è meno comune, quindi potresti non trovare queste richieste nel tuo ambiente.

La seguente query Athena applica il filtro per: HtmlForm

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

Per CloudTrail Lake, la seguente query applica il filtro:

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

Identificazione dei modelli di richiesta

È possibile trovare le richieste predefinite utilizzando le tecniche illustrate nella sezione precedente. Tuttavia, per rendere utili questi dati, ti consigliamo di trovare degli schemi. I semplici TOP 10 risultati della tua query potrebbero fornire un'idea, ma se ciò non bastasse, utilizza le opzioni di raggruppamento nella tabella seguente.

Opzione di raggruppamento

Registri di accesso al server

CloudTrailLago

Descrizione

Agente utente

GROUP BY useragent

GROUP BY userAgent

Questa opzione di raggruppamento consente di trovare l'origine e lo scopo delle richieste. L'agente utente è fornito dall'utente e non è affidabile come meccanismo di autenticazione o autorizzazione. Tuttavia, può rivelare molto se stai cercando modelli, perché la maggior parte dei client utilizza una stringa unica che è almeno parzialmente leggibile dall'uomo.

Richiedente

GROUP BY requester

GROUP BY userIdentity['arn']

Questa opzione di raggruppamento aiuta a trovare i responsabili IAM che hanno firmato le richieste. Se il tuo obiettivo è bloccare queste richieste o creare un'eccezione per le richieste esistenti, queste query forniscono informazioni sufficienti a tale scopo. Quando utilizzi i ruoli in conformità alle best practice IAM, il ruolo ha un proprietario chiaramente identificato e puoi utilizzare tali informazioni per saperne di più.

Indirizzo IP di origine

GROUP BY remoteip

GROUP BY sourceIPAddress

Questa opzione raggruppa in base all'ultimo hop di traduzione di rete prima di raggiungere Amazon S3.

  • Se il traffico passa attraverso un gateway NAT, questo sarà l'indirizzo del gateway NAT.

  • Se il traffico passa attraverso un gateway Internet, questo sarà l'indirizzo IP pubblico che ha inviato il traffico al gateway Internet.

  • Se il traffico proviene dall'esterno AWS, questo sarà l'indirizzo Internet pubblico associato all'origine.

  • Se passa su un endpoint VPC (Virtual Private Cloud) gateway, questo sarà l'indirizzo IP dell'istanza nel VPC.

  • Se passa attraverso un'interfaccia virtuale pubblica (VIF), questo sarà l'IP locale del richiedente o di qualsiasi intermediario, ad esempio un server proxy o un firewall che espone solo il suo indirizzo IP.

  • Se passa attraverso un endpoint VPC di interfaccia, questo potrebbe essere l'indirizzo IP di un'istanza nel VPC. Potrebbe anche essere un indirizzo IP di un altro VPC o di una rete locale. Come per le VIF pubbliche, questo potrebbe essere l'indirizzo IP di qualsiasi intermediario.

Questi dati sono utili se il tuo obiettivo è imporre controlli di rete. Potrebbe essere necessario combinare questa opzione con dati come endpoint (per i registri di accesso al server) o vpcEndpointId (per CloudTrail Lake) per chiarire l'origine, poiché reti diverse potrebbero duplicare gli indirizzi IP privati.

nome del bucket S3

GROUP BY bucket_name

GROUP BY requestParameters['bucketName']

Questa opzione di raggruppamento consente di trovare i bucket che hanno ricevuto richieste. Ciò consente di identificare la necessità di eccezioni.