it-swarm.dev

menerima pesan: balasan terlarang dari gateway API AWS

[dipecahkan] Baru di AWS (dan StackOverflow). Saya mencoba membuat layanan lambda di AWS dan membuatnya diakses dari luar melalui gateway API tanpa diperlukan otentikasi atau pembatasan.

Untuk mempermudah, saya mengatur gateway untuk sekarang menjadi Mock.

Pada metode Dapatkan API, Otorisasi diatur ke None dan Kunci API adalah not required.

Ketika saya mencoba ini, saya mendapatkan {"message":"Forbidden"} (Pesan yang sama jika saya menghubungkannya ke layanan lambda yang sebenarnya). 

Adakah saran tentang cara membuatnya dapat diakses? Terima kasih

24
Fab

Jika Anda menetapkan opsi 'Diperlukan Kunci API' menjadi true, silakan periksa di bawah ini. 

  1. anda harus meneruskan Parameter Header HTTP 'x-api-key' ke API Gateway. 
  2. Kunci API harus dibuat. 
  3. Selain itu, Anda perlu memeriksa Rencana Penggunaan untuk Kunci API pada Konsol Gateway API.
40
Daniel Jihoon Oh

Pada dasbor API Gateway pilih Sumber Daya, klik Tindakan dan pilih Deploy API. Sebelum penyebaran pertama Anda, satu-satunya respons yang akan Anda dapatkan adalah {"message":"Forbidden"}.

31
jneves

Jika Anda menggunakan nama domain khusus dan lupa untuk memilih pementasan tujuan, Anda akan mendapatkan pesan Forbidden.

Cukup buka Custom Domain Names dan klik Edit di bawah domain Anda, lalu pilih tahapan di bawah Base Path Mappings.

13
kontrollanten

Saya memiliki masalah yang sama, dan saya memiliki yang berikut:

  1. Domain Khusus (Edge Dioptimalkan)
  2. Beberapa Tahapan (dev, pementasan, prod)

Saya juga tidak menetapkan Otorisasi atau batasan untuk membuat hal-hal sederhana.

Saya dapat memperbaiki masalah dengan menambahkan Pemetaan Path Path untuk setiap tahap saya (dev, staging, prod).

6
Joben R. Ilagan

Jika Authorization dan API KEY Required keduanya diset true untuk metode ini, maka pastikan Anda memiliki Header berikut saat mengirim permintaan:

  1. Content-Type (biasanya aplikasi/x-www-form-urlencoded jika GET panggilan)
  2. Tuan rumah
  3. X-Amz-Date
  4. Otorisasi
  5. kunci x-api

Saya menggunakan POSTMAN untuk pengujian API yang cukup andal dan langsung siap.

Catatan: Jangan menambahkan header kunci x-api jika Anda telah menetapkan API KEY REQUIRED sebagai FALSE . Dan jika Anda telah menetapkan AUTHORIZATION sebagai FALSE, maka jangan tambahkan header Otorisasi. 

3
illusionx

Jika Anda menetapkan kunci 'API' yang diperlukan untuk true, Anda harus meneruskan kunci api sebagai header.

API Key diteruskan sebagai bidang tajuk 'x-api-key'. Bahkan setelah menambahkan bidang ini di tajuk, masalah ini dapat terjadi. Dalam hal ini, harap validasi poin di bawah ini

  • Apakah Anda memiliki Rencana Penggunaan? jika tidak perlu membuat satu.
  • Tautkan API Anda dengan Rencana Penggunaan. Untuk itu tambahkan satu tahap, itu akan menautkan API Anda.
  • Apakah Anda memiliki Kunci API? jika tidak, Anda perlu membuat Kunci API dan mengaktifkannya.
  • Tambahkan Paket Penggunaan yang ditautkan dengan API Anda ke Kunci API ini. Untuk itu tambahkan Paket Penggunaan.
3
bisw

