View a markdown version of this page

Jaringan - AWS Lambda

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

Jaringan

Anda mengonfigurasi akses jaringan untuk AWS Lambda microVMS Anda dengan mengaitkan sumber daya Konektor Jaringan dengan microVM Anda pada waktu berjalan. Konektor jaringan ditentukan saat Anda menelepon run-microvm dan tidak dapat diubah saat microVM sedang berjalan.

Gambaran umum

Setiap microVM dapat memiliki konfigurasi jaringan ingress (inbound) dan egress (outbound) independen:

  • Konektor jaringan masuk memungkinkan konektivitas masuk. Klien terhubung ke titik akhir HTTPS yang dikelola layanan, dan Lambda meneruskan lalu lintas ke port yang Anda konfigurasikan dalam microVM. Konektor Ingress AWS dikelola - Anda mereferensikannya dengan ARN saat menjalankan microVM.

  • Konektor jaringan keluar memungkinkan lalu lintas keluar. Secara default, microVMS memiliki akses internet publik. Anda dapat membuat konektor keluar VPC yang dikelola pelanggan untuk merutekan lalu lintas keluar melalui VPC Anda sebagai gantinya.

Konektor tunggal dapat digunakan kembali di banyak microVM - ini adalah pola penggunaan yang dimaksudkan.

Konektivitas Masuk

Setiap MicroVM Lambda dapat dijangkau di URL titik akhir HTTPS unik, yang ditetapkan saat Anda menelepon. run-microvm Klien mengirim permintaan ke titik akhir ini melalui HTTPS. Lambda merutekan setiap permintaan ke port di dalam microVM Anda, tempat aplikasi Anda menerimanya.

Secara default, permintaan yang diterima di titik akhir dirutekan ke port 8080 di dalam microVM. Untuk rute ke port yang berbeda, lihatPerutean port.

Protokol berikut didukung pada titik akhir masuk:

  • HTTP/1.1

  • HTTP/2

  • WebSockets

  • gRPC

  • Server-Sent Acara (SSE)

catatan

Lalu lintas antara klien Anda dan endpoint microVM selalu dienkripsi dengan TLS. Aplikasi Anda dapat melayani permintaan melalui HTTP atau HTTPS secara internal.

Perutean port

Lambda memilih port target di dalam microVM Anda menggunakan urutan prioritas berikut:

  1. X-aws-proxy-portheader — Untuk permintaan HTTP standar, sertakan header ini dengan nomor port target.

  2. WebSocket subprotokol - Jika WebSocket klien Anda tidak dapat mengatur header khusus, tentukan port target sebagai subprotokol bernamalambda-microvms.port.N, di mana nomor N port. Anda menyediakan subprotokol saat Anda membuka koneksi. WebSocket Sebagai contoh, lihat Protokol.

  3. Default (8080) - Jika tidak ada yang ditentukan, permintaan rute ke port 8080.

penting

Port target harus berada dalam yang allowedPorts ditentukan dalam token otentikasi. Permintaan ke port yang tidak sah menerima respons 403 Terlarang.

Autentikasi

Semua permintaan ke endpoint microVM memerlukan token otentikasi yang valid di header. X-aws-proxy-auth Anda menghasilkan token menggunakancreate-microvm-auth-token. Setiap token adalah string JWE (JSON Web Encryption) terenkripsi yang dicakup ke:

  • MicroVM tertentu (diidentifikasi oleh ID).

  • Satu set port yang diizinkan (port tunggal, jangkauan, atau semua port).

  • Waktu kedaluwarsa (dikonfigurasi pada pembuatan token).

Contoh berikut membuat token dan menggunakannya untuk mengirim permintaan yang diautentikasi:

aws lambda-microvms create-microvm-auth-token \ --microvm-identifier microvm-id \ --expiration-in-minutes 30 \ --allowed-ports '[{"port":8080}]'
curl 'https://microvm-endpoint' \ -H 'X-aws-proxy-auth: TOKEN' \ -H 'X-aws-proxy-port: 8080'

Untuk panduan lengkap dalam membuat token dan menghubungkan ke microVM, termasuk WebSocket koneksi, lihat. Menghubungkan ke MicroVM

Respons kesalahan

Kode status HTTP berikut dikembalikan oleh endpoint microVM ketika tidak dapat memproses atau mengirimkan permintaan ke aplikasi Anda. Tanggapan ini berasal dari titik akhir, bukan dari aplikasi Anda.

