Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Memecahkan masalah otorisasi Anda

Mode fokus
Memecahkan masalah otorisasi Anda - AWS IoT Core

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

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

Topik ini membahas masalah umum yang dapat menyebabkan masalah dalam alur kerja otentikasi khusus dan langkah-langkah untuk menyelesaikannya. Untuk memecahkan masalah dengan paling efektif, aktifkan CloudWatch log untuk AWS IoT Core dan atur level log ke DEBUG. Anda dapat mengaktifkan CloudWatch log di AWS IoT Core konsol (https://console.aws.amazon.com/iot/). Untuk informasi selengkapnya tentang mengaktifkan dan mengonfigurasi log AWS IoT Core, lihat. Konfigurasikan AWS IoT logging

catatan

Jika Anda meninggalkan tingkat log di DEBUG untuk jangka waktu yang lama, CloudWatch mungkin menyimpan data logging dalam jumlah besar. Hal ini dapat meningkatkan CloudWatch biaya Anda. Pertimbangkan untuk menggunakan logging berbasis sumber daya untuk meningkatkan verbositas hanya untuk perangkat dalam grup hal tertentu. Untuk informasi selengkapnya tentang logging berbasis sumber daya, lihat. Konfigurasikan AWS IoT logging Selain itu, setelah Anda selesai memecahkan masalah, kurangi level log ke level yang kurang bertele-tele.

Sebelum Anda memulai pemecahan masalah, tinjau Memahami alur kerja otentikasi kustom tampilan tingkat tinggi dari proses otentikasi kustom. Ini membantu Anda memahami di mana mencari sumber masalah.

Topik ini membahas dua bidang berikut untuk Anda selidiki.

  • Masalah yang terkait dengan fungsi Lambda otorisasi Anda.

  • Masalah yang terkait dengan perangkat Anda.

Periksa masalah dalam fungsi Lambda otorisasi Anda

Lakukan langkah-langkah berikut untuk memastikan bahwa upaya koneksi perangkat Anda menjalankan fungsi Lambda Anda.

  1. Verifikasi fungsi Lambda mana yang terkait dengan otorisasi Anda.

    Anda dapat melakukan ini dengan memanggil DescribeAuthorizerAPI atau dengan mengklik otorisasi yang diinginkan di bagian Aman AWS IoT Core konsol.

  2. Periksa metrik pemanggilan untuk fungsi Lambda. Lakukan langkah-langkah berikut untuk melakukan ini.

    1. Buka AWS Lambda konsol (https://console.aws.amazon.com/lambda/) dan pilih fungsi yang terkait dengan otorisasi Anda.

    2. Pilih tab Monitor dan lihat metrik untuk kerangka waktu yang relevan dengan masalah Anda.

  3. Jika Anda tidak melihat pemanggilan, verifikasi bahwa AWS IoT Core memiliki izin untuk menjalankan fungsi Lambda Anda. Jika Anda melihat pemanggilan, lewati ke langkah berikutnya. Lakukan langkah-langkah berikut untuk memverifikasi bahwa fungsi Lambda Anda memiliki izin yang diperlukan.

    1. Pilih tab Izin untuk fungsi Anda di AWS Lambda konsol.

    2. Temukan bagian Kebijakan Berbasis Sumber Daya di bagian bawah halaman. Jika fungsi Lambda Anda memiliki izin yang diperlukan, kebijakan akan terlihat seperti contoh berikut.

      { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "Id123", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:111111111111:function:FunctionName", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:iot:us-east-1:111111111111:authorizer/AuthorizerName" }, "StringEquals": { "AWS:SourceAccount": "111111111111" } } } ] }
    3. Kebijakan ini memberikan InvokeFunction izin atas fungsi Anda kepada AWS IoT Core kepala sekolah. Jika Anda tidak melihatnya, Anda harus menambahkannya dengan menggunakan AddPermissionAPI. Contoh berikut menunjukkan kepada Anda bagaimana melakukan ini dengan menggunakan AWS CLI.

      aws lambda add-permission --function-name FunctionName --principal iot.amazonaws.com --source-arn AuthorizerARn --statement-id Id-123 --action "lambda:InvokeFunction"
  4. Jika Anda melihat pemanggilan, verifikasi bahwa tidak ada kesalahan. Kesalahan mungkin menunjukkan bahwa fungsi Lambda tidak menangani peristiwa koneksi yang AWS IoT Core mengirimkannya dengan benar.

    Untuk informasi tentang penanganan acara di fungsi Lambda Anda, lihat. Mendefinisikan fungsi Lambda Anda Anda dapat menggunakan fitur pengujian di AWS Lambda console (https://console.aws.amazon.com/lambda/) ke nilai pengujian kode keras dalam fungsi untuk memastikan bahwa fungsi tersebut menangani peristiwa dengan benar.

  5. Jika Anda melihat pemanggilan tanpa kesalahan, tetapi perangkat Anda tidak dapat terhubung (atau memublikasikan, berlangganan, dan menerima pesan), masalahnya mungkin kebijakan yang ditampilkan oleh fungsi Lambda Anda tidak memberikan izin untuk tindakan yang coba dilakukan perangkat Anda. Lakukan langkah-langkah berikut untuk menentukan apakah ada yang salah dengan kebijakan yang dikembalikan fungsi.

    1. Gunakan kueri Amazon CloudWatch Logs Insights untuk memindai log dalam waktu singkat untuk memeriksa kegagalan. Contoh kueri berikut mengurutkan peristiwa berdasarkan stempel waktu dan mencari kegagalan.

      display clientId, eventType, status, @timestamp | sort @timestamp desc | filter status = "Failure"
    2. Perbarui fungsi Lambda Anda untuk mencatat data yang dikembalikan AWS IoT Core dan peristiwa yang memicu fungsi tersebut. Anda dapat menggunakan log ini untuk memeriksa kebijakan yang dibuat oleh fungsi tersebut.

  6. Jika Anda melihat pemanggilan tanpa kesalahan, tetapi perangkat Anda tidak dapat terhubung (atau mempublikasikan, berlangganan, dan menerima pesan), alasan lain adalah fungsi Lambda Anda melebihi batas batas waktu. Batas waktu tunggu fungsi Lambda untuk otorisasi khusus adalah 5 detik. Anda dapat memeriksa durasi fungsi di CloudWatch log atau metrik.

Menyelidiki masalah perangkat

Jika Anda tidak menemukan masalah dengan menjalankan fungsi Lambda Anda atau dengan kebijakan yang ditampilkan fungsi tersebut, cari masalah dengan upaya koneksi perangkat Anda. Permintaan koneksi yang salah dapat menyebabkan AWS IoT Core tidak memicu otorisasi Anda. Masalah koneksi dapat terjadi pada lapisan TLS dan aplikasi.

Kemungkinan masalah lapisan TLS:

  • Pelanggan harus meneruskan header nama host (HTTP, MQTT over WebSockets) atau ekstensi TLS Indikasi Nama Server (HTTP, MQTT over, MQTT) di WebSockets semua permintaan otentikasi kustom. Dalam kedua kasus tersebut, nilai yang diteruskan harus cocok dengan salah satu titik akhir AWS IoT Core data akun Anda. Ini adalah titik akhir yang dikembalikan ketika Anda melakukan perintah CLI berikut.

    • aws iot describe-endpoint --endpoint-type iot:Data-ATS

    • aws iot describe-endpoint --endpoint-type iot:Data(untuk titik VeriSign akhir warisan)

  • Perangkat yang menggunakan otentikasi khusus untuk koneksi MQTT juga harus melewati ekstensi TLS Application Layer Protocol Negotiation (ALPN) dengan nilai. mqtt

  • Otentikasi khusus saat ini hanya tersedia di port 443.

Kemungkinan masalah lapisan aplikasi:

  • Jika penandatanganan diaktifkan (signingDisabledbidangnya salah di otorisasi Anda), cari masalah tanda tangan berikut.

    • Pastikan Anda meneruskan tanda tangan token di x-amz-customauthorizer-signature header atau dalam parameter string kueri.

    • Pastikan layanan tidak menandatangani nilai selain token.

    • Pastikan Anda meneruskan token di header atau parameter kueri yang Anda tentukan di token-key-name bidang di otorisasi Anda.

  • Pastikan bahwa nama otorisasi yang Anda berikan di parameter x-amz-customauthorizer-name header atau string kueri valid atau Anda memiliki otorisasi default yang ditentukan untuk akun Anda.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.