Mengidentifikasi permintaan yang telah ditetapkan sebelumnya - AWS Panduan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengidentifikasi permintaan yang telah ditetapkan sebelumnya

Mengidentifikasi permintaan yang menggunakan URL presigned

Amazon S3 menyediakan dua mekanisme bawaan untuk memantau penggunaan pada tingkat permintaan: log AWS CloudTrail akses server Amazon S3 dan peristiwa data. Kedua mekanisme tersebut dapat mengidentifikasi penggunaan URL yang telah ditentukan sebelumnya. 

Untuk memfilter log untuk penggunaan URL yang telah ditetapkan sebelumnya, Anda dapat menggunakan jenis otentikasi. Untuk log akses server, periksa bidang Jenis Otentikasi, yang biasanya diberi nama authtype saat didefinisikan dalam tabel Amazon Athena. Untuk CloudTrail, periksa AuthenticationMethoddi additionalEventData lapangan. Dalam kedua kasus, nilai bidang untuk permintaan yang menggunakan URL presigned adalahQueryString, sedangkan AuthHeader nilai untuk sebagian besar permintaan lainnya.

QueryStringpenggunaan tidak selalu dikaitkan dengan URL yang telah ditetapkan sebelumnya. Untuk membatasi penelusuran Anda hanya menggunakan URL yang telah ditentukan sebelumnya, temukan permintaan yang berisi parameter string kueri. X-Amz-Expires Untuk log akses server, periksa request-URI dan cari permintaan yang memiliki X-Amz-Expires parameter dalam string kueri. Untuk CloudTrail, periksa requestParameters elemen untuk X-Amz-Expires elemen.

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

Kueri Athena berikut menerapkan filter ini:

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

Untuk AWS CloudTrail Lake, kueri berikut menerapkan filter ini:

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

Mengidentifikasi jenis permintaan presigned lainnya

Permintaan POST juga memiliki jenis otentikasi unik,HtmlForm, di log akses server Amazon S3 dan. CloudTrail Jenis otentikasi ini kurang umum, jadi Anda mungkin tidak menemukan permintaan ini di lingkungan Anda.

Kueri Athena berikut menerapkan filter untuk: HtmlForm

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

Untuk CloudTrail Lake, kueri berikut menerapkan filter:

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

Mengidentifikasi pola permintaan

Anda dapat menemukan permintaan yang telah ditentukan sebelumnya dengan menggunakan teknik yang dibahas di bagian sebelumnya. Namun, untuk membuat data itu berguna, Anda akan ingin menemukan pola. TOP 10Hasil sederhana untuk kueri Anda mungkin memberikan wawasan, tetapi jika itu tidak cukup, gunakan opsi pengelompokan dalam tabel berikut.

Opsi pengelompokan

Log akses server

CloudTrailDanau

Deskripsi

Agen pengguna

GROUP BY useragent

GROUP BY userAgent

Opsi pengelompokan ini membantu Anda menemukan sumber dan tujuan permintaan. Agen pengguna disediakan oleh pengguna dan tidak dapat diandalkan sebagai mekanisme otentikasi atau otorisasi. Namun, ini dapat mengungkapkan banyak hal jika Anda mencari pola, karena sebagian besar klien menggunakan string unik yang setidaknya sebagian dapat dibaca manusia.

Pemohon

GROUP BY requester

GROUP BY userIdentity['arn']

Opsi pengelompokan ini membantu menemukan kepala sekolah IAM yang menandatangani permintaan. Jika tujuan Anda adalah untuk memblokir permintaan ini atau membuat pengecualian untuk permintaan yang ada, kueri ini memberikan informasi yang cukup untuk tujuan itu. Ketika Anda menggunakan peran sesuai dengan praktik terbaik IAM, peran tersebut memiliki pemilik yang diidentifikasi dengan jelas, dan Anda dapat menggunakan informasi tersebut untuk mengetahui lebih lanjut.

Alamat IP sumber

GROUP BY remoteip

GROUP BY sourceIPAddress

Opsi ini dikelompokkan berdasarkan lompatan terjemahan jaringan terakhir sebelum mencapai Amazon S3.

  • Jika lalu lintas melewati gateway NAT, ini akan menjadi alamat NAT Gateway.

  • Jika lalu lintas melewati gateway internet, ini akan menjadi alamat IP publik yang mengirim lalu lintas ke gateway internet.

  • Jika lalu lintas berasal dari luar AWS, ini akan menjadi alamat internet publik yang terkait dengan asal.

  • Jika melewati titik akhir gateway virtual private cloud (VPC), ini akan menjadi alamat IP instance di VPC.

  • Jika melewati antarmuka virtual publik (VIF), ini akan menjadi IP lokal pemohon atau perantara apa pun seperti server proxy atau firewall yang hanya mengekspos alamat IP-nya.

  • Jika melewati titik akhir VPC antarmuka, ini bisa menjadi alamat IP dari sebuah instance di VPC. Ini juga bisa berupa alamat IP dari VPC lain atau jaringan lokal. Seperti halnya VIF publik, ini bisa berupa alamat IP perantara apa pun.

Data ini berguna jika tujuan Anda adalah memaksakan kontrol jaringan. Anda mungkin harus menggabungkan opsi ini dengan data seperti endpoint (untuk log akses server) atau vpcEndpointId (untuk CloudTrail Lake) untuk memperjelas sumbernya, karena jaringan yang berbeda mungkin menduplikasi alamat IP pribadi.

Nama ember S3

GROUP BY bucket_name

GROUP BY requestParameters['bucketName']

Opsi pengelompokan ini membantu menemukan bucket yang menerima permintaan. Ini membantu Anda mengidentifikasi kebutuhan akan pengecualian.