Tutorial: Membangun REST API pribadi - Amazon API Gateway

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

Tutorial: Membangun REST API pribadi

Dalam tutorial ini, Anda membuat REST API pribadi. Klien dapat mengakses API hanya dari dalam VPC Amazon Anda. API diisolasi dari internet publik, yang merupakan persyaratan keamanan umum.

Tutorial ini memakan waktu sekitar 30 menit untuk menyelesaikannya. Pertama, Anda menggunakan AWS CloudFormation template untuk membuat VPC Amazon, titik akhir VPC, AWS Lambda fungsi, dan meluncurkan instans Amazon EC2 yang akan Anda gunakan untuk menguji API Anda. Selanjutnya, Anda menggunakan AWS Management Console untuk membuat API pribadi dan melampirkan kebijakan sumber daya yang memungkinkan akses hanya dari titik akhir VPC Anda. Terakhir, Anda menguji API Anda.

Ikhtisar API pribadi yang Anda buat dalam tutorial ini.

Untuk menyelesaikan tutorial ini, Anda memerlukan AWS akun dan AWS Identity and Access Management pengguna dengan akses konsol. Untuk informasi selengkapnya, lihat Prasyarat untuk memulai dengan API Gateway.

Dalam tutorial ini, Anda menggunakan AWS Management Console. Untuk AWS CloudFormation template yang membuat API ini dan semua resource terkait, lihat template.yaml.

Langkah 1: Buat dependensi

Unduh dan unzip AWS CloudFormation template ini. Anda menggunakan template untuk membuat semua dependensi untuk API pribadi Anda, termasuk VPC Amazon, titik akhir VPC, dan fungsi Lambda yang berfungsi sebagai backend API Anda. Anda membuat API pribadi nanti.

Untuk membuat AWS CloudFormation tumpukan
  1. Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

  2. Pilih Buat tumpukan kemudian pilih Dengan sumber daya baru (standar).

  3. Untuk Tentukan templat, pilih Unggah file templat.

  4. Pilih template yang Anda unduh.

  5. Pilih Selanjutnya.

  6. Untuk nama Stack, masukkan private-api-tutorial dan kemudian pilih Berikutnya.

  7. Untuk opsi Konfigurasi tumpukan, pilih Berikutnya.

  8. Untuk Kemampuan, akui bahwa AWS CloudFormation dapat membuat sumber daya IAM di akun Anda.

  9. Pilih Kirim.

AWS CloudFormation menyediakan dependensi untuk API Anda, yang dapat memakan waktu beberapa menit. Ketika status AWS CloudFormation tumpukan Anda adalah CREATE_COMPLETE, pilih Output. Perhatikan ID titik akhir VPC Anda. Anda membutuhkannya untuk langkah-langkah selanjutnya dalam tutorial ini.

Langkah 2: Buat API pribadi

Anda membuat API pribadi untuk mengizinkan hanya klien dalam VPC Anda untuk mengaksesnya.

Untuk membuat API pribadi
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih Create API, lalu untuk REST API, pilih Build.

  3. Untuk nama API, masukkanprivate-api-tutorial.

  4. Untuk jenis endpoint API, pilih Private.

  5. Untuk ID titik akhir VPC, masukkan ID titik akhir VPC dari Output tumpukan Anda. AWS CloudFormation

  6. Pilih Buat API.

Langkah 3: Buat metode dan integrasi

Anda membuat GET metode dan integrasi Lambda untuk menangani GET permintaan ke API Anda. Saat klien memanggil API Anda, API Gateway mengirimkan permintaan ke fungsi Lambda yang Anda buat di Langkah 1, lalu mengembalikan respons ke klien.

Untuk membuat metode dan integrasi
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih API Anda.

  3. Pilih sumber daya/, lalu pilih Create method.

  4. Untuk jenis Metode pilihGET.

  5. Untuk jenis Integrasi, pilih fungsi Lambda.

  6. Aktifkan integrasi proxy Lambda. Dengan integrasi proxy Lambda, API Gateway mengirimkan peristiwa ke Lambda dengan struktur yang ditentukan, dan mengubah respons dari fungsi Lambda Anda menjadi respons HTTP.

  7. Untuk fungsi Lambda, pilih fungsi yang Anda buat dengan AWS CloudFormation template di Langkah 1. Nama fungsi dimulai denganprivate-api-tutorial.

  8. Pilih metode Buat.

Langkah 4: Lampirkan kebijakan sumber daya

Anda melampirkan kebijakan sumber daya ke API Anda yang memungkinkan klien menjalankan API hanya melalui titik akhir VPC Anda. Untuk lebih membatasi akses ke API Anda, Anda juga dapat mengonfigurasi kebijakan titik akhir VPC untuk titik akhir VPC Anda, tetapi itu tidak diperlukan untuk tutorial ini.

