Observabilitas menggunakan log koneksi - Amazon CloudFront

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

Observabilitas menggunakan log koneksi

CloudFront log koneksi memberikan visibilitas terperinci ke dalam peristiwa otentikasi TLS timbal balik, memungkinkan Anda memantau validasi sertifikat, melacak upaya koneksi, dan memecahkan masalah otentikasi.

Apa itu log koneksi?

Log koneksi menangkap informasi terperinci tentang jabat tangan TLS dan validasi sertifikat untuk distribusi yang mendukung TLS bersama. Tidak seperti log akses standar yang merekam informasi permintaan HTTP, log koneksi berfokus secara khusus pada fase pembentukan koneksi TLS, termasuk:

  • Status koneksi (sukses/kegagalan)

  • Detail sertifikat klien

  • Protokol TLS dan informasi sandi

  • Metrik waktu koneksi

  • Data kustom dari Fungsi Koneksi

Log ini memberikan visibilitas komprehensif ke dalam peristiwa otentikasi berbasis sertifikat, membantu Anda memantau keamanan, memecahkan masalah, dan memenuhi persyaratan kepatuhan.

Aktifkan log koneksi

Log koneksi hanya tersedia untuk distribusi dengan otentikasi TLS timbal balik diaktifkan. Anda dapat mengirim log koneksi ke beberapa tujuan termasuk CloudWatch Log, Amazon Data Firehose, dan Amazon S3.

Prasyarat

Sebelum mengaktifkan log koneksi:

  • Konfigurasikan TLS timbal balik untuk distribusi Anda CloudFront

  • Aktifkan log koneksi untuk CloudFront distribusi Anda

  • Pastikan Anda memiliki izin yang diperlukan untuk tujuan pencatatan yang Anda pilih

  • Untuk pengiriman lintas akun, konfigurasikan kebijakan IAM yang sesuai

Untuk mengaktifkan log koneksi (Konsol)

  1. Masuk ke Konsol Manajemen AWS dan buka CloudFront konsol dihttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Dari daftar distribusi, pilih distribusi berkemampuan MTLS Anda.

  3. Pilih tab Logging.

  4. Pilih Tambahkan.

  5. Pilih layanan untuk menerima log Anda:

    • CloudWatch Log

    • Firehose

    • Amazon S3

  6. Untuk Tujuan, pilih sumber daya untuk layanan yang Anda pilih:

    • Untuk CloudWatch Log, masukkan nama grup Log

    • Untuk Firehose, pilih aliran pengiriman Firehose

    • Untuk Amazon S3, masukkan nama Bucket (opsional dengan awalan)

  7. (Opsional) Konfigurasikan pengaturan tambahan:

    • Pemilihan bidang: Pilih bidang log tertentu untuk disertakan.

    • Format keluaran: Pilih dari JSON, Plain, w3c, Raw, atau Parket (hanya S3).

    • Pembatas bidang: Tentukan cara memisahkan bidang log.

  8. Pilih Save changes (Simpan perubahan)

Untuk mengaktifkan log koneksi (AWS CLI)

Contoh berikut menunjukkan cara mengaktifkan log koneksi menggunakan CloudWatch API:

# Step 1: Create a delivery source aws logs put-delivery-source \ --name "cf-mtls-connection-logs" \ --resource-arn "arn:aws:cloudfront::123456789012:distribution/E1A2B3C4D5E6F7" \ --log-type CONNECTION_LOGS # Step 2: Create a delivery destination aws logs put-delivery-destination \ --name "s3-destination" \ --delivery-destination-configuration \ "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket1" # Step 3: Create the delivery aws logs create-delivery \ --delivery-source-name "cf-mtls-connection-logs" \ --delivery-destination-arn "arn:aws:logs:us-east-1:123456789012:delivery-destination:s3-destination"
catatan

Saat menggunakan CloudWatch API, Anda harus menentukan Wilayah AS Timur (Virginia N.) (us-east-1) bahkan saat mengirimkan log ke wilayah lain.

