Konfigurasikan otorisasi API Gateway Lambda - APIGerbang Amazon

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

Konfigurasikan otorisasi API Gateway Lambda

Setelah Anda membuat fungsi Lambda, Anda mengonfigurasi fungsi Lambda sebagai otorisasi untuk fungsi Lambda. API Anda kemudian mengonfigurasi metode Anda untuk memanggil otorisasi Lambda Anda untuk menentukan apakah pemanggil dapat memanggil metode Anda. Anda dapat membuat fungsi Lambda di akun yang sama, atau akun yang berbeda, dari tempat Anda membuat. API

Anda dapat menguji otorisasi Lambda Anda menggunakan alat bawaan di konsol API Gateway atau dengan menggunakan Postman. Untuk petunjuk tentang cara menggunakan Postman untuk menguji fungsi otorisasi Lambda Anda, lihat. Panggil API dengan otorisasi API Gateway Lambda

Konfigurasikan otorisasi Lambda (konsol)

Prosedur berikut menunjukkan cara membuat otorisasi Lambda di konsol Gateway. API REST API Untuk mempelajari lebih lanjut tentang berbagai jenis otorisasi Lambda, lihat. Memilih jenis otorisasi Lambda

REQUEST authorizer
Untuk mengkonfigurasi otorisasi REQUEST Lambda
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. PilihAPI, dan kemudian pilih Authorizers.

  3. Pilih Buat Authorizer.

  4. Untuk nama Authorizer, masukkan nama untuk otorisasi.

  5. Untuk jenis Authorizer, pilih Lambda.

  6. Untuk fungsi Lambda, pilih Wilayah AWS tempat Anda membuat fungsi otorisasi Lambda Anda, lalu masukkan nama fungsi.

  7. Biarkan peran panggilan Lambda kosong untuk membiarkan REST API konsol API Gateway menyetel kebijakan berbasis sumber daya. Kebijakan ini memberikan izin API Gateway untuk menjalankan fungsi otorisasi Lambda. Anda juga dapat memilih untuk memasukkan nama IAM peran untuk memungkinkan API Gateway menjalankan fungsi otorisasi Lambda. Untuk peran contoh, lihatBuat peran IAM yang dapat diasumsikan.

  8. Untuk payload acara Lambda, pilih Minta.

  9. Untuk tipe sumber Identity, pilih tipe parameter. Jenis parameter yang didukung adalahHeader,Query string,Stage variable, danContext. Untuk menambahkan lebih banyak sumber identitas, pilih Tambah parameter.

  10. Untuk men-cache kebijakan otorisasi yang dihasilkan oleh otorisasi, biarkan caching Otorisasi tetap aktif. Saat caching kebijakan diaktifkan, Anda dapat mengubah TTLnilainya. Menyetel TTLke nol menonaktifkan caching kebijakan.

    Jika Anda mengaktifkan caching, otorisasi Anda harus mengembalikan kebijakan yang berlaku untuk semua metode di seluruh file. API Untuk menegakkan kebijakan khusus metode, gunakan variabel konteks dan. $context.path $context.httpMethod

  11. Pilih Buat Authorizer.

TOKEN authorizer
Untuk mengkonfigurasi otorisasi TOKEN Lambda
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. PilihAPI, dan kemudian pilih Authorizers.

  3. Pilih Buat Authorizer.

  4. Untuk nama Authorizer, masukkan nama untuk otorisasi.

  5. Untuk jenis Authorizer, pilih Lambda.

  6. Untuk fungsi Lambda, pilih Wilayah AWS tempat Anda membuat fungsi otorisasi Lambda Anda, lalu masukkan nama fungsi.

  7. Biarkan peran panggilan Lambda kosong untuk membiarkan REST API konsol API Gateway menyetel kebijakan berbasis sumber daya. Kebijakan ini memberikan izin API Gateway untuk menjalankan fungsi otorisasi Lambda. Anda juga dapat memilih untuk memasukkan nama IAM peran untuk memungkinkan API Gateway menjalankan fungsi otorisasi Lambda. Untuk peran contoh, lihatBuat peran IAM yang dapat diasumsikan.

  8. Untuk payload acara Lambda, pilih Token.

  9. Untuk sumber Token, masukkan nama header yang berisi token otorisasi. Penelepon harus menyertakan header nama ini untuk mengirim token otorisasi ke otorisasi Lambda.

  10. (Opsional) Untuk validasi Token, masukkan RegEx pernyataan. APIGateway melakukan validasi awal token input terhadap ekspresi ini dan memanggil authorizer setelah validasi berhasil.

  11. Untuk men-cache kebijakan otorisasi yang dihasilkan oleh otorisasi, biarkan caching Otorisasi tetap aktif. Saat caching kebijakan diaktifkan, nama header yang ditentukan dalam sumber Token menjadi kunci cache. Saat caching kebijakan diaktifkan, Anda dapat mengubah TTLnilainya. Menyetel TTLke nol menonaktifkan caching kebijakan.

    Jika Anda mengaktifkan caching, otorisasi Anda harus mengembalikan kebijakan yang berlaku untuk semua metode di seluruh file. API Untuk menerapkan kebijakan khusus metode, Anda dapat menonaktifkan caching Otorisasi.

  12. Pilih Buat Authorizer.

