Memecahkan masalah penyedia identitas kustom - AWS Transfer Family

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

Memecahkan masalah penyedia identitas kustom

Bagian ini menjelaskan kemungkinan solusi untuk masalah yang terkait dengan penyedia identitas kustom dengan Transfer Family.

Memecahkan masalah kesalahan integrasi API Gateway

Deskripsi

Pengguna tidak dapat melakukan autentikasi dengan server Transfer Family Anda, dan saat menguji penyedia identitas Anda, Anda akan melihat kesalahan seperti:

{ "Response": "", "StatusCode": 500, "Message": "Internal server error" }

Menyebabkan

Kesalahan integrasi API Gateway dapat terjadi karena:

  • Konfigurasi API Gateway salah

  • Kesalahan fungsi Lambda tidak ditangani dengan benar

  • Masalah izin antara API Gateway dan Lambda

  • Tanggapan cacat dari fungsi Lambda

Solusi

Untuk memecahkan masalah kesalahan integrasi API Gateway:

  1. Periksa log fungsi Lambda Anda untuk informasi kesalahan terperinci:

    • Di CloudWatch konsol, navigasikan ke Grup log >/aws/lambda/your-function-name

    • Cari pesan kesalahan atau jejak tumpukan yang menunjukkan akar penyebabnya

  2. Verifikasi bahwa fungsi Lambda Anda mengembalikan respons yang diformat dengan benar:

    { "Role": "arn:aws:iam::123456789012:role/TransferUserRole", "HomeDirectory": "/mybucket/home/username" }
  3. Aktifkan CloudWatch pencatatan terperinci untuk API Gateway:

    • Di konsol API Gateway, pilih API Anda dan pilih Tahapan

    • Pilih panggung Anda dan di bawah Logs/Tracing, aktifkan Log CloudWatch

    • Atur level log ke ERROR atau INFO

  4. Uji titik akhir API Gateway Anda secara langsung:

    curl -X POST https://your-api-id.execute-api.region.amazonaws.com/prod/servers/your-server-id/users/username/config \ -H "Content-Type: application/json" \ -d '{"Password": "password"}'
  5. Verifikasi izin antara API Gateway dan Lambda:

    • Pastikan API Gateway memiliki izin untuk menjalankan fungsi Lambda Anda

    • Periksa apakah peran eksekusi untuk fungsi Lambda Anda memiliki izin yang diperlukan

Memecahkan masalah batas waktu fungsi Lambda

Deskripsi

Saat pengguna mencoba mengautentikasi dengan server Transfer Family Anda menggunakan penyedia identitas khusus, mereka mengalami penundaan yang lama diikuti oleh kegagalan otentikasi. Di log Lambda Anda, Anda melihat kesalahan batas waktu.

Menyebabkan

Fungsi Lambda yang digunakan untuk penyedia identitas kustom memiliki batas waktu default 3 detik. Jika logika otentikasi Anda membutuhkan waktu lebih lama dari batas waktu ini (misalnya, saat menanyakan database eksternal atau melakukan panggilan API ke penyedia identitas pihak ketiga), fungsi akan habis waktu dan otentikasi akan gagal.

Solusi

Untuk mengatasi masalah batas waktu Lambda:

  1. Tingkatkan batas waktu fungsi Lambda:

    • Di konsol Lambda, navigasikan ke fungsi Anda dan pilih tab Konfigurasi

    • Di bawah Konfigurasi umum, klik Edit

    • Tingkatkan nilai batas waktu (disarankan hingga 15 detik untuk fungsi otentikasi)

  2. Optimalkan kode fungsi Lambda Anda:

    • Gunakan penyatuan koneksi untuk kueri basis data

    • Menerapkan caching untuk data yang sering diakses

    • Minimalkan panggilan API eksternal selama otentikasi

  3. Pertimbangkan untuk menggunakan Lambda Provisioned Concurrency untuk menghilangkan cold start:

    aws lambda put-provisioned-concurrency-config \ --function-name my-authentication-function \ --qualifier prod \ --provisioned-concurrent-executions 5
  4. Pantau kinerja Lambda menggunakan CloudWatch metrik dan atur alarm untuk ambang batas durasi

Memecahkan masalah batas waktu Lambda yang konsisten

Deskripsi

Pengguna mengalami batas waktu yang konsisten saat menggunakan fungsi Lambda untuk otentikasi.

Menyebabkan

Lambda tidak dapat menjangkau AWS layanan terkait yang digunakan untuk mengautentikasi (seperti DynamoDB, Secrets Manager, atau penyedia identitas lainnya).

Solusi

Verifikasi bahwa subnet dapat menjangkau AWS layanan. Atau, jika terhubung ke penyedia identitas internet (seperti Okta), verifikasi bahwa subnet fungsi Lambda dapat menjangkau internet melalui Gateway NAT

Memecahkan masalah pengecualian KeyError

Deskripsi

Dalam entri log Transfer Family Anda, Anda melihat pengecualian KeyError ''.

Menyebabkan

Penyebab yang paling mungkin adalah bahwa pengguna atau identity_provider catatan salah bentuk atau kehilangan bidang wajib.

Solusi

Tinjau ERRORS log, yang terletak di grup /aws/transfer/your-server-id log untuk petunjuk.