Tutorial: Buat pribadi REST API - APIGerbang Amazon

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

Tutorial: Buat pribadi REST API

Dalam tutorial ini, Anda membuat pribadi RESTAPI. Klien dapat mengakses API satu-satunya dari dalam Amazon AndaVPC. Terisolasi dari internet publik, yang merupakan persyaratan keamanan umum. API

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

Ikhtisar pribadi yang API 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 Siapkan untuk menggunakan API Gateway.

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

Langkah 1: Buat dependensi

Unduh dan unzip AWS CloudFormation template ini. Anda menggunakan template untuk membuat semua dependensi untuk pribadi AndaAPI, termasuk Amazon, VPC titik akhirVPC, dan fungsi Lambda yang berfungsi sebagai backend Anda. API Anda membuat pribadi API 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 IAM sumber daya di akun Anda.

  9. Pilih Kirim.

AWS CloudFormation menyediakan dependensi untuk AndaAPI, yang bisa memakan waktu beberapa menit. Ketika status AWS CloudFormation tumpukan Anda adalah CREATE_ COMPLETE, pilih Output. Catat ID VPC endpoint Anda. Anda membutuhkannya untuk langkah-langkah selanjutnya dalam tutorial ini.

Langkah 2: Buat pribadi API

Anda membuat pribadi API untuk memungkinkan hanya klien di dalam Anda VPC untuk mengaksesnya.

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

  2. Pilih Buat API, lalu pilih RESTAPIBuild.

  3. Untuk APInama, masukkanprivate-api-tutorial.

  4. Untuk tipe API endpoint, pilih Private.

  5. Untuk VPCendpoint IDs, masukkan ID VPC endpoint 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 Anda. API Saat klien memanggil AndaAPI, 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 metode Buat.

  4. Untuk jenis Metode pilihGET.

  5. Untuk jenis Integrasi, pilih fungsi Lambda.

  6. Aktifkan integrasi proxy Lambda. Dengan integrasi proxy Lambda, API Gateway mengirimkan acara 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 Anda API yang memungkinkan klien untuk memanggil Anda API hanya melalui titik VPC akhir Anda. Untuk lebih membatasi akses ke AndaAPI, Anda juga dapat mengonfigurasi kebijakan VPC titik akhir untuk VPC titik akhir 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 VPC endpoint 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: Menyebarkan API

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

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

  2. Pilih API Anda.

  3. Pilih DeployAPI.

  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 AndaAPI.

Langkah 6: Verifikasi bahwa Anda API tidak dapat diakses publik

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

Untuk menguji API
  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 API panggilan Anda. URL URLKelihatannya sepertihttps://abcdef123.execute-api.us-west-2.amazonaws.com/test. VPCTitik akhir yang Anda buat di Langkah 1 telah DNS diaktifkan secara pribadi, sehingga Anda dapat menggunakan yang disediakan URL untuk memanggil Anda. API

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

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

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

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

Selanjutnya, Anda terhubung ke EC2 instans Amazon di Anda VPC untuk memanggil AndaAPI.

Langkah 7: Connect ke sebuah instans di Anda VPC dan panggil API

Selanjutnya, Anda menguji API dari dalam Amazon AndaVPC. Untuk mengakses pribadi AndaAPI, Anda terhubung ke EC2 instans Amazon di Anda VPC dan kemudian menggunakan curl untuk memanggil Anda. API Anda menggunakan Systems Manager Session Manager untuk menyambung ke instans Anda di browser.

Untuk menguji API
  1. Buka EC2 konsol Amazon 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. Dalam sesi Manajer Sesi Anda, gunakan curl untuk memanggil Anda. API Anda dapat memanggil Anda API karena Anda menggunakan instance di Amazon VPC 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 Anda API dari dalam Amazon VPC Anda.

Anda berhasil membuat API yang hanya dapat diakses dari dalam Amazon Anda VPC 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 AWS CloudFormation tumpukan Anda REST API dan Anda.

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

  2. Pada APIshalaman, pilih fileAPI. Pilih APItindakan, 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.