Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pendekatan manajemen izin dinamis
Memahami arsitektur izin Transfer Family
AWS Transfer Family mendukung manajemen izin dinamis melalui kebijakan sesi, yang memungkinkan Anda membatasi izin efektif peran IAM saat runtime. Pendekatan ini berfungsi untuk pengguna yang dikelola layanan dan pengguna penyedia identitas khusus, tetapi hanya didukung saat mentransfer file ke atau dari Amazon S3 (bukan Amazon EFS).
Setiap AWS Transfer Family pengguna beroperasi dengan model izin yang terdiri dari:
-
Peran IAM dasar - Mendefinisikan izin dasar untuk pengguna
-
Kebijakan sesi opsional - Membatasi (cakupan ke bawah) izin dasar saat runtime
Izin efektif adalah persimpangan izin peran dasar dan izin kebijakan sesi. Kebijakan sesi hanya dapat membatasi izin; mereka tidak dapat memberikan izin tambahan di luar apa yang diizinkan oleh peran dasar.
Arsitektur ini berlaku untuk kedua tipe pengguna:
-
Pengguna yang dikelola layanan - Kebijakan sesi dapat dikonfigurasi langsung di pengaturan pengguna
-
Pengguna penyedia identitas khusus - Kebijakan sesi dapat dikembalikan sebagai bagian dari respons otentikasi atau disimpan di AWS Secrets Manager
Dua pendekatan untuk manajemen izin
Saat merancang izin untuk pengguna Transfer Family yang membutuhkan pola akses unik, Anda dapat memilih di antara dua pendekatan utama:
- Satu peran per pengguna
-
Buat peran IAM terpisah untuk setiap pengguna Transfer Family dengan izin khusus yang disesuaikan dengan kebutuhan pengguna tersebut. Gunakan pendekatan ini ketika:
-
Setiap pengguna memerlukan izin yang sangat berbeda
-
Administrasi izin ditangani oleh orang yang berbeda di organisasi Anda
-
Anda memerlukan kontrol halus atas akses pengguna individu
-
- Peran bersama dengan kebijakan sesi
-
Gunakan satu peran IAM dengan izin luas (seperti akses ke seluruh bucket Amazon S3 yang berisi beberapa direktori home pengguna) dan terapkan kebijakan sesi untuk membatasi setiap pengguna ke area spesifik mereka. Pendekatan ini secara signifikan mengurangi overhead administratif dibandingkan dengan mengelola peran terpisah untuk setiap pengguna. Gunakan pendekatan ini ketika:
-
Pengguna membutuhkan jenis akses yang serupa tetapi ke sumber daya yang berbeda (misalnya, semua pengguna memerlukan read/write akses, tetapi masing-masing hanya ke folder mereka sendiri)
-
Anda ingin menyederhanakan manajemen peran dan menghindari membuat lusinan atau ratusan peran individu
-
Pengguna hanya boleh mengakses direktori beranda yang ditunjuk dalam bucket bersama
-
Administrasi izin terpusat di dalam organisasi Anda
Misalnya, alih-alih membuat peran terpisah untuk pengguna “alice”, “bob”, dan “charlie”, Anda dapat membuat satu peran dengan akses ke seluruh
s3://company-transfers/
bucket, lalu menggunakan kebijakan sesi untuk membatasi alice kes3://company-transfers/alice/
, bob kes3://company-transfers/bob/
, dan sebagainya. -
Menerapkan kebijakan sesi
Kebijakan sesi berfungsi dengan membatasi izin efektif dari peran IAM dasar yang ditetapkan kepada pengguna. Izin terakhir adalah persimpangan izin peran dan izin kebijakan sesi.
Anda dapat menerapkan kebijakan sesi dinamis dengan dua cara:
- Substitusi variabel
-
Gunakan variabel kebijakan Transfer Family seperti
${transfer:Username}
,${transfer:HomeDirectory}
, dan${transfer:HomeBucket}
dalam kebijakan sesi Anda. Variabel ini secara otomatis diganti dengan nilai aktual saat runtime. Untuk informasi lebih lanjut tentang variabel-variabel ini, lihatMembuat kebijakan sesi untuk bucket Amazon S3. - Generasi dinamis
-
Untuk penyedia identitas kustom, buat kebijakan sesi on-the-fly sebagai bagian dari respons autentikasi dari fungsi Lambda atau metode API Gateway Anda. Pendekatan ini memungkinkan Anda membuat kebijakan yang sangat disesuaikan berdasarkan atribut pengguna, keanggotaan grup, atau sumber data eksternal pada waktu otentikasi.
Anda juga dapat menyimpan kebijakan sesi yang telah dibuat sebelumnya AWS Secrets Manager dengan menyertakan kunci yang diberi nama
Policy
dengan kebijakan sesi JSON sebagai nilainya. Ini memungkinkan Anda untuk menggunakan peran IAM luas yang sama di beberapa pengguna sambil mempertahankan kontrol akses khusus pengguna.
catatan
Kebijakan sesi hanya didukung untuk transfer file ke dan dari Amazon S3. Mereka tidak berlaku untuk sistem file Amazon EFS. Untuk Amazon EFS, izin diatur oleh UID/GID dan bit izin diterapkan dalam sistem file itu sendiri.
Implementasi menurut tipe pengguna
- Pengguna yang dikelola layanan
-
Untuk pengguna yang dikelola layanan, Anda dapat menentukan kebijakan sesi secara langsung dalam konfigurasi pengguna melalui AWS Transfer Family konsol, API, atau CLI. Untuk informasi selengkapnya, lihat Bekerja dengan pengguna yang dikelola layanan.
- Pengguna penyedia identitas khusus
-
Untuk pengguna penyedia identitas kustom, Anda dapat memberikan kebijakan sesi dengan dua cara:
-
Melalui AWS Secrets Manager dengan menyertakan kunci bernama
Policy
dengan kebijakan sesi sebagai nilai -
Langsung di respons fungsi Lambda atau respons API Gateway sebagai bagian dari hasil otentikasi
Untuk informasi selengkapnya, lihat Solusi penyedia identitas khusus.
-
Contoh: Menyederhanakan manajemen peran dengan kebijakan sesi
Contoh ini menunjukkan bagaimana manajemen izin dinamis dapat secara signifikan mengurangi overhead administratif sambil menjaga keamanan.
Skenario
Organisasi Anda memiliki 50 pengguna yang memerlukan akses SFTP untuk mentransfer file. Setiap pengguna hanya boleh mengakses folder mereka sendiri dalam bucket Amazon S3 bersama yang disebut. company-transfers
Tanpa kebijakan sesi, Anda perlu membuat 50 peran IAM terpisah.
- Pendekatan tradisional (tanpa kebijakan sesi)
-
-
Buat 50 peran IAM:
TransferRole-Alice
,,TransferRole-Bob
TransferRole-Charlie
, dll. -
Setiap peran memiliki izin khusus hanya untuk folder pengguna itu
-
Mengelola izin memerlukan pembaruan peran individual
-
Menambahkan pengguna baru membutuhkan pembuatan peran baru
-
- Pendekatan dinamis (dengan kebijakan sesi)
-
-
Buat 1 peran IAM:
TransferRole-Shared
dengan izin luas ke seluruh bucket -
Gunakan kebijakan sesi untuk membatasi setiap pengguna ke folder spesifik mereka saat runtime
-
Mengelola izin memerlukan pembaruan satu peran atau templat kebijakan sesi
-
Menambahkan pengguna baru tidak memerlukan peran baru, hanya konfigurasi pengguna
-
Implementasi
Inilah cara Anda menerapkan pendekatan dinamis (menggunakan company-transfers
bucket sebagai contoh untuk diganti dengan bucket Amazon S3 Anda yang sebenarnya):
Untuk menerapkan manajemen izin dinamis
-
Buat satu peran IAM bersama dengan izin Amazon S3 yang luas:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::company-transfers/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::company-transfers" } ] }
-
Buat templat kebijakan sesi yang membatasi akses ke folder pengguna:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::company-transfers/${transfer:Username}/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::company-transfers", "Condition": { "StringLike": { "s3:prefix": "${transfer:Username}*" } } } ] }
-
Konfigurasikan setiap pengguna dengan:
-
Peran IAM bersama
-
Kebijakan sesi diterapkan sebagai berikut:
-
Pengguna yang dikelola layanan: Gunakan API atau CLI untuk menerapkan JSON melalui parameter Kebijakan saat membuat atau memodifikasi pengguna (konsol hanya menawarkan opsi kebijakan yang telah ditentukan sebelumnya)
-
Pengguna penyedia identitas khusus: Baik mengembalikannya sebagai bagian dari respons fungsi Lambda selama autentikasi, atau simpan AWS Secrets Manager sebagai kunci bernama “Kebijakan” di samping kredensyal pengguna
-
-
Direktori rumah:
/company-transfers/${transfer:Username}/
-