Mengkonfigurasi kebijakan IAM untuk menggunakan titik akses untuk bucket tujuan umum - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengkonfigurasi kebijakan IAM untuk menggunakan titik akses untuk bucket tujuan umum

Jalur akses Amazon S3 untuk bucket tujuan umum mendukung kebijakan sumber daya AWS Identity and Access Management (IAM) yang memungkinkan Anda mengontrol penggunaan jalur akses berdasarkan sumber daya, pengguna, atau kondisi lainnya. Agar aplikasi atau pengguna dapat mengakses objek melalui titik akses, baik titik akses maupun bucket yang mendasarinya harus mengizinkan permintaan tersebut.

penting

Menambahkan titik akses S3 ke bucket tidak mengubah perilaku bucket saat bucket diakses langsung melalui nama bucket atau Amazon Resource Name (ARN). Semua operasi yang ada terhadap bucket akan terus bekerja seperti sebelumnya. Pembatasan yang Anda sertakan dalam kebijakan titik akses hanya berlaku untuk permintaan yang dibuat melalui titik akses tersebut.

Saat Anda menggunakan kebijakan sumber daya IAM, pastikan untuk menyelesaikan peringatan keamanan, kesalahan, peringatan umum, dan saran AWS Identity and Access Management Access Analyzer sebelum Anda menyimpan kebijakan Anda. Penganalisis Akses IAM menjalankan pemeriksaan kebijakan untuk memvalidasi kebijakan Anda terhadap tata bahasa kebijakan IAM dan praktik terbaik. Pemeriksaan ini menghasilkan temuan dan memberikan rekomendasi untuk membantu Anda membuat kebijakan yang berfungsi dan sesuai dengan praktik terbaik keamanan.

Untuk mempelajari validasi kebijakan menggunakan Penganalisis Akses IAM lebih lanjut, lihat Memvalidasi kebijakan Penganalisis Akses IAM di Panduan Pengguna IAM. Untuk melihat daftar peringatan, kesalahan, dan saran yang ditampilkan oleh Penganalisis Akses IAM, lihat referensi pemeriksaan kebijakan Penganalisis Akses IAM.

Contoh kebijakan untuk titik akses untuk bucket tujuan umum

Contoh berikut menunjukkan cara membuat kebijakan IAM untuk mengontrol permintaan yang dibuat melalui titik akses untuk bucket tujuan umum.

catatan

Izin yang diberikan dalam kebijakan titik akses hanya berlaku jika bucket yang mendasarinya juga mengizinkan akses yang sama. Anda dapat melakukan ini menggunakan dua cara:

  1. (Disarankan) Delegasikan kontrol akses dari bucket ke titik akses seperti yang dijelaskan dalam Mendelegasikan kontrol akses ke titik akses.

  2. Tambahkan izin yang sama yang tercantum dalam kebijakan titik akses ke kebijakan bucket dasar. Contoh kebijakan titik akses Contoh 1 mendemonstrasikan cara memodifikasi kebijakan bucket dasar agar akses yang diperlukan dapat dilakukan.

contoh 1–Pemberian kebijakan titik akses

