Otorisasi koneksi - AWS Client VPN

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

Otorisasi koneksi

Anda dapat mengonfigurasi handler koneksi klien Untuk titik akhir Client VPN Anda. Handler memungkinkan Anda untuk menjalankan logika kustom yang mengotorisasi koneksi baru, berdasarkan atribut perangkat, pengguna, dan koneksi. Handler koneksi klien berjalan setelah layanan Client VPN mengautentikasi perangkat dan pengguna.

Untuk mengonfigurasi handler koneksi klien ke titik akhir Client VPN Anda, buat fungsi AWS Lambda yang membutuhkan atribut perangkat, pengguna, dan koneksi sebagai input, dan menyerahkan keputusan ke layanan Client VPN untuk mengizinkan atau menolak koneksi baru. Anda menentukan fungsi Lambda di titik akhir Client VPN Anda. Ketika perangkat terhubung ke titik akhir Client VPN Anda, layanan Client VPN mengaktifkan fungsi Lambda atas nama Anda. Hanya koneksi yang diotorisasikan oleh fungsi Lambda yang diizinkan untuk terhubung ke titik akhir Client VPN.

catatan

Saat ini, satu-satunya tipe handler koneksi klien yang didukung adalah fungsi Lambda.

Persyaratan dan pertimbangan

Berikut ini adalah persyaratan dan pertimbangan untuk handler koneksi klien:

  • Nama fungsi Lambda harus diawali dengan prefiks AWSClientVPN-.

  • Mendukung fungsi Lambda yang berkualitas.

  • Fungsi Lambda harus berada di AWS Wilayah yang sama dan AWS akun yang sama dengan titik akhir Client VPN.

  • Waktu fungsi Lambda habis setelah 30 detik. Nilai ini tidak dapat diubah.

  • Fungsi Lambda diaktifkan secara serentak. Fungsi ini diaktifkan setelah autentikasi perangkat dan pengguna, dan sebelum aturan otorisasi dievaluasi.

  • Jika fungsi Lambda diaktifkan untuk koneksi baru dan layanan Client VPN tidak mendapatkan respons yang diharapkan dari fungsi, layanan Client VPN menolak permintaan koneksi. Misalnya, hal ini dapat terjadi jika fungsi Lambda ter-throttling, waktu habis, atau menemukan kesalahan tak terduga lainnya, atau jika respons fungsi tidak dalam format yang valid.

  • Kami merekomendasikan agar Anda mengonfigurasikan konkurensi yang disediakan untuk fungsi Lambda untuk mengaktifkannya agar dapat menskalakan tanpa fluktuasi dalam latensi.

  • Jika Anda memperbarui fungsi Lambda, koneksi ke titik akhir Client VPN yang ada tidak akan terpengaruh. Anda dapat mengakhiri koneksi yang ada, dan kemudian menginstruksikan klien Anda untuk membuat koneksi baru. Untuk informasi selengkapnya, lihat Mengakhiri koneksi klien.

  • Jika klien menggunakan klien yang AWS disediakan untuk terhubung ke titik akhir Client VPN, mereka harus menggunakan versi 1.2.6 atau yang lebih baru untuk Windows, dan versi 1.2.4 atau yang lebih baru untuk macOS. Untuk informasi selengkapnya, lihat Hubungkan menggunakan klien AWS yang disediakan.

Antarmuka Lambda

Fungsi Lambda membutuhkan atribut perangkat, atribut pengguna, dan atribut koneksi sebagai input dari layanan Client VPN. Fungsi tersebut kemudian menyerahkan keputusan ke layanan Client VPN apakah mengizinkan atau menolak koneksi.

Meminta skema

Fungsi Lambda membutuhkan blob JSON yang berisi bidang-bidang berikut sebagai input.

{ "connection-id": <connection ID>, "endpoint-id": <client VPN endpoint ID>, "common-name": <cert-common-name>, "username": <user identifier>, "platform": <OS platform>, "platform-version": <OS version>, "public-ip": <public IP address>, "client-openvpn-version": <client OpenVPN version>, "aws-client-version": <AWS client version>, "groups": <group identifier>, "schema-version": "v3" }
  • connection-id — ID koneksi klien ke titik akhir Client VPN.

  • endpoint-id — ID titik akhir Client VPN.

  • common-name — Pengidentifikasi perangkat. Pada sertifikat klien yang Anda buat untuk perangkat, nama umum secara unik mengidentifikasi perangkat.

  • username — Pengidentifikasi pengguna, jika ada. Untuk autentikasi Direktori Aktif, ini adalah nama pengguna. Untuk autentikasi gabungan berbasis SAML, ini adalah NameID. Untuk autentikasi bersama, bidang ini kosong.

  • platform — Platform sistem operasi klien.

  • platform-version — Versi sistem operasi. Layanan Client VPN memberikan nilai ketika arahan --push-peer-info hadir dalam konfigurasi klien OpenVPN saat klien terhubung ke titik akhir Client VPN, dan saat klien menjalankan platform Windows.

  • public-ip — Alamat IP publik dari perangkat yang terhubung.

  • client-openvpn-version — Versi OpenVPN yang digunakan klien.

  • aws-client-version— Versi AWS klien.

  • groups — Pengidentifikasi grup, jika ada. Untuk autentikasi Direktori Aktif, ini akan menjadi daftar grup Direktori Aktif. Untuk autentikasi gabungan berbasis SAML, ini akan menjadi daftar grup penyedia identitas (IdP). Untuk autentikasi bersama, bidang ini kosong.

  • schema-version — Versi skema. Defaultnya adalah v3.

