

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

# Contoh kueri CloudTrail log
<a name="query-examples-cloudtrail-logs"></a>

Contoh berikut menunjukkan sebagian kueri yang mengembalikan semua permintaan anonim (tidak ditandatangani) dari tabel yang dibuat untuk log CloudTrail peristiwa. Kueri ini memilih permintaan tersebut tempat`useridentity.accountid`adalah anonim, dan`useridentity.arn`tidak ditentukan:

```
SELECT *
FROM cloudtrail_logs
WHERE 
    eventsource = 's3.amazonaws.com' AND 
    eventname in ('GetObject') AND 
    useridentity.accountid = 'anonymous' AND 
    useridentity.arn IS NULL AND
    requestparameters LIKE '%[your bucket name ]%';
```

Untuk informasi selengkapnya, lihat posting blog AWS Big Data [Menganalisis keamanan, kepatuhan, dan aktivitas operasional menggunakan AWS CloudTrail Amazon Athena](https://aws.amazon.com/blogs/big-data/aws-cloudtrail-and-amazon-athena-dive-deep-to-analyze-security-compliance-and-operational-activity/).

## Kueri bidang bersarang di log CloudTrail
<a name="cloudtrail-logs-nested-fields"></a>

Karena`userIdentity`dan`resources`adalah tipe data Nest, kueri mereka memerlukan perlakuan khusus.

Parameter`userIdentity`objek terdiri dari bersarang`STRUCT`jenis. Ini dapat bertanya menggunakan titik untuk memisahkan bidang, seperti dalam contoh berikut:

```
SELECT 
    eventsource, 
    eventname,
    useridentity.sessioncontext.attributes.creationdate,
    useridentity.sessioncontext.sessionissuer.arn
FROM cloudtrail_logs
WHERE useridentity.sessioncontext.sessionissuer.arn IS NOT NULL
ORDER BY eventsource, eventname
LIMIT 10
```

Parameter`resources`bidang adalah sebuah larik dari`STRUCT`objek. Untuk larik ini, gunakan`CROSS JOIN UNNEST`untuk unnest larik sehingga Anda dapat mengkueri objeknya.

Contoh berikut mengembalikan semua baris tempat sumber daya ARN berakhir di`example/datafile.txt`. Untuk dibaca,[mengganti](https://prestodb.io/docs/current/functions/string.html#replace)fungsi menghapus awal`arn:aws:s3:::`substring dari ARN.

```
SELECT 
    awsregion,
    replace(unnested.resources_entry.ARN,'arn:aws:s3:::') as s3_resource,
    eventname,
    eventtime,
    useragent
FROM cloudtrail_logs t
CROSS JOIN UNNEST(t.resources) unnested (resources_entry)
WHERE unnested.resources_entry.ARN LIKE '%example/datafile.txt'
ORDER BY eventtime
```

Contoh kueri berikut untuk`DeleteBucket`peristiwa. Kueri mengekstraksi nama bucket dan ID akun yang bucket milik`resources`objek.

```
SELECT 
    awsregion,
    replace(unnested.resources_entry.ARN,'arn:aws:s3:::') as deleted_bucket,
    eventtime AS time_deleted,
    useridentity.username, 
    unnested.resources_entry.accountid as bucket_acct_id 
FROM cloudtrail_logs t
CROSS JOIN UNNEST(t.resources) unnested (resources_entry)
WHERE eventname = 'DeleteBucket'
ORDER BY eventtime
```

Untuk informasi selengkapnya tentang unnesting, lihat[Filter array](filtering-arrays.md).

## Kiat untuk menanyakan log CloudTrail
<a name="tips-for-querying-cloudtrail-logs"></a>

Pertimbangkan hal berikut saat menjelajahi data CloudTrail log:
+ Sebelum kueri log, verifikasi bahwa tabel log Anda terlihat sama dengan yang di[Buat tabel untuk CloudTrail log di Athena menggunakan partisi manual](create-cloudtrail-table.md). Jika tidak tabel pertama, menghapus tabel yang ada menggunakan perintah berikut:`DROP TABLE cloudtrail_logs`.
+ Setelah Anda drop tabel yang ada, kembali membuat itu. Untuk informasi selengkapnya, lihat [Buat tabel untuk CloudTrail log di Athena menggunakan partisi manual](create-cloudtrail-table.md).

  Verifikasi bahwa bidang dalam permintaan Athena Anda terdaftar dengan benar. Untuk informasi tentang daftar lengkap bidang dalam CloudTrail catatan, lihat [konten CloudTrail rekaman](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html). 

  Jika kueri Anda termasuk bidang dalam format JSON, seperti`STRUCT`, ekstrak data dari JSON. Untuk informasi selengkapnya, lihat [Ekstrak data JSON dari string](extracting-data-from-JSON.md). 

  Beberapa saran untuk mengeluarkan kueri terhadap tabel Anda CloudTrail :
+ Mulailah dengan melihat pengguna mana yang memanggil operasi API mana dan dari alamat IP sumber mana.
+ Gunakan kueri SQL dasar berikut sebagai templat Anda. Tempelkan kueri ke konsol Athena dan jalankannya.

  ```
  SELECT
   useridentity.arn,
   eventname,
   sourceipaddress,
   eventtime
  FROM cloudtrail_logs
  LIMIT 100;
  ```
+ Ubah kueri untuk mengeksplorasi data Anda lebih lanjut.
+ Untuk meningkatkan performa, sertakan`LIMIT`klausa untuk mengembalikan subset tertentu dari baris.