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:
-
(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 memberi IAM pengguna Jane
izin akun ke 123456789012
GET
dan PUT
objek dengan awalan
melalui titik akses Jane/
dalam 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
Untuk kebijakan jalur akses untuk secara efektif memberikan akses ke
, 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 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 memberi pengguna IAM
dalam akun Mateo
izin ke 123456789012
GET
objek melalui titik akses
di akun my-access-point
yang memiliki kunci tag 123456789012
ditetapkan dengan nilai data
.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
izin untuk melihat objek yang terkandung dalam ember yang mendasari titik akses 123456789012
di 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 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
untuk mengakses titik dengan asal VPC jaringan.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 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
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 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
" } } }] }