Skema respons

Fungsi Lambda harus mengembalikan bidang berikut.

{ "allow": boolean, "error-msg-on-denied-connection": "", "posture-compliance-statuses": [], "schema-version": "v3" }
  • allow — Diperlukan. Boolean (true | false) yang menunjukkan apakah koneksi baru diizinkan atau ditolak.

  • error-msg-on-denied-connection — Diperlukan. String dengan karakter maksimal 255 yang dapat digunakan untuk memberikan langkah-langkah dan panduan untuk klien jika koneksi ditolak oleh fungsi Lambda. Ketika terjadi kegagalan selama menjalankan fungsi Lambda (misalnya, karena throttling) pesan default berikut dikembalikan ke klien.

    Error establishing connection. Please contact your administrator.
  • posture-compliance-statuses — Diperlukan. Jika Anda menggunakan fungsi Lambda untuk penilaian postur, ini adalah daftar status untuk perangkat yang terhubung. Anda menentukan nama status sesuai dengan kategori penilaian postur Anda untuk perangkat, misalnya, compliant, quarantined, unknown, dan sebagainya. Panjang setiap nama maksimal 255 karakter. Anda dapat menentukan hingga maksimal 10 status.

  • schema-version — Diperlukan. Versi skema. Defaultnya adalah v3.

Anda dapat menggunakan fungsi Lambda yang sama untuk beberapa titik akhir Client VPN di Wilayah yang sama.

Untuk informasi selengkapnya tentang cara membuat fungsi Lambda, lihat Mulai dengan AWS Lambda dalam AWS Lambda Panduan Developer.

Handler koneksi klien digunakan untuk penilaian postur

Anda dapat menggunakan handler koneksi klien untuk mengintegrasikan titik akhir Client VPN Anda dengan solusi manajemen perangkat yang ada untuk mengevaluasi kepatuhan postur perangkat yang terhubung. Agar fungsi Lambda bekerja sebagai handler otorisasi perangkat, gunakan autentikasi bersama untuk titik akhir Client VPN Anda. Membuat sertifikat klien dan kunci yang unik untuk setiap klien (perangkat) yang akan terhubung ke titik akhir Client VPN. Fungsi Lambda dapat menggunakan nama umum yang unik untuk sertifikat klien (yang diteruskan dari layanan Client VPN) untuk mengidentifikasi perangkat dan mengambil status kepatuhan postur dari solusi manajemen perangkat Anda. Anda dapat menggunakan autentikasi bersama yang dikombinasikan dengan autentikasi berbasis pengguna.

Selain itu, Anda dapat melakukan penilaian postur dasar di dalam fungsi Lambda itu sendiri. Misalnya, Anda dapat menilai bidang platform dan platform-version yang diteruskan ke fungsi Lambda oleh layanan Client VPN.

catatan

Sementara handler koneksi dapat digunakan untuk menerapkan versi AWS Client VPN aplikasi minimum, bidang aws-client-version dalam handler koneksi, hanya berlaku untuk AWS Client VPN aplikasi dan sedang diisi dari variabel lingkungan pada perangkat pengguna.

Mengaktifkan handler koneksi klien

Untuk mengaktifkan handler koneksi klien, buat atau ubah titik akhir Client VPN dan tentukan Amazon Resource Name (ARN) dari fungsi Lambda. Untuk informasi selengkapnya, lihat Buat titik akhir Client VPN dan Mengubah titik akhir Client VPN.

Peran yang terhubung dengan layanan

AWS Client VPN secara otomatis membuat peran terkait layanan di akun Anda yang dipanggil. AWSServiceRoleForClientVPNConnections Peran memiliki izin untuk mengaktifkan fungsi Lambda saat koneksi dibuat ke titik akhir Client VPN. Untuk informasi selengkapnya, lihat Menggunakan peran terkait layanan untuk Client VPN.

Memantau kegagalan otorisasi koneksi

Anda dapat melihat status otorisasi koneksi dari koneksi ke titik akhir Client VPN. Untuk informasi selengkapnya, lihat Melihat koneksi klien.

Ketika handler koneksi klien digunakan untuk penilaian postur, Anda juga dapat melihat status kepatuhan postur dari perangkat yang terhubung ke titik akhir Client VPN Anda di log koneksi. Untuk informasi selengkapnya, lihat Pencatatan koneksi.

Jika perangkat gagal otorisasi koneksi, bidang connection-attempt-failure-reason pada log koneksi mengembalikan salah satu alasan kegagalan berikut:

  • client-connect-failed — Fungsi Lambda mencegah koneksi dibuat.

  • client-connect-handler-timed-out — Waktu fungsi Lambda habis.

  • client-connect-handler-other-execution-error — Fungsi Lambda mengalami kesalahan tak terduga.

  • client-connect-handler-throttled — Fungsi Lambda ter-throttling.

  • client-connect-handler-invalid-response — Fungsi Lambda mengembalikan respons yang tidak valid.

  • client-connect-handler-service-error — Terjadi kesalahan sisi layanan selama upaya koneksi.