Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk beban kerja yang dapat diakses publik, AWS menyediakan sejumlah fitur dan layanan yang dapat membantu mengurangi risiko tertentu. Bagian ini mencakup otentikasi dan otorisasi pengguna aplikasi dan melindungi titik akhir API.
Autentikasi dan otorisasi
Otentikasi berkaitan dengan identitas dan otorisasi mengacu pada tindakan. Gunakan otentikasi untuk mengontrol siapa yang dapat menjalankan fungsi Lambda, dan kemudian gunakan otorisasi untuk mengontrol apa yang dapat mereka lakukan. Untuk banyak aplikasi, IAM cukup untuk mengelola kedua mekanisme kontrol.
Untuk aplikasi dengan pengguna eksternal, seperti aplikasi web atau seluler, biasanya menggunakan JSON Web Tokens
Anda dapat menerapkan JWTs dengan Amazon Cognito, layanan direktori pengguna yang dapat menangani pendaftaran, otentikasi, pemulihan akun, dan operasi manajemen akun umum lainnya. Amplify Framework
Mengingat peran keamanan penting dari layanan penyedia identitas, penting untuk menggunakan perkakas profesional untuk melindungi aplikasi Anda. Anda tidak disarankan untuk menulis layanan Anda sendiri untuk menangani otentikasi atau otorisasi. Kerentanan apa pun di pustaka khusus mungkin memiliki implikasi signifikan terhadap keamanan beban kerja Anda dan datanya.
Melindungi titik akhir API
Untuk aplikasi tanpa server, cara yang lebih disukai untuk melayani aplikasi backend secara publik adalah dengan menggunakan Amazon API Gateway. Ini dapat membantu Anda melindungi API dari pengguna jahat atau lonjakan lalu lintas.
API Gateway menawarkan dua tipe endpoint untuk pengembang tanpa server: REST APIs dan HTTP. APIs Keduanya mendukung otorisasi menggunakan AWS Lambda, IAM, atau Amazon Cognito. Saat menggunakan IAM atau Amazon Cognito, permintaan masuk dievaluasi dan jika tidak ada token yang diperlukan atau berisi otentikasi yang tidak valid, permintaan tersebut ditolak. Anda tidak dikenakan biaya untuk permintaan ini dan mereka tidak dihitung terhadap kuota pembatasan apa pun.
Rute API yang tidak diautentikasi dapat diakses oleh siapa saja di internet publik sehingga Anda disarankan untuk membatasi penggunaan yang tidak diautentikasi. APIs Jika Anda harus menggunakan yang tidak diautentikasi APIs, penting untuk melindungi ini dari risiko umum, seperti denial-of-service
Dalam banyak kasus, fungsionalitas yang disediakan oleh API yang tidak diautentikasi dapat dicapai dengan pendekatan alternatif. Misalnya, aplikasi web dapat menyediakan daftar toko ritel pelanggan dari tabel DynamoDB kepada pengguna yang tidak masuk. Permintaan ini mungkin berasal dari aplikasi web frontend atau dari sumber lain yang memanggil titik akhir URL. Diagram ini membandingkan tiga solusi:

-
API yang tidak diautentikasi ini dapat dipanggil oleh siapa saja di internet. Dalam serangan denial of service, dimungkinkan untuk menghabiskan batas pelambatan API, konkurensi Lambda, atau kapasitas baca yang disediakan DynamoDB pada tabel yang mendasarinya.
-
CloudFront Distribusi di depan titik akhir API dengan konfigurasi time-to-live(TTL) yang sesuai akan menyerap sebagian besar lalu lintas dalam serangan DoS, tanpa mengubah solusi mendasar untuk mengambil data.
-
Atau, untuk data statis yang jarang berubah, CloudFront distribusi dapat menyajikan data' dari bucket Amazon S3.