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 AmazonEFS, Anda menggunakan izin POSIX file 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 IAM peran yang sama.
catatan
Panjang maksimum kebijakan sesi adalah 2048 karakter. Untuk detail selengkapnya, lihat parameter Permintaan kebijakan untuk CreateUser
tindakan dalam APIreferensi.
Untuk membuat kebijakan sesi, gunakan variabel kebijakan berikut dalam IAM kebijakan 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 IAM peran. Anda membuat variabel-variabel ini dalam IAM kebijakan 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 IAM pengguna 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 Anda. Parameter ini memiliki definisi berikut:
transfer:HomeBucket
Parameter diganti dengan komponen pertamaHomeDirectory
.transfer:HomeFolder
Parameter diganti dengan bagianHomeDirectory
parameter yang tersisa.transfer:HomeDirectory
Parameter memiliki garis miring depan (/
) dihapus sehingga dapat digunakan sebagai bagian dari S3 Amazon Resource Name (ARN) dalam sebuahResource
pernyataan.
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 manajemen IAM peran dan 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 AssumeRoleWithSAML, dan AssumeRoleWithWebIdentity di Panduan IAM Pengguna.
catatan
AWS Transfer Family menyimpan kebijakanJSON, bukan Amazon Resource Name (ARN) kebijakan. Jadi, ketika Anda mengubah kebijakan di IAM konsol, 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)"