Kode Status Penyebab dan resolusi
400 Permintaan Buruk Permintaan cacat, atau header port atau subprotokol yang tidak valid. WebSocket Verifikasi formatnya.
403 Dilarang Token yang hilang, kedaluwarsa, atau tidak valid; atau port yang diminta tidak ada dalam token. allowedPorts Buat token baru, atau gunakan port yang diizinkan.
429 Terlalu Banyak Permintaan Batas nilai terlampaui (tingkat akun atau per-microVM). Coba lagi dengan backoff eksponensial.
500 Kesalahan Server Internal Terjadi kesalahan internal. Coba lagi permintaannya.
502 Gateway Buruk Aplikasi tidak merespons, atau resume otomatis tidak berhasil dalam jumlah maksimum upaya coba lagi. Lihat Auto-resume.

Minta header

Namespace X-aws-proxy-* header dicadangkan oleh Lambda untuk metadata permintaan, seperti token otentikasi () dan port target ()X-aws-proxy-auth. X-aws-proxy-port Lambda menghapus X-aws-proxy-* header sebelum meneruskan permintaan ke aplikasi Anda.

Request/response bandwidth

Setiap microVM Lambda memiliki request/response bandwidth yang berskala linier dengan ukurannya. Bandwidth ini berlaku untuk semua lalu lintas melalui endpoint microVM, baik permintaan masuk maupun respons keluar.

Ukuran microVM (baseline) Bandwidth maks
0,5 GB, 0,25 vCPU 1 MB/s (8 Mbps)
1 GB, 0,5 vCPU 2 MB/s (16 Mbps)
2 GB, 1 vCPU 4 MB/s (32 Mbps)
4 GB, 2 vCPU 8 MB/s (64 Mbps)
8 GB, 4 vCPU 16 MB/s (128 Mbps)

Jika Anda mengalami peningkatan latensi permintaan karena saturasi jaringan, kurangi konkurensi permintaan atau ukuran muatan, atau pilih ukuran microVM yang lebih besar untuk meningkatkan bandwidth yang tersedia.

HTTP/2 dukungan

Lambda MicroVMS mendukung HTTP/2 pada titik akhir masuk. Lambda menegosiasikan protokol melalui ALPN (Application-Layer Protocol Negotiation) selama jabat tangan TLS, lebih memilih dan kembali ke. HTTP/2 HTTP/1.1 HTTP/2-capable Klien menggunakannya secara otomatis.

Untuk menggunakan HTTP/2 antara titik akhir dan aplikasi Anda di dalam microVM:

  • Aplikasi Anda melayani TLS - Lambda HTTP/2 bernegosiasi dengan aplikasi Anda melalui ALPN, kembali HTTP/1.1 ke HTTP/2 jika tidak didukung.

  • Aplikasi Anda menyajikan HTTP teks biasa — Sertakan X-aws-proxy-force-h2: true header dalam permintaan Anda untuk digunakan HTTP/2 pada koneksi ke aplikasi Anda.

Konektivitas keluar

Secara default, Lambda MicroVMS memiliki akses internet publik di jalur keluar. Untuk menghubungkan microVM dengan sumber daya di VPC pribadi Anda — seperti RDS, API internal ElastiCache, dan sistem lokal melalui Direct Connect atau VPN — buat Konektor Jaringan Lambda dengan konfigurasi VPC Anda.

Saat menggunakan jalan keluar VPC, lalu lintas keluar tunduk pada aturan grup keamanan dan ACL jaringan yang mengatur lalu lintas di VPC Anda.

Bekerja dengan konektor jaringan jalan keluar

Konektor jaringan keluar merutekan lalu lintas keluar dari microVM Anda melalui VPC Anda. Anda membuat konektor sekali, lalu mereferensikannya dengan ARN saat memulai microVMS melalui perintah. run-microvm

Prasyarat

Sebelum membuat konektor jaringan, Anda memerlukan peran IAM yang memungkinkan Lambda membuat antarmuka jaringan elastis (ENI) di VPC Anda. Peran tersebut memerlukan izin berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateENI", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "TagENI", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" } } } ] }

Membuat konektor jaringan

Buat konektor dengan menentukan subnet VPC Anda, grup keamanan, dan protokol IPv4 jaringan (atau): DualStack

aws lambda-core create-network-connector \ --name my-connector \ --configuration '{ "VpcEgressConfiguration": { "SubnetIds": ["subnet-xxx"], "SecurityGroupIds": ["sg-xxx"], "NetworkProtocol": "IPv4", "AssociatedComputeResourceTypes": ["MicroVm"] } }' \ --operator-role arn:aws:iam::123456789012:role/NetworkConnectorOperatorRole