Untuk melampirkan kebijakan sumber daya
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih API Anda.

  3. Pilih Kebijakan sumber daya, lalu pilih Buat kebijakan.

  4. Masukkan kebijakan berikut. Ganti VPCeID dengan ID titik akhir VPC Anda dari Output tumpukan Anda. AWS CloudFormation

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpceID" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*" } ] }
  5. Pilih Simpan perubahan.

Langkah 5: Menerapkan API Anda

Selanjutnya, Anda menerapkan API Anda untuk membuatnya tersedia bagi klien di Amazon VPC Anda.

Untuk menerapkan API
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih API Anda.

  3. Pilih Deploy API.

  4. Untuk Stage, pilih New stage.

  5. Untuk nama Panggung, masukkantest.

  6. (Opsional) Untuk Deskripsi, masukkan deskripsi.

  7. Pilih Deploy.

Sekarang Anda siap untuk menguji API Anda.

Langkah 6: Verifikasi bahwa API Anda tidak dapat diakses publik

Gunakan curl untuk memverifikasi bahwa Anda tidak dapat menjalankan API dari luar VPC Amazon Anda.

Untuk menguji API Anda
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih API Anda.

  3. Di panel navigasi utama, pilih Tahapan, lalu pilih tahap pengujian.

  4. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda. URL terlihat sepertihttps://abcdef123.execute-api.us-west-2.amazonaws.com/test. Titik akhir VPC yang Anda buat di Langkah 1 memiliki DNS pribadi yang diaktifkan, sehingga Anda dapat menggunakan URL yang disediakan untuk menjalankan API Anda.

  5. Gunakan curl untuk mencoba menjalankan API Anda dari luar VPC Anda.

    curl https://abcdef123.execute-api.us-west-2.amazonaws.com/test

    Curl menunjukkan bahwa titik akhir API Anda tidak dapat diselesaikan. Jika Anda mendapatkan respons yang berbeda, kembali ke Langkah 2, dan pastikan Anda memilih Private untuk jenis endpoint API Anda.

    curl: (6) Could not resolve host: abcdef123.execute-api.us-west-2.amazonaws.com/test

Selanjutnya, Anda terhubung ke instans Amazon EC2 di VPC Anda untuk menjalankan API Anda.

Langkah 7: Hubungkan ke instans di VPC Anda dan panggil API Anda

Selanjutnya, Anda menguji API Anda dari dalam VPC Amazon Anda. Untuk mengakses API pribadi Anda, Anda terhubung ke instans Amazon EC2 di VPC, lalu menggunakan curl untuk menjalankan API Anda. Anda menggunakan Systems Manager Session Manager untuk menyambung ke instans Anda di browser.

Untuk menguji API Anda
  1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.

  2. Pilih Instans.

  3. Pilih contoh bernama private-api-tutorialyang Anda buat dengan AWS CloudFormation template di Langkah 1.

  4. Pilih Connect dan kemudian pilih Session Manager.

  5. Pilih Connect untuk meluncurkan sesi berbasis browser ke instans Anda.

  6. Di sesi Session Manager Anda, gunakan curl untuk menjalankan API Anda. Anda dapat menjalankan API karena Anda menggunakan instance di VPC Amazon Anda.

    curl https://abcdef123.execute-api.us-west-2.amazonaws.com/test

    Verifikasi bahwa Anda mendapatkan responHello from Lambda!.

Anda menggunakan Session Manager untuk memanggil API Anda dari dalam VPC Amazon Anda.

Anda berhasil membuat API yang hanya dapat diakses dari dalam VPC Amazon Anda dan kemudian memverifikasi bahwa itu berfungsi.

Langkah 8: Membersihkan

Untuk mencegah biaya yang tidak perlu, hapus sumber daya yang Anda buat sebagai bagian dari tutorial ini. Langkah-langkah berikut menghapus REST API dan AWS CloudFormation tumpukan Anda.

Untuk menghapus REST API
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pada halaman API, pilih API. Pilih tindakan API, pilih Hapus API, lalu konfirmasikan pilihan Anda.

Untuk menghapus AWS CloudFormation tumpukan
  1. Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

  2. Pilih AWS CloudFormation tumpukan Anda.

  3. Pilih Hapus dan kemudian konfirmasikan pilihan Anda.

Langkah selanjutnya: Otomatisasi dengan AWS CloudFormation

Anda dapat mengotomatiskan pembuatan dan pembersihan semua AWS sumber daya yang terlibat dalam tutorial ini. Untuk contoh AWS CloudFormation template lengkap, lihat template.yaml.