Setelah Anda membuat otorisasi Lambda Anda, Anda dapat mengujinya. Prosedur berikut menunjukkan cara menguji otorisasi Lambda Anda.

REQUEST authorizer
Untuk menguji otorisasi REQUEST Lambda
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih nama otorisasi Anda.

  3. Di bawah Pengotorisasi uji, masukkan nilai untuk sumber identitas Anda.

    Jika Anda menggunakanContoh fungsi Lambda REQUEST authorizer, lakukan hal berikut:

    1. Pilih Header dan enterheaderValue1, lalu pilih Tambah parameter.

    2. Di bawah Jenis sumber identitas, pilih String kueri dan masukkanqueryValue1, lalu pilih Tambah parameter.

    3. Di bawah Identity source type, pilih Stage variable dan enterstageValue1.

    Anda tidak dapat mengubah variabel konteks untuk pemanggilan pengujian, tetapi Anda dapat memodifikasi template peristiwa pengujian APIGateway Authorizer untuk fungsi Lambda Anda. Kemudian, Anda dapat menguji fungsi otorisasi Lambda Anda dengan variabel konteks yang dimodifikasi. Untuk informasi selengkapnya, lihat Menguji fungsi Lambda di konsol di Panduan AWS Lambda Pengembang.

  4. Pilih Test Authorizer.

TOKEN authorizer
Untuk menguji otorisasi TOKEN Lambda
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih nama otorisasi Anda.

  3. Di bawah Pengotorisasi uji, masukkan nilai untuk token Anda.

    Jika Anda menggunakanContoh fungsi Lambda TOKEN authorizer, lakukan hal berikut:

    1. Untuk authorizationToken, masukkanallow.

  4. Pilih Test Authorizer.

    Jika otorisasi Lambda Anda berhasil menolak permintaan di lingkungan pengujian, pengujian akan merespons dengan respons. 200 OK HTTP Namun, di luar lingkungan pengujian, API Gateway mengembalikan 403 Forbidden HTTP respons dan permintaan metode gagal.

Konfigurasikan otorisasi Lambda ()AWS CLI

Perintah create-authorizer berikut menunjukkan untuk membuat authorizer Lambda menggunakan. AWS CLI

REQUEST authorizer

Contoh berikut membuat REQUEST authorizer dan menggunakan variabel Authorizer header dan accountId konteks sebagai sumber identitas:

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Request_Custom_Authorizer' \ --type REQUEST \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization,context.accountId' \ --authorizer-result-ttl-in-seconds 300
TOKEN authorizer

Contoh berikut membuat TOKEN authorizer dan menggunakan Authorization header sebagai sumber identitas:

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Token_Custom_Authorizer' \ --type TOKEN \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization' \ --authorizer-result-ttl-in-seconds 300

Setelah Anda membuat otorisasi Lambda Anda, Anda dapat mengujinya. test-invoke-authorizerPerintah berikut menunjukkan cara menguji otorisasi Lambda Anda:

aws apigateway test-invoke-authorizer --rest-api-id 1234123412 \ --authorizer-id efg1234 \ --headers Authorization='Value'

Konfigurasikan metode untuk menggunakan otorisasi Lambda (konsol)

Setelah Anda mengkonfigurasi otorisasi Lambda Anda, Anda harus melampirkannya ke metode untuk Anda. API

Untuk mengonfigurasi API metode untuk menggunakan otorisasi Lambda
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih sebuahAPI.

  3. Pilih Sumber Daya, lalu pilih metode baru atau pilih metode yang ada.

  4. Pada tab Permintaan metode, di bawah Pengaturan permintaan metode, pilih Edit.

  5. Untuk Authorizer, dari menu dropdown, pilih Lambda Authorizer yang baru saja Anda buat.

  6. (Opsional) Jika Anda ingin meneruskan token otorisasi ke backend, pilih HTTP header permintaan. Pilih Tambahkan header, lalu tambahkan nama header otorisasi. Untuk Nama, masukkan nama header yang cocok dengan nama sumber Token yang Anda tentukan saat Anda membuat otorisasi Lambda untuk. API Langkah ini tidak berlaku untuk REQUEST otorisasi.

  7. Pilih Simpan.

  8. Pilih Deploy API untuk menyebarkan API ke panggung. Untuk REQUEST otorisasi yang menggunakan variabel tahap, Anda juga harus menentukan variabel tahap yang diperlukan dan menentukan nilainya saat berada di halaman Tahapan.

Konfigurasikan metode untuk menggunakan otorisasi Lambda ()AWS CLI

Setelah Anda mengkonfigurasi otorisasi Lambda Anda, Anda harus melampirkannya ke metode untuk Anda. API Anda dapat membuat metode baru atau menggunakan operasi tambalan untuk melampirkan otorisasi ke metode yang ada.

Perintah put-method berikut menunjukkan cara membuat metode baru yang menggunakan authorizer Lambda:

aws apigateway put-method --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --authorization-type CUSTOM \ --authorizer-id efg1234

Perintah update-method berikut menunjukkan cara memperbarui metode yang ada untuk menggunakan Lambda authorizer:

aws apigateway update-method \ --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --patch-operations op="replace",path="/authorizationType",value="CUSTOM" op="replace",path="/authorizerId",value="efg1234"