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

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

  • transfer:HomeDirectoryParameter memiliki garis miring depan (/) dihapus sehingga dapat digunakan sebagai bagian dari S3 Amazon Resource Name (ARN) dalam sebuah Resource 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: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 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-name user --policy \ "$(aws iam get-policy-version --policy-arn policy --version-id version --output json)"