Bidang log koneksi

Log koneksi mencakup informasi terperinci tentang setiap upaya koneksi TLS:

Bidang Deskripsi Contoh
eventTimestamp Stempel waktu ISO 8601 saat koneksi dibuat atau gagal 1731620046814
connectionId Pengidentifikasi unik untuk koneksi TLS oLHiEKbQSn8lkvJfA3D4gFowK3_iZ0g4i5nMUjE1Akod8TuAzn5nzg==
connectionStatus

Status upaya koneksi mTLS.

Success atau Failed
clientIp Alamat IP dari klien penghubung 2001:0db8:85a3:0000:0000:8a2e:0370:7334
clientPort Port yang digunakan oleh klien 12137
serverIp Alamat IP dari server CloudFront tepi 99.84.71.136
distributionId CloudFront ID distribusi E2DX1SLDPK0123
distributionTenantId CloudFront ID penyewa distribusi (bila berlaku) dt_2te1Ura9X3R2iCGNjW123
tlsProtocol Versi protokol TLS digunakan TLSv1.3
tlsCipher TLS cipher suite digunakan untuk koneksi TLS_AES_128_GCM_SHA256
tlsHandshakeDuration Durasi jabat tangan TLS dalam milidetik 153
tlsSni Nilai Indikasi Nama Server dari jabat tangan TLS d111111abcdef8.cloudfront.net
clientLeafCertSerialNumber Nomor seri sertifikat klien 00:b1:43:ed:93:d2:d8:f3:9d
clientLeafCertSubject Bidang subjek sertifikat klien C=US, ST=WA, L=Seattle, O=Amazon.com, OU=CloudFront, CN=client.test.mtls.net
clientLeafCertIssuer Bidang penerbit sertifikat klien C=US, ST=WA, L=Seattle, O=Amazon.com, OU=CloudFront, CN=test.mtls.net
clientLeafCertValidity Masa berlaku sertifikat klien NotBefore=2025-06-05T23:28:21Z;NotAfter=2125-05-12T23:28:21Z
connectionLogCustomData Data kustom ditambahkan melalui Fungsi Koneksi REVOKED:00:b1:43:ed:93:d2:d8:f3:9d

Kode kesalahan koneksi

Failed:ClientCertMaxChainDepthExceeded Failed:ClientCertMaxSizeExceeded Failed:ClientCertUntrusted Failed:ClientCertNotYetValid Failed:ClientCertExpired Failed:ClientCertTypeUnsupported Failed:ClientCertInvalid Failed:ClientCertIntentInvalid Failed:ClientCertRejected Failed:ClientCertMissing Failed:TcpError Failed:TcpTimeout Failed:ConnectionFunctionError Failed:ConnectionFunctionDenied Failed:Internal Failed:UnmappedConnectionError

Ketika koneksi gagal, CloudFront mencatat kode alasan tertentu:

Kode Deskripsi
ClientCertMaxChainDepthExceeded Kedalaman rantai sertifikat maksimum terlampaui
ClientCertMaxSizeExceeded Ukuran sertifikat maksimum terlampaui
ClientCertUntrusted Sertifikat tidak dipercaya
ClientCertNotYetValid Sertifikat belum valid
ClientCertExpired Sertifikat kedaluwarsa
ClientCertTypeUnsupported Jenis sertifikat tidak didukung
ClientCertInvalid Sertifikat tidak valid
ClientCertIntentInvalid Maksud sertifikat tidak valid
ClientCertRejected Sertifikat ditolak oleh validasi kustom
ClientCertMissing Sertifikat hilang
TcpError

Terjadi kesalahan saat mencoba membuat koneksi

TcpTimeout

Koneksi tidak dapat dibuat dalam periode batas waktu

ConnectionFunctionError

Pengecualian yang tidak tertangkap dilemparkan selama eksekusi Fungsi Koneksi

Internal

Terjadi kesalahan layanan internal

UnmappedConnectionError

Terjadi kesalahan yang tidak termasuk dalam kategori lainnya