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 aktivitas lain Layanan AWS, seperti grup CloudWatch log. Log ini memiliki perincian yang lebih halus daripada yang ada di dalamnya AWS CloudTrail, dan dapat berguna untuk memecahkan masalah kumpulan pengguna Anda dan menganalisis aktivitas masuk pengguna dengan fitur keamanan tingkat lanjut. Saat Anda ingin melakukan streaming log SMS dan kesalahan pemberitahuan email, kumpulan pengguna Anda mengirimkan log ERROR tingkat -ke grup CloudWatch log. Saat ingin melakukan streaming log aktivitas login pengguna, kumpulan pengguna akan mengirimkan log INFO tingkat -ke grup log, aliran Amazon Data Firehose, atau bucket Amazon S3. Anda dapat menggabungkan kedua opsi dalam kumpulan pengguna.

Hal-hal yang perlu diketahui tentang ekspor log

Dampak biaya

Amazon Data Firehose, Amazon S3, CloudWatch dan Log mengeluarkan biaya untuk pengambilan dan pengambilan data. Konfigurasi logging Anda dapat memengaruhi AWS tagihan Anda. Untuk informasi selengkapnya, lihat berikut ini:

Ekspor log aktivitas pengguna berisi penilaian keamanan dan merupakan fungsi dari fitur keamanan lanjutan kumpulan pengguna. Amazon Cognito hanya menghasilkan log ini ketika fitur keamanan tingkat lanjut aktif. Fitur-fitur ini meningkatkan biaya per pengguna aktif bulanan (MAU) di kumpulan pengguna Anda. Untuk informasi selengkapnya, lihat Harga Amazon Cognito.

Pengiriman upaya terbaik

Pengiriman log dari Amazon Cognito adalah upaya terbaik. Volume log yang diberikan oleh 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 logging ini tidak menggantikan atau mengubah fungsi log berikut dari kumpulan pengguna.

  1. CloudTrail log aktivitas pengguna rutin seperti sign-up dan sign-in.

  2. Analisis aktivitas pengguna dalam skala 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 di grup log yang berbeda dari yang Anda tentukan untuk log aktivitas pengguna.

Berlaku hanya untuk kumpulan pengguna

Tidak ada kemampuan ekspor log untuk kumpulan identitas.

Memerlukan izin pengguna dan peran terkait layanan

AWS Prinsipal 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 mengasumsikan peran tersebut untuk mengirimkan log ke sumber daya target.

Untuk informasi selengkapnya tentang model otorisasi untuk mengirim log dari Amazon Cognito, lihat Mengaktifkan pencatatan Layanan AWS dari dalam Panduan Pengguna Log CloudWatch Amazon.

Tingkat log eksklusif untuk jenis log

Log pengiriman pesan adalah userNotification jenis dan tingkat kesalahan. ERROR Log aktivitas pengguna keamanan tingkat lanjut adalah userAuthEvents jenis dan tingkat INFO kesalahan. Anda dapat menggabungkan dua anggotaLogConfigurations, satu untuk userNotification ke CloudWatch Log, dan satu userAuthEvents untuk Firehose, Amazon S3, atau Log. CloudWatch

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

Opsi konfigurasi yang berbeda

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

Konfigurasi tambahan diperlukan dengan kebijakan berbasis sumber daya yang besar

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

Mengekspor kesalahan pengiriman email dan SMS pesan

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

Anda dapat mengonfigurasi log notifikasi terperinci dengan kumpulan pengguna Amazon Cognito API dalam permintaan. SetLogDeliveryConfigurationAPI Anda dapat melihat konfigurasi pencatatan kumpulan pengguna dalam GetLogDeliveryConfigurationAPIpermintaan. 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 kredensil yang memiliki izin berikut.

{ "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 sewaktu-waktu. Beberapa bidang mungkin dicatat dengan nilai null.

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

Mengekspor log aktivitas pengguna keamanan tingkat lanjut

Kumpulan pengguna dengan fitur keamanan lanjutan mencatat peristiwa aktivitas pengguna: detail dan penilaian keamanan login 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 memasukkan data ini ke dalam sistem lain yang menganalisis, menormalkan, atau memproses data dengan cara yang sesuai dengan proses operasional Anda. Untuk mengekspor data jenis ini, fitur keamanan lanjutan harus aktif di kumpulan pengguna Anda.

Dengan informasi dalam log aktivitas pengguna ini, Anda dapat melihat profil login pengguna dan aktivitas 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 AdminListUserAuthEvents API operasi. 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. SetLogDeliveryConfigurationAPI

AWS Management Console
  1. Jika Anda belum memiliki yang ingin Anda gunakan, buat bucket S3, aliran Firehose, CloudWatchatau grup log.

  2. Masuk ke konsol Amazon Cognito.

  3. Pilih Kolam Pengguna.

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

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

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

  7. Di bagian Tujuan pencatatan, pilih Layanan AWS yang ingin Anda tangani log: 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 AWS Management Console untuk 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 badan SetLogDeliveryConfiguration 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 badan SetLogDeliveryConfiguration 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 badan SetLogDeliveryConfiguration 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
{ "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
{ "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
{ "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 sewaktu-waktu. 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": "" }, "logSourceId": { "userPoolId": "us-west-2_EXAMPLE" } }