Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat kebijakan sesi untuk bucket Amazon S3
Kebijakan sesi adalah kebijakan AWS Identity and Access Management (IAM) yang membatasi pengguna pada bagian tertentu dari bucket Amazon S3. Ia melakukannya dengan mengevaluasi akses secara real time.
catatan
Kebijakan sesi hanya digunakan dengan Amazon S3. Untuk Amazon EFS, Anda menggunakan izin file POSIX untuk membatasi akses.
Anda dapat menggunakan kebijakan sesi saat Anda perlu memberikan akses yang sama ke sekelompok pengguna ke bagian tertentu dari bucket Amazon S3 Anda. Misalnya, sekelompok pengguna mungkin hanya memerlukan akses ke home
direktori. Kelompok pengguna itu berbagi peran IAM yang sama.
catatan
Panjang maksimum kebijakan sesi adalah 2048 karakter. Untuk detail selengkapnya, lihat parameter Permintaan kebijakan untuk CreateUser
tindakan dalam referensi API.
Untuk membuat kebijakan sesi, gunakan variabel kebijakan berikut dalam kebijakan IAM Anda:
-
${transfer:HomeBucket}
-
${transfer:HomeDirectory}
-
${transfer:HomeFolder}
-
${transfer:UserName}
penting
Anda tidak dapat menggunakan variabel sebelumnya dalam Kebijakan Terkelola. Anda juga tidak dapat menggunakannya sebagai variabel kebijakan dalam definisi peran IAM. Anda membuat variabel-variabel ini dalam kebijakan IAM dan menyediakannya secara langsung saat menyiapkan pengguna Anda. Selain itu, Anda tidak dapat menggunakan ${aws:Username}
variabel dalam kebijakan sesi ini. Variabel ini mengacu pada nama pengguna IAM dan bukan nama pengguna yang diperlukan oleh AWS Transfer Family.
Kode berikut menunjukkan contoh kebijakan sesi.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
catatan
Contoh kebijakan sebelumnya mengasumsikan bahwa pengguna memiliki direktori home mereka diatur untuk menyertakan garis miring, untuk menandakan bahwa itu adalah direktori. Jika, di sisi lain, Anda menetapkan pengguna HomeDirectory
tanpa garis miring, maka Anda harus memasukkannya sebagai bagian dari kebijakan Anda.
Dalam contoh kebijakan sebelumnya, perhatikan penggunaan parametertransfer:HomeFolder
,transfer:HomeBucket
, dan transfer:HomeDirectory
kebijakan. Parameter ini diatur untuk HomeDirectory
yang dikonfigurasi untuk pengguna, seperti yang dijelaskan dalam HomeDirectorydanMenerapkan metode API Gateway. Parameter ini memiliki definisi berikut:
transfer:HomeBucket
Parameter diganti dengan komponen pertama dariHomeDirectory
.transfer:HomeFolder
Parameter diganti dengan bagianHomeDirectory
parameter yang tersisa.transfer:HomeDirectory
Parameter memiliki garis miring depan (/
) yang dihapus sehingga dapat digunakan sebagai bagian dari Nama Sumber Daya Amazon S3 (ARN) dalam sebuah pernyataan.Resource
catatan
Jika Anda menggunakan direktori logik—yaitu, pengguna adalah LOGICAL
—parameter kebijakan ini (HomeBucket
,HomeDirectory
, danHomeFolder
) tidak didukung. homeDirectoryType
Misalnya, asumsikan bahwa HomeDirectory
parameter yang dikonfigurasi untuk pengguna Transfer Family adalah/home/bob/amazon/stuff/
.
transfer:HomeBucket
diatur ke/home
.transfer:HomeFolder
diatur ke/bob/amazon/stuff/
.transfer:HomeDirectory
menjadihome/bob/amazon/stuff/
.
Yang pertama "Sid"
memungkinkan pengguna untuk membuat daftar semua direktori mulai dari/home/bob/amazon/stuff/
.
Yang kedua "Sid"
membatasi pengguna put
dan get
akses ke jalur yang sama,/home/bob/amazon/stuff/
.
Dengan kebijakan sebelumnya, saat pengguna masuk, mereka hanya dapat mengakses objek di direktori home mereka. Pada waktu koneksi, AWS Transfer Family ganti variabel-variabel ini dengan nilai yang sesuai untuk pengguna. Melakukan hal ini memudahkan penerapan dokumen kebijakan yang sama ke beberapa pengguna. Pendekatan ini mengurangi overhead peran IAM dan manajemen kebijakan untuk mengelola akses pengguna ke bucket Amazon S3 Anda.
Anda juga dapat menggunakan kebijakan sesi untuk menyesuaikan akses untuk setiap pengguna berdasarkan kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Izin untuk AssumeRole, AssumeRoleWith SALL, dan AssumeRoleWithWebIdentity di Panduan Pengguna IAM.
catatan
AWS Transfer Family menyimpan kebijakan JSON, bukan Nama Sumber Daya Amazon (ARN) kebijakan. Jadi, ketika Anda mengubah kebijakan di konsol IAM, Anda harus kembali ke AWS Transfer Family konsol dan memperbarui pengguna Anda dengan konten kebijakan terbaru. Anda dapat memperbarui pengguna pada tab Info Kebijakan di bagian Konfigurasi pengguna.
Jika Anda menggunakan AWS CLI, Anda dapat menggunakan perintah berikut untuk memperbarui kebijakan.
aws transfer update-user --server-id
server
--user-nameuser
--policy \ "$(aws iam get-policy-version --policy-arnpolicy
--version-idversion
--output json)"