Status konektor jaringan

Konektor harus dalam ACTIVE keadaan sebelum Anda dapat mereferensikannyarun-microvm.

Status Deskripsi
PENDING Konektor sedang dibuat (ENI yang mendasari sedang disediakan).
ACTIVE Konektor siap digunakan.
INACTIVE Konektor sementara tidak aktif.
FAILED Penyediaan atau pembaruan gagal. Periksa StateReason.
DELETING Konektor sedang dihapus; ENI sedang dibersihkan.
DELETE_FAILED Penghapusan gagal.

Versi konektor jaringan

Pembuatan versi berlaku untuk konektor jaringan keluar VPC (tipe konektor). VPC_EGRESS Konektor keluar VPC diberi versi: setiap update-network-connector panggilan yang berhasil membuat versi baru, dan versi sebelumnya tetap tersedia.

Saat Anda menjalankan microVM, Anda mereferensikan konektor keluar VPC oleh ARN di. --egress-network-connectors Anda dapat menggunakan salah satu bentuk:

  • ARN yang tidak memenuhi syarat - menyelesaikan ke versi konektor terbaru. MicroVM mengambil perubahan konfigurasi secara otomatis. arn:aws:lambda:us-east-1:123456789012:network-connector:nc-id

  • ARN yang memenuhi syarat — menyematkan microVM ke versi tertentu. Gunakan ini untuk menahan microVM pada konfigurasi yang diketahui untuk pengujian, pemecahan masalah, atau rollback. arn:aws:lambda:us-east-1:123456789012:network-connector:nc-id:version-number

MicroVM pindah ke versi baru hanya ketika Anda mengubah referensi ARN, sehingga Anda dapat mengadopsi versi baru sesuai jadwal Anda sendiri.

Contoh run-microvm panggilan menyematkan versi konektor tertentu:

aws lambda-microvms run-microvm \ --image-identifier arn:aws:lambda:us-east-1:123456789012:microvm-image:my-microvm-image \ --egress-network-connectors arn:aws:lambda:us-east-1:123456789012:network-connector:nc-id:version-number \ --idle-policy '{"maxIdleDurationSeconds":900,"suspendedDurationSeconds":1800,"autoResumeEnabled":false}'

Menjalankan microVM dengan konektor jaringan

Referensi konektor ARN saat menjalankan microVM:

aws lambda-microvms run-microvm \ --image-identifier arn:aws:lambda:us-east-1:123456789012:microvm-image:my-microvm-image \ --egress-network-connectors connector-arn \ --idle-policy '{"maxIdleDurationSeconds":900,"suspendedDurationSeconds":1800,"autoResumeEnabled":false}'
catatan

Sebelum Anda memperbarui atau menghapus konektor, pastikan semua microVMS yang menggunakannya telah dihentikan. Memodifikasi konektor yang aktif digunakan dapat menyebabkan masalah konektivitas jaringan untuk menjalankan microVMS.

Anda dapat menggunakan AWS PrivateLink konektivitas pribadi melalui AWS jaringan antara sumber daya VPC Anda dan microVM Lambda, tanpa melintasi internet publik. MicroVMS mendukung dua titik akhir VPC, tergantung pada tujuan lalu lintas yang diinginkan:

  • API manajemen microVM (membuat gambar, menjalankan, menangguhkan, menghentikan) — menggunakan titik akhir VPC Lambda () yang ada. com.amazonaws.region.lambda

  • Konektivitas ke microVMS (lalu lintas HTTPS ke aplikasi yang sedang berjalan) — menggunakan endpoint () terpisah. com.amazonaws.region.lambda-microvm

MicroVMS Lambda berbagi layanan titik akhir VPC yang sama dengan Lambda (). com.amazonaws.region.lambda Untuk petunjuk selengkapnya, lihat Membuat titik akhir antarmuka untuk Lambda.

Untuk mengontrol siapa yang dapat menggunakan titik akhir antarmuka Anda dan tindakan API MicroVMS Lambda mana yang dapat mereka lakukan, lampirkan kebijakan titik akhir. Kebijakan menentukan prinsip yang dapat melakukan tindakan, tindakan yang dapat mereka lakukan, dan sumber daya yang dapat mereka lakukan. Tindakan microVMS Lambda menggunakan awalan tindakan IAM. lambda:

