Mengkonfigurasi IAM kebijakan untuk menggunakan titik akses - 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 IAM kebijakan untuk menggunakan titik akses

Jalur akses Amazon S3 mendukung AWS Identity and Access Management (IAM) kebijakan sumber daya yang memungkinkan Anda mengontrol penggunaan titik 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 IAM sumber daya, pastikan untuk menyelesaikan peringatan keamanan, kesalahan, peringatan umum, dan saran AWS Identity and Access Management Access Analyzer sebelum Anda menyimpan kebijakan Anda. IAMAccess Analyzer menjalankan pemeriksaan kebijakan untuk memvalidasi kebijakan Anda terhadap tata bahasa IAM kebijakan 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 selengkapnya tentang memvalidasi kebijakan dengan menggunakan IAM Access Analyzer, lihat Validasi kebijakan IAM Access Analyzer di Panduan Pengguna. IAM Untuk melihat daftar peringatan, kesalahan, dan saran yang ditampilkan oleh IAM Access Analyzer, lihat referensi pemeriksaan kebijakan IAM Access Analyzer.

Contoh kebijakan titik akses

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

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 memberi IAM pengguna Jane 123456789012 izin akun ke GET dan PUT objek dengan awalan Jane/ melalui titik akses my-access-point dalam 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

Untuk kebijakan jalur akses untuk secara efektif memberikan akses ke Jane, bucket yang mendasarinya juga harus mengizinkan akses yang sama ke Jane. Anda dapat mendelegasikan kontrol akses dari bucket ke titik akses seperti yang dijelaskan dalamMendelegasikan 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 memberi pengguna IAM Mateo dalam akun 123456789012 izin ke GET objek melalui titik akses my-access-point di akun 123456789012 yang memiliki kunci tag data ditetapkan dengan nilai keuangan.

{ "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 IAM pengguna Arnav di akun 123456789012 izin untuk melihat objek yang terkandung dalam ember yang mendasari titik akses my-access-point di 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 mengharuskan semua titik akses baru dibuat dengan jaringan virtual private cloud (VPC) asal. 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 VPC jaringan

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

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 memiliki kunci kondisi yang dapat Anda gunakan dalam IAM kebijakan untuk mengontrol akses ke sumber daya Anda. Kunci kondisi berikut hanya mewakili bagian dari IAM kebijakan. Untuk contoh kebijakan lengkap, lihat Contoh kebijakan titik akses, 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 pada titik aksesARN. Contoh berikut cocok dengan semua titik akses untuk Akun AWS 123456789012 di Wilayah us-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 cocok dengan titik akses dengan VPC asal.

"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 API operasi S3 menurut jenis sumber daya S3, lihat. Izin yang diperlukan untuk operasi Amazon API 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 titik akses 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" } } }] }