Kebijakan titik akses berikut memberikan izin kepada pengguna IAM Jane pada akun 123456789012 atas objek GET dan PUT dengan prefiks Jane/ melalui titik akses my-access-point pada akun 123456789012.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/Jane/*" }] }
catatan

Agar kebijakan titik akses secara efektif memberikan akses ke Jane, bucket yang mendasari juga harus mengizinkan akses yang sama ke Jane. Anda dapat mendelegasikan kontrol akses dari bucket ke titik akses seperti yang dijelaskan dalam Mendelegasikan kontrol akses ke titik akses. Atau, Anda dapat menambahkan kebijakan berikut ke bucket yang mendasarinya untuk memberikan izin yang diperlukan kepada Jane. Perhatikan bahwa entri Resource berbeda antara titik akses dan kebijakan bucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/Jane/*" }] }
contoh 2–Kebijakan titik akses dengan kondisi tag

Kebijakan titik akses berikut memberikan izin Mateo kepada pengguna IAM dalam akun 123456789012 untuk objek GET melalui titik akses my-access-point dalam akun 123456789012 yang kunci tag data diatur dengan nilai finance.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Principal" : { "AWS": "arn:aws:iam::123456789012:user/Mateo" }, "Action":"s3:GetObject", "Resource" : "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/*", "Condition" : { "StringEquals": { "s3:ExistingObjectTag/data": "finance" } } }] }
contoh 3–Kebijakan titik akses yang mengizinkan daftar bucket

Kebijakan titik akses berikut memungkinkan pengguna IAM Arnav di akun 123456789012 untuk melihat objek yang ada dalam bucket yang mendasari titik akses my-access-point pada akun 123456789012.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Arnav" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point" }] }
contoh 4–Kebijakan kontrol layanan

Kebijakan kontrol layanan berikut mewajibkan semua titik akses baru untuk dibuat dengan asal jaringan cloud privat virtual (VPC). Dengan kebijakan ini, pengguna di dalam organisasi Anda tidak dapat membuat titik akses baru yang dapat diakses dari internet.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:CreateAccessPoint", "Resource": "*", "Condition": { "StringNotEquals": { "s3:AccessPointNetworkOrigin": "VPC" } } }] }
contoh 5–Kebijakan bucket untuk membatasi operasi S3 ke asal jaringan VPC

Kebijakan bucket berikut membatasi akses ke semua operasi S3 object untuk bucket amzn-s3-demo-bucket ke titik akses dengan asal jaringan VPC.

penting

Sebelum menggunakan pernyataan seperti yang ditunjukkan pada contoh ini, pastikan Anda tidak perlu menggunakan fitur yang tidak didukung oleh titik akses, seperti Cross-Region Replication.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": [ "s3:AbortMultipartUpload", "s3:BypassGovernanceRetention", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:DeleteObjectVersion", "s3:DeleteObjectVersionTagging", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionAcl", "s3:PutObjectVersionTagging", "s3:RestoreObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringNotEquals": { "s3:AccessPointNetworkOrigin": "VPC" } } } ] }

Kunci syarat

Titik akses S3 untuk bucket tujuan umum memiliki kunci kondisi yang dapat Anda gunakan dalam kebijakan IAM untuk mengontrol akses ke sumber daya Anda. Kunci kondisi berikut hanya mewakili bagian dari kebijakan IAM. Untuk contoh kebijakan lengkap, lihat Contoh kebijakan untuk titik akses untuk bucket tujuan umum, Mendelegasikan kontrol akses ke titik akses, dan Memberikan izin untuk titik akses lintas akun.

s3:DataAccessPointArn

Contoh ini menunjukkan string yang dapat Anda gunakan untuk mencocokkan ARN titik akses. Contoh berikut cocok dengan semua titik akses untuk Akun AWS 123456789012 di Wilayahus-west-2:

"Condition" : { "StringLike": { "s3:DataAccessPointArn": "arn:aws:s3:us-west-2:123456789012:accesspoint/*" } }
s3:DataAccessPointAccount

Contoh ini menunjukkan operator string yang dapat Anda gunakan untuk mencocokkan ID akun pemilik titik akses. Contoh berikut cocok dengan semua titik akses yang dimiliki oleh Akun AWS 123456789012.

"Condition" : { "StringEquals": { "s3:DataAccessPointAccount": "123456789012" } }
s3:AccessPointNetworkOrigin

Contoh ini menunjukkan operator string yang dapat Anda gunakan untuk mencocokkan asal jaringan, baik Internet atau VPC. Contoh berikut hanya mencocokkan titik akses dengan asal VPC.

"Condition" : { "StringEquals": { "s3:AccessPointNetworkOrigin": "VPC" } }

Untuk informasi selengkapnya tentang menggunakan kunci kondisi dengan Amazon S3, lihat Tindakan, sumber daya, dan kunci kondisi untuk Amazon S3 di Referensi Otorisasi Layanan.

Untuk informasi selengkapnya tentang izin operasi S3 API menurut jenis sumber daya S3, lihat. Izin yang diperlukan untuk operasi API Amazon S3

Mendelegasikan kontrol akses ke titik akses

Anda dapat mendelegasikan kontrol akses untuk sebuah bucket ke titik akses bucket. Kebijakan ini memungkinkan akses penuh ke semua titik akses yang dimiliki oleh akun pemilik bucket. Oleh karena itu, semua akses ke bucket ini dikendalikan oleh kebijakan yang melekat pada titik aksesnya. Kami menyarankan Anda untuk mengonfigurasi bucket dengan cara ini untuk semua kasus penggunaan yang tidak memerlukan akses langsung ke bucket.

contoh 6–Kebijakan bucket yang mendelegasikan kontrol akses ke titik akses
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }

Memberikan izin untuk titik akses lintas akun

Untuk membuat titik akses ke bucket yang dimiliki oleh akun lain, Anda harus terlebih dahulu membuat titik akses dengan menentukan nama bucket dan ID pemilik akun. Kemudian, pemilik bucket harus memperbarui kebijakan bucket untuk mengotorisasi permintaan dari titik akses. Membuat titik akses mirip dengan membuat DNS CNAME di mana titik akses tidak menyediakan akses ke konten bucket. Semua akses bucket dikendalikan oleh kebijakan bucket. Contoh kebijakan bucket berikut mengizinkan GET dan LIST meminta pada bucket dari titik akses yang dimiliki oleh Akun AWS yang tepercaya.

Ganti Bucket ARN dengan ARN ember.

contoh 7 — Kebijakan bucket mendelegasikan izin ke yang lain Akun AWS
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : ["s3:GetObject","s3:ListBucket"], "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Access point owner's account ID" } } }] }
OSZAR »
OSZAR »