Kontrol API akses dengan AWS SAM template Anda - AWS Serverless Application Model

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

Kontrol API akses dengan AWS SAM template Anda

Mengontrol akses ke API Gateway APIs membantu memastikan aplikasi tanpa server Anda aman dan hanya dapat diakses melalui otorisasi yang Anda aktifkan. Anda dapat mengaktifkan otorisasi di AWS SAM template Anda untuk mengontrol siapa yang dapat mengakses API Gateway APIs Anda.

AWS SAM mendukung beberapa mekanisme untuk mengontrol akses ke API Gateway AndaAPIs. Kumpulan mekanisme yang didukung berbeda antara tipe sumber daya AWS::Serverless::HttpApi dan AWS::Serverless::Api.

Tabel berikut merangkum mekanisme yang didukung oleh setiap tipe sumber daya.

Mekanisme untuk mengendalikan akses AWS::Serverless::HttpApi AWS::Serverless::Api
Otorisator Lambda
IAMizin
Kumpulan pengguna Amazon Cognito ✓ *
APIkunci
Kebijakan sumber daya
OAuth2.0/ otorisasi JWT

* Anda dapat menggunakan Amazon Cognito sebagai penerbit Token JSON Web (JWT) dengan jenis sumber daya. AWS::Serverless::HttpApi

  • Authorizer Lambda — Authorizer Lambda (sebelumnya dikenal sebagai otorisasi khusus) adalah fungsi Lambda yang Anda berikan untuk mengontrol akses ke Anda. API Ketika Anda API dipanggil, fungsi Lambda ini dipanggil dengan konteks permintaan atau token otorisasi yang disediakan aplikasi klien. Fungsi Lambda merespons apakah pemanggil diotorisasi untuk melakukan operasi yang diminta.

    Tipe sumber daya AWS::Serverless::HttpApi dan AWS::Serverless::Api mendukung otorisasi Lambda.

    Untuk informasi selengkapnya tentang otorisasi Lambda denganAWS::Serverless::HttpApi, lihat Bekerja dengan AWS Lambda otorisasi untuk HTTP APIs di Panduan Pengembang API Gateway. Untuk informasi selengkapnya tentang otorisasi Lambda denganAWS::Serverless::Api, lihat Menggunakan otorisasi Gateway API Lambda di Panduan Pengembang Gateway. API

    Untuk contoh otorisasi Lambda untuk kedua tipe sumber daya, lihat Contoh otorisasi Lambda untuk AWS SAM.

  • IAMizin — Anda dapat mengontrol siapa yang dapat memanggil izin API using AWS Identity and Access Management (IAM) Anda. Pengguna yang memanggil Anda API harus diautentikasi dengan IAM kredensi. Panggilan untuk API berhasil hanya jika ada IAM kebijakan yang dilampirkan ke IAM pengguna yang mewakili API pemanggil, IAM grup yang berisi pengguna, atau IAM peran yang diasumsikan pengguna.

    Hanya jenis AWS::Serverless::Api sumber daya yang mendukung IAM izin.

    Untuk informasi selengkapnya, lihat Mengontrol akses ke izin API dengan IAM izin di Panduan Pengembang API Gateway. Sebagai contoh, lihat IAMcontoh izin untuk AWS SAM.

  • Kolam pengguna Amazon Cognito – Kolam pengguna Amazon Cognito adalah direktori pengguna di Amazon Cognito. Klien Anda API harus terlebih dahulu masuk pengguna ke kumpulan pengguna dan mendapatkan identitas atau token akses untuk pengguna. Kemudian klien memanggil Anda API dengan salah satu token yang dikembalikan. APIPanggilan hanya berhasil jika token yang diperlukan valid.

    Tipe sumber daya AWS::Serverless::Api mendukung kolam pengguna Amazon Cognito. Jenis AWS::Serverless::HttpApi sumber daya mendukung penggunaan Amazon Cognito sebagai JWT penerbit.

    Untuk informasi selengkapnya, lihat Mengontrol akses ke kumpulan pengguna Amazon Cognito yang REST API menggunakan sebagai otorisasi di Panduan Pengembang APIGateway. Sebagai contoh, lihat Contoh kumpulan pengguna Amazon Cognito untuk AWS SAM.

  • APIkeys — API keys adalah nilai string alfanumerik yang Anda distribusikan ke pelanggan pengembang aplikasi untuk memberikan akses ke Anda. API

    Hanya jenis AWS::Serverless::Api sumber daya yang mendukung API kunci.

    Untuk informasi selengkapnya tentang API kunci, lihat Membuat dan menggunakan paket penggunaan dengan API kunci di Panduan Pengembang API Gateway. Untuk contoh API kunci, lihatAPIcontoh kunci untuk AWS SAM.

  • Kebijakan sumber daya — Kebijakan sumber daya adalah dokumen JSON kebijakan yang dapat Anda lampirkan ke API GatewayAPI. Gunakan kebijakan sumber daya untuk mengontrol apakah prinsipal tertentu (biasanya IAM pengguna atau peran) dapat memanggil. API

    Hanya tipe AWS::Serverless::Api sumber daya yang mendukung kebijakan sumber daya sebagai mekanisme untuk mengontrol akses ke API GatewayAPIs.

    Untuk informasi selengkapnya tentang kebijakan sumber daya, lihat Mengontrol akses ke kebijakan sumber daya API dengan API Gateway di Panduan Pengembang API Gateway. Untuk contoh kebijakan sumber daya, lihat Contoh kebijakan sumber daya untuk AWS SAM.

  • OAuth2.0/ JWT authorizers - Anda dapat menggunakan JWTs sebagai bagian dari OpenID Connect OIDC () OAuthdan 2.0 framework untuk mengontrol akses ke OpenID Connect (). APIs APIGateway memvalidasi JWTs yang dikirimkan klien dengan API permintaan, dan mengizinkan atau menolak permintaan berdasarkan validasi token dan, secara opsional, cakupan dalam token.

    Hanya jenis AWS::Serverless::HttpApi sumber daya yang mendukung OAuth 2.0/ otorisasiJWT.

    Untuk informasi selengkapnya, lihat Mengontrol akses HTTP APIs dengan JWT otorisasi di Panduan Pengembang API Gateway. Sebagai contoh, lihat OAuth2.0/contoh JWT otorisasi untuk AWS SAM.