Untuk informasi selengkapnya, lihat Mengontrol Akses ke Layanan dengan titik akhir VPC dalam Panduan Pengguna Amazon VPC.

Contoh kebijakan berikut memungkinkan pengguna MyUser untuk membuat daftar dan mendapatkan gambar microVM melalui titik akhir:

{ "Statement": [ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUser" }, "Effect": "Allow", "Action": [ "lambda:ListMicrovmImages", "lambda:GetMicrovmImage" ], "Resource": "*" } ] }

Untuk menjaga lalu lintas HTTPS ke microVMS yang sedang berjalan Anda tetap pribadi, buat titik akhir antarmuka untuk layanan. com.amazonaws.region.lambda-microvm Titik akhir ini menangani koneksi ke URL endpoint microVM (misalnya,). abc123def456.lambda-microvm.us-east-1.on.aws

Untuk mempelajari lebih lanjut tentang properti titik akhir antarmuka, tinjau panduan titik akhir antarmuka dalam dokumentasi VPC Amazon.

Untuk membuat titik akhir antarmuka untuk konektivitas microVM (konsol)

  1. Buka Halaman titik akhir konsol Amazon VPC.

  2. Pilih Buat titik akhir.

  3. Untuk Kategori layanan, verifikasi bahwa AWS layanan dipilih.

  4. Untuk Nama Layanan, pilihcom.amazonaws.region.lambda-microvm. Verifikasi bahwa Type adalah Interface.

  5. Pilih VPC dan subnet.

  6. Untuk mengaktifkan DNS pribadi untuk titik akhir antarmuka, pilih kotak centang Aktifkan nama DNS (disarankan). Ini memastikan bahwa permintaan yang menggunakan nama host endpoint microVM publik secara otomatis diselesaikan ke titik akhir antarmuka Anda, tanpa perlu perubahan sisi klien.

  7. Untuk Grup keamanan, pilih satu grup keamanan atau lebih. Grup keamanan harus mengizinkan lalu lintas TCP keluar pada port 443 ke antarmuka jaringan titik akhir.

  8. Pilih Buat titik akhir.

Untuk menggunakan opsi DNS pribadi, Anda harus mengatur enableDnsHostnames dan enableDnsSupport atribut VPC Anda. Untuk informasi selengkapnya, lihat Melihat dan memperbarui dukungan DNS untuk VPC Anda di Panduan Pengguna Amazon VPC.

Untuk membuat titik akhir antarmuka untuk konektivitas microVM (CLI)AWS

aws ec2 create-vpc-endpoint \ --vpc-id vpc-ec43eb89 \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.us-east-1.lambda-microvm \ --subnet-id subnet-abababab \ --security-group-id sg-1a2b3c4d \ --private-dns-enabled

Untuk memverifikasi bahwa titik akhir tersedia dan DNS pribadi berlaku:

aws ec2 describe-vpc-endpoints \ --vpc-endpoint-ids vpce-1a2b3c4d5e6f7g8h9 \ --query 'VpcEndpoints[0].{State:State,PrivateDns:PrivateDnsEnabled,Dns:DnsEntries[*].DnsName}'

Saat DNS pribadi diaktifkan — Titik akhir mengelola resolusi DNS untuk di dalam VPC *.lambda-microvm.region.on.aws Anda. Nama host endpoint microVM Anda yang ada (misalnya,abc123def456.lambda-microvm.us-east-1.on.aws) diselesaikan ke alamat IP pribadi dari antarmuka jaringan titik akhir. Tidak diperlukan perubahan klien.

Saat DNS pribadi dinonaktifkan - Amazon VPC menghasilkan nama DNS khusus titik akhir untuk titik akhir Anda dalam formulir. vpce-id-hash.lambda-microvm.region.vpce.amazonaws.com Untuk merutekan lalu lintas melalui titik akhir ini sambil tetap mencapai microVM yang benar, Anda harus mempertahankan nama host microVM asli di dua tempat:

  • TLS Server Name Indication (SNI) — Jabat tangan TLS menggunakan nilai ini untuk mengidentifikasi microVM mana koneksi itu.

  • Header Host HTTP — Proxy menggunakan nilai ini untuk merutekan permintaan ke microVM yang benar.

Jika salah satu nilai disetel ke nama host titik akhir VPC alih-alih nama host microVM, koneksi tidak dapat dirutekan ke microVM yang benar.

Contoh: Connect melalui nama DNS khusus titik akhir

Contoh berikut menggunakan curl dengan --connect-to flag untuk mengarahkan koneksi TCP ke titik akhir VPC Anda sambil menyimpan nama host microVM di URL, SNI, dan header Host:

ENDPOINT_HOST=abc123def456.lambda-microvm.us-east-1.on.aws VPCE_HOST=vpce-0a1b2c3d4e5f67890-a1b2c3d4.lambda-microvm.us-east-1.vpce.amazonaws.com curl --connect-to "$ENDPOINT_HOST:443:$VPCE_HOST:443" \ -H "x-aws-proxy-auth: $MICROVM_AUTH_TOKEN" \ -H "x-aws-proxy-port: 8080" \ "https://$ENDPOINT_HOST/"

--connect-toBendera memberi tahu curl untuk membuka koneksi TCP ke alamat titik akhir VPC, sedangkan URL, TLS SNI, dan header Host tetap disetel ke nama host microVM Anda.

Untuk informasi selengkapnya, lihat Mengakses layanan melalui titik akhir antarmuka dalam Panduan Pengguna Amazon VPC.

Anda dapat melampirkan kebijakan titik akhir untuk mengontrol microVM mana yang dapat dijangkau melalui titik akhir VPC. lambda-microvm Kebijakan endpoint pada lambda-microvm layanan memungkinkan Anda menjangkau koneksi ke akun atau organisasi tertentu. Secara default, titik akhir memungkinkan koneksi ke microVMS di akun apa pun. AWS (Catatan: Klien yang membuat koneksi harus tetap memegang token autentikasi microVM yang valid untuk diberikan akses).

Secara default, titik akhir VPC memiliki kebijakan akses penuh yang memungkinkan semua lalu lintas. Saat Anda mengganti kebijakan default dengan kebijakan khusus, Lambda MicroVMS mengevaluasi kebijakan tersebut terhadap lambda:ConnectMicrovm tindakan pada setiap koneksi yang dilakukan melalui titik akhir. Jika kebijakan tidak mengizinkan penyambungan ke microVMS, sambungan akan ditolak dengan respons HTTP 403 Forbidden. Kebijakan yang tidak memberikan lambda:ConnectMicrovm menolak semua koneksi melalui titik akhir.

catatan

lambda:ConnectMicrovmTindakan ini mengotorisasi koneksi ke titik akhir microVM melalui titik akhir antarmuka. Ini bukan operasi API Lambda dan tidak dapat digunakan dalam kebijakan berbasis identitas IAM atau berbasis sumber daya — ini hanya valid dalam kebijakan titik akhir VPC.

Prinsipal dan sumber daya

Koneksi ke endpoint microVM diautentikasi dengan token autentikasi MicroVM daripada Signature Version 4. AWS Untuk alasan ini, tidak ada prinsipal IAM yang terkait dengan koneksi. Sebaliknya, Lambda MicroVMS mengevaluasi kebijakan endpoint dengan prinsipal anonim. Ini berarti:

  • Principalharus"*". Kebijakan yang menyebutkan kepala sekolah tertentu tidak cocok dan menyangkal setiap koneksi.

  • Kunci kondisi yang bergantung pada identitas pemohon (sepertiaws:PrincipalArn,aws:PrincipalOrgID, danaws:userid) tidak diisi dan tidak akan cocok.

  • Resourcejuga harus"*". MicroVM Lambda tidak mencakup evaluasi kebijakan titik akhir untuk ARN sumber daya microVM individu. Untuk membatasi microVM mana yang dapat dicapai titik akhir, gunakan kunci aws:ResourceAccount kondisi daripada elemen. Resource

Kunci kondisi yang didukung

Kunci syarat Deskripsi
aws:ResourceAccount AWS Akun yang memiliki microVM yang terhubung ke.
aws:ResourceOrgID ID AWS organisasi Organizations dari akun yang memiliki microVM.
aws:SourceVpce ID titik akhir antarmuka yang dilewati koneksi.
aws:SourceVpc ID dari VPC koneksi berasal dari.
aws:VpcSourceIp Alamat IP pribadi klien yang membuat koneksi.

Contoh: Izinkan koneksi hanya ke microVMS di akun Anda sendiri

Kebijakan endpoint berikut memungkinkan koneksi melalui titik akhir hanya ke microVM yang dimiliki oleh akun 111122223333. Koneksi ke microVMS yang dimiliki oleh akun lain ditolak.

{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": "lambda:ConnectMicrovm", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }