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)
Masuk ke Konsol Manajemen AWS dan buka CloudFront konsol dihttps://console.aws.amazon.com/cloudfront/v4/home
. -
Dari daftar distribusi, pilih distribusi berkemampuan MTLS Anda.
-
Pilih tab Logging.
-
Pilih Tambahkan.
-
Pilih layanan untuk menerima log Anda:
CloudWatch Log
Firehose
Amazon S3
-
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)
-
(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.
-
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 |