Memilih mekanisme untuk mengendalikan akses

Mekanisme yang Anda pilih untuk digunakan untuk mengontrol akses ke API Gateway Anda APIs bergantung pada beberapa faktor. Misalnya, jika Anda memiliki proyek greenfield tanpa menyiapkan otorisasi atau kendali akses, maka kolam pengguna Amazon Cognito mungkin menjadi pilihan terbaik Anda. Ini karena saat Anda menyiapkan kolam pengguna, Anda juga secara otomatis menyiapkan autentikasi dan kendali akses.

Namun, jika aplikasi Anda sudah menyiapkan autentikasi, maka menggunakan otorisasi Lambda mungkin merupakan pilihan terbaik Anda. Ini karena Anda dapat memanggil layanan autentikasi yang ada dan mengembalikan dokumen kebijakan berdasarkan respons. Selain itu, jika aplikasi Anda memerlukan autentikasi khusus atau logika kendali akses yang tidak didukung oleh kolam pengguna, maka otorisasi Lambda mungkin merupakan pilihan terbaik Anda.

Ketika Anda telah memilih mekanisme mana yang akan digunakan, lihat bagian yang sesuai Contoh untuk cara menggunakan AWS SAM untuk mengonfigurasi aplikasi Anda untuk menggunakan mekanisme itu.

Menyesuaikan respons kesalahan

Anda dapat menggunakan AWS SAM untuk menyesuaikan konten dari beberapa tanggapan kesalahan API Gateway. Hanya jenis AWS::Serverless::Api sumber daya yang mendukung respons API Gateway yang disesuaikan.

Untuk informasi selengkapnya tentang tanggapan API Gateway, lihat Respons API Gateway di API Gateway di Panduan Pengembang Gateway. Untuk contoh respons yang disesuaikan, lihat Contoh respons yang disesuaikan untuk AWS SAM.

Contoh