View a markdown version of this page

Pencatatan eksekusi untuk REST API - Amazon API Gateway

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

Pencatatan eksekusi untuk REST API

Pencatatan eksekusi mencatat tindakan yang dilakukan API Gateway untuk memproses permintaan API. Data yang dicatat termasuk kesalahan, pelacakan eksekusi, nilai parameter permintaan dan respons atau muatan, data yang digunakan oleh otorisasi Lambda, apakah kunci API diperlukan, dan apakah rencana penggunaan diaktifkan. API Gateway menyunting header otorisasi, nilai kunci API, dan parameter permintaan sensitif serupa dari data yang dicatat.

Untuk meningkatkan postur keamanan Anda, kami sarankan Anda menggunakan pencatatan eksekusi di INFO level ERROR atau. Anda mungkin perlu melakukan ini untuk mematuhi berbagai kerangka kepatuhan. Untuk informasi selengkapnya, lihat kontrol Amazon API Gateway di Panduan AWS Security Hub Pengguna.

Pencatatan eksekusi standar

Saat Anda mengaktifkan logging eksekusi di panggung, API Gateway secara otomatis membuat dan mengelola grup CloudWatch log Log. Grup log diberi namaAPI-Gateway-Execution-Logs_{rest-api-id}/{stage_name}. Dalam setiap grup log, log dibagi menjadi aliran log yang diurutkan berdasarkan Waktu Peristiwa Terakhir.

Dengan logging eksekusi standar:

  • Peristiwa log dipotong menjadi 1 KB.

  • API Gateway mengelola nama grup log. Anda tidak dapat memilih nama grup log atau mengirim log langsung ke Amazon S3 atau Firehose.

Untuk mengaktifkan pencatatan eksekusi standar, setel loggingLevel di panggung Anda ke ERROR atauINFO. Tidak ada konfigurasi lain yang diperlukan.

Izin

Untuk mengaktifkan CloudWatch Log, Anda harus memberikan izin API Gateway untuk membaca dan menulis log CloudWatch untuk akun Anda. Kebijakan AmazonAPIGatewayPushToCloudWatchLogs terkelola memiliki semua izin yang diperlukan.

Buat peran IAM apigateway.amazonaws.com sebagai entitas tepercaya, lampirkan kebijakan sebelumnya, dan atur peran IAM ARN pada WatchRoleArn properti cloud di Akun Anda. Anda harus mengatur properti ini secara terpisah untuk setiap AWS Wilayah di mana Anda ingin mengaktifkan CloudWatch Log.

catatan

Panggilan API Gateway AWS Security Token Service untuk mengambil peran IAM, jadi pastikan itu AWS STS diaktifkan untuk Wilayah. Untuk informasi selengkapnya, lihat Mengel AWS ola STS di AWS Wilayah.

Aktifkan pencatatan eksekusi (konsol)

Sebelum Anda mulai, gunakan API ke tahap dan konfigurasikan ARN peran CloudWatch Logs yang sesuai untuk akun Anda.

  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pada panel navigasi utama, pilih Peng aturan, lalu di bawah Logging, pilih Edit.

  3. Untuk peran CloudWatch log ARN, masukkan ARN dari peran IAM dengan izin yang sesuai. Anda perlu melakukan ini sekali untuk setiap Akun AWS yang membuat API menggunakan API Gateway.

  4. Di panel navigasi utama, pilih API, pilih REST API Anda, lalu pilih Tahapan.

  5. Pilih panggung, lalu di bagian Log dan pelacakan, pilih Edit.

  6. Pilih level logging dari menu tarik CloudWatch - turun Logs:

    • N onaktif — API Gateway tidak mencatat permintaan untuk tahap ini.

    • Hanya kesalahan — API Gateway mencatat kesalahan saja.

    • Kesalahan dan log info — API Gateway mencatat semua peristiwa.

  7. (Opsional) Pilih Pelac akan data untuk mencatat permintaan lengkap dan data respons. Hal ini dapat mengakibatkan pencatatan data sensitif.

    catatan

    Sebaiknya jangan gunakan Pelac akan data untuk API produksi.

  8. (Opsional) Pilih Metrik terperinci untuk mengaktifkan CloudWatch metrik terperinci. Untuk informasi selengkapnya, lihat Pantau eksekusi REST API dengan CloudWatch metrik Amazon.

  9. Pilih Simpan perubahan.

