View a markdown version of this page

Mengekspor log dari kumpulan pengguna Amazon Cognito - Amazon Cognito

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

Mengekspor log dari kumpulan pengguna Amazon Cognito

Anda dapat mengonfigurasi kumpulan pengguna untuk mengirim log terperinci dari beberapa aktivitas tambahan ke yang lain Layanan AWS, seperti grup CloudWatch log. Log ini memiliki perincian yang lebih baik daripada yang ada di AWS CloudTrail, dan dapat berguna untuk memecahkan masalah kumpulan pengguna Anda dan menganalisis aktivitas masuk pengguna dengan perlindungan ancaman. Saat Anda ingin melakukan streaming log kesalahan notifikasi SMS dan email, kumpulan pengguna Anda mengirimkan log ERROR tingkat -ke grup CloudWatch log. Saat Anda ingin melakukan streaming log aktivitas masuk pengguna, kumpulan pengguna Anda mengirimkan INFO log tingkat ke grup log, aliran Amazon Data Firehose, atau bucket Amazon S3. Anda dapat menggabungkan kedua opsi dalam kumpulan pengguna.

Hal yang perlu diketahui tentang ekspor log

Dampak biaya

Amazon Data Firehose, Amazon S3, dan CloudWatch Logs dikenakan biaya untuk penyerapan dan pengambilan data. Konfigurasi pencatatan Anda mungkin memengaruhi AWS tagihan Anda. Untuk informasi selengkapnya, lihat berikut ini:

User-activity ekspor log berisi penilaian keamanan dan merupakan fungsi perlindungan ancaman kumpulan pengguna. Amazon Cognito hanya menghasilkan log ini ketika perlindungan ancaman dalam Full-function mode Audit-only atau mode dan kumpulan pengguna Anda menggunakan paket Paket fitur kumpulan pengguna fitur Plus.

Log aktivitas pengguna adalah INFO level

Log aktivitas pengguna yang diekspor hanya pada tingkat INFO kesalahan dan memberikan informasi untuk analisis statistik dan keamanan aktivitas otentikasi. Pesan pada tingkat ERROR kesalahan WARNING dan, misalnya kesalahan pembatasan, tidak disertakan dalam log yang diekspor.

Best-effort pengiriman

Pengiriman log dari Amazon Cognito adalah upaya terbaik. Volume log yang diberikan kumpulan pengguna Anda, dan kuota layanan Anda untuk CloudWatch Log, Amazon S3, dan Firehose dapat memengaruhi pengiriman log.

Log eksternal yang ada tidak terpengaruh

Opsi pencatatan ini tidak menggantikan atau mengubah fungsi log kumpulan pengguna berikut.

  1. CloudTrail log aktivitas pengguna rutin seperti mendaftar dan masuk.

  2. Analisis aktivitas pengguna dalam skala besar dengan CloudWatch metrik.

Secara terpisah, Anda juga dapat menemukan log dari Melihat hasil impor kumpulan pengguna di CloudWatch konsol dan Menyesuaikan alur kerja kumpulan pengguna dengan pemicu Lambda di CloudWatch Log. Amazon Cognito dan Lambda menyimpan log ini dalam grup log yang berbeda dari yang Anda tentukan untuk log aktivitas pengguna.

Hanya berlaku untuk kumpulan pengguna

Tidak ada kemampuan ekspor log untuk kumpulan identitas.

Memerlukan izin pengguna dan peran terkait layanan

Prinsi AWS pal yang mengatur ekspor log harus memiliki izin untuk memodifikasi sumber daya target, seperti yang dijelaskan dalam topik berikut. Amazon Cognito membuat peran terkait layanan atas nama Anda dan mengambil peran untuk mengirimkan log ke sumber daya target.

Untuk informasi selengkapnya tentang model otorisasi untuk mengirim log dari Amazon Cognito, lihat Aktifkan logging dari Layanan AWS dalam Panduan Pengguna Amazon CloudWatch Logs.

Tingkat log eksklusif untuk jenis log

Message-delivery log adalah dari userNotification jenis dan tingkat ERROR kesalahan. Log aktivitas pengguna keamanan tingkat lanjut adalah dari userAuthEvents jenis dan tingkat INFO kesalahan. Anda dapat menggabungkan dua anggotaLogConfigurations, satu userNotification untuk CloudWatch Log, dan satu userAuthEvents untuk Firehose, Amazon S3, atau CloudWatch Logs.

