Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penggunaan AWS Lambda untuk mengintegrasikan penyedia identitas Anda
Topik ini menjelaskan cara membuat AWS Lambda fungsi yang terhubung ke penyedia identitas kustom Anda. Anda dapat menggunakan penyedia identitas kustom apa pun, seperti Okta, Manajer Rahasia OneLogin, atau penyimpanan data kustom yang menyertakan logika otorisasi dan otentikasi.
Untuk sebagian besar kasus penggunaan, cara yang disarankan untuk mengonfigurasi penyedia identitas kustom adalah dengan menggunakanSolusi penyedia identitas khusus.
catatan
Sebelum Anda membuat server Transfer Family yang menggunakan Lambda sebagai penyedia identitas, Anda harus membuat fungsi. Untuk contoh fungsi Lambda, lihatContoh fungsi Lambda. Atau, Anda dapat menerapkan tum CloudFormation pukan yang menggunakan salah satuTemplat fungsi lambda. Selain itu, pastikan fungsi Lambda Anda menggunakan kebijakan berbasis sumber daya yang mempercayai Transfer Family. Untuk contoh kebijakan, lihat Kebijakan berbasis sumber daya Lambda.
-
Pilih Buat server untuk membuka halaman Buat server. Untuk Pilih penyedia identitas, pilih Penyedia Identi tas Kustom, seperti yang ditunjukkan pada tangkapan layar berikut.
catatan
Pilihan metode otentikasi hanya tersedia jika Anda mengaktifkan SFTP sebagai salah satu protokol untuk server Transfer Family Anda.
-
Pastikan nilai default, Gunakan AWS Lambda untuk menghubungkan penyedia identitas Anda, dipilih.
-
Untuk AWS Lambda fungsi, pilih nama fungsi Lambda Anda.
-
Isi kotak yang tersisa, lalu pilih Buat server. Untuk detail tentang langkah-langkah yang tersisa untuk membuat server, lihatMengkonfigurasi titik akhir server SFTP, FTPS, atau FTP.
Kebijakan berbasis sumber daya Lambda
Anda harus memiliki kebijakan yang mereferensikan server Transfer Family dan Lambda ARN. Misalnya, Anda dapat menggunakan kebijakan berikut dengan fungsi Lambda yang terhubung ke penyedia identitas Anda. Kebijakan ini lolos dari JSON sebagai string.
-
"Policy": "{\"Version\":\"2012-10-17\", \"Id\":\"default\", \"Statement\":[ {\"Sid\":\"AllowTransferInvocation\", \"Effect\":\"Allow\", \"Principal\":{\"Service\":\"transfer.amazonaws.com\"}, \"Action\":\"lambda:InvokeFunction\", \"Resource\":\"arn:aws:lambda:region:123456789012:function:my-lambda-auth-function\", \"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:transfer:region:123456789012:server/server-id\"}}} ]}"
catatan
Dalam contoh kebijakan di atas, ganti masing-masing user input
placeholder dengan informasi Anda sendiri.
Struktur pesan peristiwa
Struktur pesan peristiwa dari server SFTP dikirim ke fungsi Authorizer Lambda untuk IDP kustom adalah sebagai berikut.
{ "username": "value", "password": "value", "protocol": "SFTP", "serverId": "s-abcd123456", "sourceIp": "192.168.0.100" }
Di mana username dan password adalah nilai untuk kredenSIAL masuk yang dikirim ke server.
Misalnya, Anda memasukkan perintah berikut untuk menghubungkan:
sftp bobusa@server_hostname
Anda kemudian diminta untuk memasukkan kata sandi Anda:
Enter password: mysecretpassword
Anda dapat memeriksa ini dari fungsi Lambda Anda dengan mencetak peristiwa yang dilewati dari dalam fungsi Lambda. Seharusnya terlihat mirip dengan blok teks berikut.
{ "username": "bobusa", "password": "mysecretpassword", "protocol": "SFTP", "serverId": "s-abcd123456", "sourceIp": "192.168.0.100" }
Struktur acara serupa untuk FTP dan FTPS: satu-satunya perbedaan adalah nilai-nilai tersebut digunakan untuk protocol parameter, bukan SFTP.
Fungsi lambda untuk otentikasi
Untuk menerapkan strategi otentikasi yang berbeda, edit fungsi Lambda. Untuk membantu Anda memenuhi kebutuhan aplikasi Anda, Anda dapat menerapkan CloudFormation tumpukan. Untuk informasi selengkapnya tentang Lambda, lihat Panduan Peng AWS Lambda embang atau Mem bangun fungsi Lambda dengan. Node.js
Nilai Lambda yang valid
Tabel berikut menjelaskan detail untuk nilai yang diterima Transfer Family untuk fungsi Lambda yang digunakan untuk penyedia identitas kustom.
| Nilai | Deskripsi | Diperlukan |
|---|---|---|
|
|
Menentukan Nama Sumber Daya Amazon (ARN) dari peran IAM yang mengontrol akses pengguna ke bucket Amazon S3 atau sistem file Amazon EFS. Kebijakan yang dilampirkan pada peran ini menentukan tingkat akses yang ingin Anda berikan kepada pengguna saat mentransfer file masuk dan keluar dari sistem file Amazon S3 atau Amazon EFS Anda. IAM role juga harus berisi hubungan kepercayaan yang mengizinkan server untuk mengakses sumber daya Anda saat melayani permintaan transfer pengguna. Untuk detail tentang membangun hubungan kepercayaan, lihatUntuk membangun hubungan kepercayaan. |
Diperlukan |
|
|
Identitas POSIX lengkap, termasuk ID pengguna ( |
Diperlukan untuk penyimpanan dukungan Amazon EFS |
|
|
Daftar nilai kunci publik SSH yang valid untuk pengguna ini. Daftar kosong menyiratkan bahwa ini bukan login yang valid. Tidak boleh dikembalikan selama otentikasi kata sandi. |
Opsional |
|
|
Kebijakan sesi untuk pengguna Anda sehingga Anda dapat menggunakan peran IAM yang sama di beberapa pengguna. Kebijakan ini mencakup bawah akses pengguna ke bagian dari bucket Amazon S3 mereka. Untuk informasi selengkapnya tentang menggunakan kebijakan sesi dengan penyedia identitas khusus, lihat contoh kebijakan sesi dalam topik ini. |
Opsional |
|
|
Jenis direktori landing (folder) yang Anda inginkan sebagai direktori home pengguna Anda saat mereka masuk ke server.
|
Opsional |
|
|
Pemetaan direktori logis yang menentukan jalur dan kunci Amazon S3 atau Amazon EFS mana yang harus terlihat oleh pengguna Anda dan bagaimana Anda ingin membuatnya terlihat. Anda harus menentukan |
Diperlukan jika |
|
|
Direktori landing untuk pengguna saat mereka masuk ke server menggunakan klien. Format tergantung pada backend penyimpanan Anda:
pentingNama bucket atau ID sistem file Amazon EFS harus disertakan dalam jalur. Menghilangkan informasi ini akan mengakibatkan kesalahan “File tidak ditemukan” selama transfer file. |
Opsional |
catatan
HomeDirectoryDetailsadalah representasi string dari peta JSON. Ini berbeda denganPosixProfile, yang merupakan objek peta JSON yang sebenarnya, dan PublicKeys yang merupakan array string JSON. Lihat contoh kode untuk detail khusus bahasa.
HomeDirectory Persyaratan Format
Saat menggunakan HomeDirectory parameter, pastikan Anda menyertakan format jalur lengkap:
-
Untuk penyimpanan Amazon S3: Selalu sertakan nama bucket dalam format
/bucket-name/path -
Untuk penyimpanan Amazon EFS: Sel alu sertakan ID sistem file dalam format
/fs-12345/path
Penyebab umum kesalahan “File tidak ditemukan” adalah menghilangkan nama bucket atau ID sistem file EFS dari HomeDirectory jalur. Pengaturan HomeDirectory ke hanya / tanpa pengenal penyimpanan akan menyebabkan otentikasi berhasil tetapi operasi file gagal.
Contoh fungsi Lambda
Bagian ini menyajikan beberapa contoh fungsi Lambda, baik di NodeJS dan Python.
catatan
Dalam contoh ini, pengguna, peran, profil POSIX, kata sandi, dan detail direktori home semuanya adalah contoh, dan harus diganti dengan nilai aktual Anda.
Menguji konfigurasi Anda
Setelah membuat penyedia identitas kustom, Anda harus menguji konfigurasi Anda.
Jika otentikasi pengguna berhasil, pengujian mengembalikan respons StatusCode:
200 HTTP, string kosong Message: "" (yang akan berisi alasan kegagalan jika tidak), dan Response bidang.
catatan
Dalam contoh respons di bawah ini, Response bidang adalah objek JSON yang telah “disatukan” (diubah menjadi string JSON datar yang dapat digunakan di dalam program), dan berisi rincian peran dan izin pengguna.
{ "Response":"{\"Policy\":\"{\\\"Version\\\":\\\"2012-10-17\\\",\\\"Statement\\\":[{\\\"Sid\\\":\\\"ReadAndListAllBuckets\\\",\\\"Effect\\\":\\\"Allow\\\",\\\"Action\\\":[\\\"s3:ListAllMybuckets\\\",\\\"s3:GetBucketLocation\\\",\\\"s3:ListBucket\\\",\\\"s3:GetObjectVersion\\\",\\\"s3:GetObjectVersion\\\"],\\\"Resource\\\":\\\"*\\\"}]}\",\"Role\":\"arn:aws:iam::000000000000:role/MyUserS3AccessRole\",\"HomeDirectory\":\"/\"}", "StatusCode": 200, "Message": "" }
Templat fungsi lambda
Anda dapat menerapkan tumpukan CloudFormation yang menggunakan fungsi Lambda untuk otentikasi. Kami menyediakan beberapa templat yang mengotentikasi dan mengotorisasi pengguna Anda menggunakan kredenSIAL masuk. Anda dapat memodifikasi template atau AWS Lambda kode ini untuk lebih menyesuaikan akses pengguna.
catatan
Anda dapat membuat FIPS-enabled AWS Transfer Family server melalui CloudFormation dengan menentukan kebijakan FIPS-enabled keamanan di template Anda. Kebijakan keamanan yang tersedia dijelaskan di Kebijakan keamanan untuk AWS Transfer Family server
Untuk membuat CloudFormation tumpukan untuk digunakan untuk otentikasi
-
Buka CloudFormation konsol di https://console.aws.amazon.com/cloudformation
. -
Ikuti petunjuk untuk menerapkan tumpu CloudFormation kan dari template yang ada di Mem ilih template tumpukan di Panduan AWS CloudFormation Pengguna.
-
Gunakan salah satu template berikut untuk membuat fungsi Lambda untuk digunakan untuk otentikasi di Transfer Family.
-
Templat tumpukan klasik (Amazon Cognito)
Template dasar untuk membuat AWS Lambda untuk digunakan sebagai penyedia identitas khusus di AWS Transfer Family. Ini mengotentikasi terhadap Amazon Cognito untuk otentikasi berbasis kata sandi dan kunci publik dikembalikan dari bucket Amazon S3 jika otentikasi berbasis kunci publik digunakan. Setelah penerapan, Anda dapat memodifikasi kode fungsi Lambda untuk melakukan sesuatu yang berbeda.
-
AWS Secrets Manager templat tumpukan
Template dasar yang digunakan AWS Lambda dengan AWS Transfer Family server untuk mengintegrasikan Secrets Manager sebagai penyedia identitas. Ini mengotentikasi terhadap entr AWS Secrets Manager i dalam format
aws/transfer/. Selain itu, rahasia harus menyimpan pasangan kunci-nilai untuk semua properti pengguna yang dikembalikan ke Transfer Family. Setelah penerapan, Anda dapat memodifikasi kode fungsi Lambda untuk melakukan sesuatu yang berbeda.server-id/username -
Template tumpukan Okta
: Template dasar yang digunakan AWS Lambda dengan AWS Transfer Family server untuk mengintegrasikan Okta sebagai penyedia identitas khusus. -
Okta-mfa template tumpukan
: Template dasar yang digunakan AWS Lambda dengan AWS Transfer Family server untuk mengintegrasikan Okta, dengan Otentikasi Multi Faktor, sebagai penyedia identitas khusus. -
Template Azure Active Directory
: detail untuk tumpukan ini dijelaskan di posting blog Meng autentikasi AWS Transfer Family dengan Azure Active Directory dan AWS Lambda .
Setelah tumpukan telah digunakan, Anda dapat melihat detail tentangnya di tab Out put di CloudFormation konsol.
Menerapkan salah satu tumpukan ini adalah cara termudah untuk mengintegrasikan penyedia identitas kustom ke alur kerja Transfer Family.
-