Membuat kebijakan sesi untuk bucket Amazon S3 - AWS Transfer Family

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:HomeBucketParameter diganti dengan komponen pertama dariHomeDirectory.

  • transfer:HomeFolderParameter diganti dengan bagian HomeDirectory parameter yang tersisa.

  • transfer:HomeDirectoryParameter 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:HomeBucketdiatur ke/home.

  • transfer:HomeFolderdiatur ke/bob/amazon/stuff/.

  • transfer:HomeDirectorymenjadihome/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-name user --policy \ "$(aws iam get-policy-version --policy-arn policy --version-id version --output json)"