Anda tidak dapat mengirim log aktivitas pengguna ke beberapa tujuan. Anda tidak dapat mengirim log notifikasi pengguna ke tujuan selain CloudWatch Log.

Opsi konfigurasi yang berbeda

Anda hanya dapat mengonfigurasi log notifikasi pengguna dengan API kumpulan pengguna Amazon Cognito AWS atau SDK. Anda dapat mengonfigurasi log aktivitas pengguna keamanan tingkat lanjut dengan API atau di konsol Amazon Cognito. Untuk mengatur keduanya, gunakan API seperti yang ditunjukkan dalam contoh permintaan di SetLogDeliveryConfiguration.

Konfigurasi tambahan diperlukan dengan kebijakan berbasis sumber daya besar

Untuk mengirim log ke grup log dengan kebijakan sumber daya dengan ukuran lebih besar dari 5120 karakter, konfigurasikan grup log dengan jalur yang dimulai dengan/aws/vendedlogs. Untuk informasi selengkapnya, lihat Mengaktifkan pencatatan dari AWS layanan tertentu.

Pembuatan folder secara otomatis di Amazon S3

Saat Anda mengonfigurasi ekspor log perlindungan ancaman ke bucket Amazon S3, Amazon Cognito mungkin membuat AWSLogs folder di bucket Anda. Folder itu tidak dibuat dalam semua kasus, dan konfigurasi dapat berhasil tanpa membuatnya.

Mengekspor kesalahan pengiriman email dan pesan SMS

Untuk kesalahan pengiriman pesan email dan SMS, Anda dapat mengirimkan log pemberitahuan pengguna tingkat Kesalahan dari kumpulan pengguna Anda. Saat mengaktifkan fitur ini, Anda dapat memilih grup log tempat Anda ingin Amazon Cognito mengirim log. Pencatatan notifikasi pengguna berguna ketika Anda ingin mengetahui status email dan pesan SMS yang dikirimkan oleh kumpulan pengguna Anda dengan Amazon SNS dan Amazon SES. Opsi ekspor log ini, tidak seperti ekspor aktivitas pengguna, tidak memerlukan paket fitur Plus.

Anda dapat mengonfigurasi log notifikasi terperinci dengan API kumpulan pengguna Amazon Cognito dalam permintaan SetLogDeliveryConfiguration API. Anda dapat melihat konfigurasi logging dari kumpulan pengguna dalam permintaan GetLogDeliveryConfiguration API. Berikut ini adalah contoh badan permintaan.