Anda tidak perlu menyebarkan ulang API saat memperbarui pengaturan tahap.

Aktifkan pencatatan eksekusi (CloudFormation)

Gunakan MethodSettings properti pada sumber daya panggung untuk mengaktifkan pencatatan eksekusi.

TestStage: Type: AWS::ApiGateway::Stage Properties: StageName: test RestApiId: !Ref MyAPI DeploymentId: !Ref Deployment MethodSettings: - ResourcePath: "/*" HttpMethod: "*" LoggingLevel: INFO

Untuk mengaktifkan CloudWatch Log, Anda harus memberikan izin API Gateway untuk membaca dan menulis log CloudWatch untuk akun Anda. Untuk mempelajari selengkapnya, lihat Mengaitkan akun dengan peran IAM di Panduan AWS CloudFormation Pengguna.

Pengiriman Amazon CloudWatch Logs untuk log eksekusi

Pen CloudWatch giriman Amazon Logs menyediakan jalur alternatif untuk log eksekusi. Alih-alih menulis ke grup Gateway-managed log API, Anda mengonfigurasi pengiriman yang mengirimkan log eksekusi ke tujuan yang Anda miliki dan kendalikan.

Dengan pengiriman Amazon CloudWatch Logs:

  • Peristiwa log dapat mencapai 1 MB, menangkap data permintaan dan respons yang lebih lengkap. Muatan yang melebihi 1 MB masih terpotong.

  • Anda memilih tujuan: grup CloudWatch log Log Anda sendiri, bucket Amazon S3, atau aliran Firehose.

  • Anda dapat mengirim log ke beberapa tujuan secara bersamaan.

  • Anda mengontrol konfigurasi grup log, termasuk penamaan dan retensi.

penting

CloudWatch Pengiriman log menggantikan logging eksekusi standar. Saat Anda mengonfigurasi pengiriman, API Gateway berhenti menulis ke grup log yang dikelola secara otomatis. Anda tidak dapat menggunakan kedua jalur secara bersamaan untuk tahap yang sama.

Saat Anda membuat pengiriman, API Gateway merutekan log eksekusi ke tujuan yang dikonfigurasi alih-alih grup log yang dikelola secara otomatis. Saat Anda menghapus pengiriman, log eksekusi secara otomatis melanjutkan aliran ke grup log yang dikelola secara otomatis. Tidak ada perubahan konfigurasi API Gateway yang diperlukan di luar prasyarat pengaturan loggingLevel ke ERROR atauINFO.

catatan

Pengiriman log adalah upaya terbaik. Dalam kasus yang jarang terjadi, beberapa peristiwa log mungkin tidak dikirimkan.

Awas

Sebelum Anda mengaktifkan pengiriman log, perbarui dasbor, alarm, atau filter langganan yang mereferensikan grup log yang dikelola otomatis ()API-Gateway-Execution-Logs_{rest-api-id}/{stage_name}. Setelah pengiriman aktif, grup log tersebut tidak lagi menerima peristiwa baru.

Tabel berikut membandingkan pencatatan eksekusi standar dengan pengiriman Amazon CloudWatch Logs.

Pencatatan eksekusi standar Pengiriman Amazon CloudWatch Logs
Ukuran acara log maks 1KB 1 MB
Tujuan CloudWatch Log (grup log terkelola) CloudWatch Log, Amazon S3, Firehose (sumber daya Anda sendiri)
Beberapa tujuan Tidak Ya
Nama grup log Diperbaiki oleh API Gateway Anda memilih
Pengaturan Otomatis saat logging diaktifkan Memerlukan pembuatan pengiriman Amazon CloudWatch Logs
Prasyarat Set loggingLevel el ke ERROR atau INFO Set loggingLevel el ke ERROR atau INFO
catatan

Jika Anda menyet loggingLevel el ke OFF setelah mengonfigurasi pengiriman, tidak ada log eksekusi yang dihasilkan atau dikirimkan. Tujuan pengiriman Anda tetap dikonfigurasi tetapi tidak menerima data.

Untuk membuat pengiriman, lihatBuat pengiriman log untuk log eksekusi REST API.