Ini mungkin jauh dari jelas, tetapi alasan lain untuk melihat kesalahan "Terlarang" saat menggunakan AWS API Gateway mungkin memanggil URL yang salah yang tidak sesuai dengan metode API yang digunakan. Ini dapat terjadi jika Anda benar-benar mengenai URL yang salah (mis. Alih-alih memanggil https://9999xx9x99.execute-api.us-east-1.amazonaws.com/dev/users (perhatikan dev stage sebelum users) yang Anda panggil https://9999xx9x99.execute-api.us-east-1.amazonaws.com/users (no stage). Anda berharap mendapatkan 404, tetapi Anda akan mendapatkan 403.

BTW: setelah Anda melakukan penyebaran ke https://9999xx9x99.execute-api.us-east-1.amazonaws.com/dev/users memanggil https://9999xx9x99.execute-api.us-east-1.amazonaws.com/user (perhatikan bentuk kata benda tunggal di sini) Anda akan mendapatkan ... 403 juga, tetapi dengan pesan "Missing Authentication Token"!

1
madhead

Saya mendapatkan kesalahan ini dari layanan nginx fargate yang mencoba mengakses API pribadi di API Gateway. Saya perlu menambahkan kebijakan di bawah kebijakan sumber daya di api saya seperti ini

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:<AccountID>:<RestApiID>/*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpce": "<VPC Endpoint ID for execute-api>"
                }
            }
        }
    ]
}
1
gary69

Firewall/antivirus lokal atau NGIPS ( Cisco Bluecoat ). Yang terakhir adalah kasus saya, di mana saya bahkan tidak akan mendapatkan log di CloudWatch dari API saya. Itu memungkinkan domain tingkat atas saya meng-host situs web, tetapi memblokir dengan 403 subdomain api, tanpa tubuh di tab alat alat jaringan browser.

1
Radu

Ada beberapa hal yang harus dilakukan ketika kami menerima {message: forbidden} di API Gateway:

CORS diaktifkan?

  1. Periksa apakah CORS Diaktifkan dalam API (untuk memulai dengan, izinkan Asal '*', untuk memastikan kami dapat menguji dengan aman)
  2. Sebarkan API untuk memastikan semua pengaturan seperti yang diharapkan

Kunci API diaktifkan?

  1. Periksa apakah kami telah mengaktifkan Kunci API di API Gateway
  2. Periksa apakah ada Kunci API yang dikonfigurasi.
  3. Periksa apakah Kunci API Anda ditetapkan untuk usageplan yang benar dan tambahkan Tahap API, tanpa Tahap API Anda akan selalu menerima {message: forbidden}

Jika Anda masih menghadapi masalah, beri tahu saya agar saya atau salah satu pakar cloud kami di @levarne dapat membantu. 

1
Max Lans

Anda perlu menyebarkan api Anda di atas panggung dan menggunakan url panggung pergi ke Sumber Daya, klik Tindakan dan pilih Deploy API

Sekarang jika Anda mendapatkan kesalahan 

{"message": "Forbidden"}.

Silakan periksa langkah-langkah berikut 

1) Jika Anda mengaktifkan salinan kunci api dan meneruskan kunci Anda di tukang pos 

 enter image description here

2) Sekarang Anda masih mendapatkan kesalahan yang sama berarti Anda harus membuat rencana penggunaan 

 enter image description here

3) menetapkan batas dan menetapkan rencana ke api Anda

 enter image description here

0
vaquar khan

Kami telah menghadapi masalah ini dalam produksi kami ketika kami menggunakan Kong sebagai gerbang api kami. Permintaan kami lolos dari sana ketika dimulai dari tukang pos tetapi gagal dengan 403 ketika diinisiasi melalui Kode. Plugin Bot di Kong diaktifkan yang hanya mengizinkan permintaan yang dimulai dari Browser atau Aplikasi Seluler berdasarkan nilai header agen pengguna. Permintaan kami yang dimulai melalui Klien Http gagal. Setelah kami menonaktifkan plugin bot maka kesalahan tidak terjadi. Sekarang memungkinkan permintaan jika agen-pengguna adalah Apache-HttpClient/4.5.2 (Java/1.8.0_91).

0
Cshah

Saya mungkin terlambat tetapi salah satu alasan API Gateway akan memberikan pesan "terlarang" adalah ketika Anda mengirimkan data ke Badan Permintaan pada operasi GET. Untuk mengatasi masalah, buat sumber daya Anda POST atau Anda tidak meneruskan data ke Badan permintaan.

0