{ "LogConfigurations": [ { "CloudWatchLogsConfiguration": { "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:example-user-pool-exported" }, "EventSource": "userNotification", "LogLevel": "ERROR" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Anda harus mengotorisasi permintaan ini dengan AWS kredenSIAL yang memiliki izin berikut.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "CognitoLog", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "CognitoLoggingCWL", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

Berikut ini adalah contoh peristiwa dari kumpulan pengguna. Skema log ini dapat berubah. Beberapa bidang mungkin dicatat dengan nilai null.

{ "eventTimestamp": "1687297330677", "eventSource": "USER_NOTIFICATION", "logLevel": "ERROR", "message": { "details": "String" }, "logSourceId": { "userPoolId": "String" } }

Mengekspor log aktivitas pengguna untuk perlindungan dari ancaman

Kumpulan pengguna dengan paket fitur Plus dan peristiwa aktivitas pengguna log perlindungan ancaman: detail dan penilaian keamanan dari proses masuk pengguna, keluar, dan operasi otentikasi lainnya dengan kumpulan pengguna Anda. Anda mungkin ingin meninjau log aktivitas pengguna di sistem manajemen log Anda sendiri, atau membuat arsip. Anda dapat mengekspor data ini ke grup CloudWatch log Amazon Logs, aliran Amazon Data Firehose, atau bucket Amazon Simple Storage Service (Amazon S3). Dari sana, Anda dapat menyerap data ini ke sistem lain yang menganalisis, menormalkan, atau memproses data dengan cara yang sesuai dengan proses operasional Anda. Untuk mengekspor data jenis ini, kumpulan pengguna Anda harus berada di paket fitur Plus dan perlindungan ancaman harus aktif di kumpulan pengguna Anda.

Dengan informasi di log aktivitas pengguna ini, Anda dapat melihat profil aktivitas masuk pengguna dan manajemen akun. Secara default, Amazon Cognito menangkap peristiwa ini ke penyimpanan yang berbasis di kumpulan pengguna Anda. Contoh berikut adalah contoh peristiwa untuk pengguna yang masuk dan dievaluasi tidak memiliki faktor risiko. Anda dapat mengambil informasi ini dengan operasi AdminListUserAuthEvents API. Berikut ini adalah contoh output:

{ "AuthEvents": [ { "EventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "EventType": "SignIn", "CreationDate": "2024-06-27T10:49:59.139000-07:00", "EventResponse": "Pass", "EventRisk": { "RiskDecision": "NoRisk", "CompromisedCredentialsDetected": false }, "ChallengeResponses": [ { "ChallengeName": "Password", "ChallengeResponse": "Success" } ], "EventContextData": { "IpAddress": "192.0.2.1", "DeviceName": "Chrome 126, Windows 10", "Timezone": "-07:00", "City": "null", "Country": "United States" } } ], "NextToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222#2024-06-27T17:49:59.139Z" }

Anda dapat mengaktifkan ekspor log untuk aktivitas pengguna di konsol Amazon Cognito atau dengan operasi SetLogDeliveryConfiguration API.

Konsol Manajemen AWS
  1. Jika Anda belum memiliki satu yang ingin Anda gunakan, buat bucket S3, aliran Firehose, atau grup CloudWatch log.

  2. Masuk ke konsol Amazon Cognito.

  3. Pilih Kumpulan Pengguna.

  4. Pilih kolam pengguna yang ada dari daftar, atau buat kolam pengguna.

  5. Pilih tab Keamanan lanjutan. Cari Ekspor log aktivitas pengguna dan pilih Edit

  6. Di bawah Status pen catatan, pilih kotak centang di samping Aktifkan ekspor log aktivitas pengguna.

  7. Di bawah Tujuan pencatatan, pilih log Layanan AWS yang ingin Anda tangani: grup CloudWatch log, aliran Amazon Data Firehose, atau bucket S3.

  8. Pilihan Anda akan mengisi pemilih sumber daya dengan jenis sumber daya yang sesuai. Pilih grup log, aliran, atau bucket dari daftar. Anda juga dapat memilih tombol Buat untuk menavigasi ke Konsol Manajemen AWS layanan yang dipilih dan membuat sumber daya baru.

  9. Pilih Simpan perubahan.

API

Pilih satu jenis tujuan untuk log aktivitas pengguna Anda.

Berikut ini adalah contoh SetLogDeliveryConfiguration isi permintaan yang menetapkan aliran Firehose sebagai tujuan log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "FirehoseConfiguration": { "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Berikut ini adalah contoh SetLogDeliveryConfiguration isi permintaan yang menetapkan bucket Amazon S3 sebagai tujuan log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "S3Configuration": { "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Berikut ini adalah contoh SetLogDeliveryConfiguration badan permintaan yang menetapkan grup CloudWatch log sebagai tujuan log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "CloudWatchLogsConfiguration": { "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Pengguna yang mengonfigurasi pengiriman log harus menjadi administrator kumpulan pengguna dan memiliki izin tambahan berikut:

Amazon S3
JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "ManageLogsS3", "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "*" } ] }
CloudWatch Logs
JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "ManageLogsCWL", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
Amazon Data Firehose
JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "ManageUserPoolLogsFirehose", "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }

Berikut ini adalah contoh peristiwa dari kumpulan pengguna. Skema log ini dapat berubah. Beberapa bidang mungkin dicatat dengan nilai null.

{ "eventTimestamp": "1687297330677", "eventSource": "USER_ACTIVITY", "logLevel": "INFO", "message": { "version": "1", "eventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "eventType": "SignUp", "userSub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "userName": "test-user", "userPoolId": "us-west-2_EXAMPLE", "clientId": "1example23456789", "creationDate": "Wed Jul 17 17:25:55 UTC 2024", "eventResponse": "InProgress", "riskLevel": "", "riskDecision": "PASS", "challenges": [], "deviceName": "Other, Other", "ipAddress": "192.0.2.1", "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "idpName": "", "compromisedCredentialDetected": "false", "city": "Seattle", "country": "United States", "eventFeedbackValue": "", "eventFeedbackDate": "", "eventFeedbackProvider": "", "hasContextData": "true" }, "logSourceId": { "userPoolId": "us-west-2_EXAMPLE" } }