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:
-
(Disarankan) Delegasikan kontrol akses dari bucket ke titik akses seperti yang dijelaskan dalam Mendelegasikan kontrol akses ke titik akses.
-
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
pada akun Jane
atas objek 123456789012
GET
dan PUT
dengan prefiks
melalui titik akses Jane/
pada akun my-access-point
.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
, 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 Jane
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
kepada pengguna IAM dalam akun Mateo
untuk objek 123456789012
GET
melalui titik akses
dalam akun my-access-point
yang kunci tag 123456789012
diatur dengan nilai data
.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
untuk melihat objek yang ada dalam bucket yang mendasari titik akses 123456789012
pada akun my-access-point
.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
ke titik akses dengan asal jaringan VPC.amzn-s3-demo-bucket
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
di Wilayah123456789012
: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
atauVPC
. 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
" } } }] }