Memecahkan masalah kesalahan akses ditolak (403 Forbidden) di Amazon S3 - Amazon Simple Storage Service

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

Memecahkan masalah kesalahan akses ditolak (403 Forbidden) di Amazon S3

Kesalahan akses ditolak (HTTP403 Forbidden) muncul ketika AWS secara eksplisit atau implisit menolak permintaan otorisasi.

  • Penolakan eksplisit terjadi ketika kebijakan berisi Deny pernyataan untuk tindakan tertentu AWS .

  • Penolakan implisit terjadi ketika tidak ada pernyataan yang berlaku dan juga tidak ada Deny pernyataan yang berlakuAllow.

Karena kebijakan AWS Identity and Access Management (IAM) secara implisit menyangkal prinsip IAM secara default, kebijakan tersebut harus secara eksplisit mengizinkan prinsipal untuk melakukan suatu tindakan. Jika tidak, kebijakan tersebut secara implisit menolak akses. Untuk informasi selengkapnya, lihat Perbedaan antara penolakan eksplisit dan implisit dalam Panduan Pengguna IAM. Untuk informasi tentang logika evaluasi kebijakan yang menentukan apakah permintaan akses diizinkan atau ditolak, lihat Logika evaluasi kebijakan di Panduan Pengguna IAM.

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

Topik berikut mencakup penyebab paling umum kesalahan akses ditolak di Amazon S3.

catatan

Untuk kesalahan akses ditolak (HTTP403 Forbidden), Amazon S3 tidak membebankan biaya kepada pemilik bucket saat permintaan dimulai di luar AWS akun individu pemilik bucket atau organisasi pemilik bucket. AWS

catatan

Jika Anda mencoba memecahkan masalah izin, mulailah dengan Akses contoh pesan yang ditolak dan cara memecahkan masalah bagian tersebut, lalu buka bagian tersebut. Kebijakan bucket dan kebijakan IAM Pastikan juga untuk mengikuti panduan diKiat untuk memeriksa izin.

Akses contoh pesan yang ditolak dan cara memecahkan masalah

penting

Dalam beberapa minggu mendatang, mulai 16 Juni 2025, Amazon S3 akan mulai menyediakan pesan kesalahan yang ditolak akses yang ditingkatkan untuk permintaan yang dibuat ke sumber daya di akun dalam organisasi yang sama di. AWS Organizations Pesan-pesan ini akan tersedia di semua Wilayah AWS, termasuk AWS GovCloud (US) Regions dan Wilayah Tiongkok.

Amazon S3 sekarang menyertakan konteks tambahan dalam kesalahan akses ditolak (HTTP403 Forbidden) untuk permintaan yang dibuat ke sumber daya dalam organisasi yang sama Akun AWS atau sama di. AWS Organizations Konteks baru ini mencakup jenis kebijakan yang menolak akses, alasan penolakan, dan informasi tentang pengguna IAM atau peran yang meminta akses ke sumber daya.

Konteks tambahan ini membantu Anda memecahkan masalah akses, mengidentifikasi akar penyebab kesalahan akses ditolak, dan memperbaiki kontrol akses yang salah dengan memperbarui kebijakan yang relevan. Konteks tambahan ini juga tersedia di AWS CloudTrail log. Pesan kesalahan yang ditolak akses yang ditingkatkan untuk permintaan akun yang sama atau organisasi yang sama sekarang tersedia di semua Wilayah AWS, termasuk Wilayah dan Wilayah Tiongkok AWS GovCloud (US) Regions .

Sebagian besar pesan kesalahan akses ditolak muncul dalam formatUser user-arn is not authorized to perform action on "resource-arn" because context. Dalam contoh ini, user-arn adalah Nama Sumber Daya Amazon (ARN) pengguna yang tidak menerima akses, action adalah tindakan layanan yang ditolak kebijakan, dan resource-arn merupakan ARN sumber daya tempat kebijakan tersebut bertindak. contextKolom ini mewakili konteks tambahan tentang jenis kebijakan yang menjelaskan mengapa kebijakan menolak akses.

Jika kebijakan secara eksplisit menolak akses karena kebijakan berisi Deny pernyataan, maka pesan kesalahan akses ditolak menyertakan frasa. with an explicit deny in a type policy Ketika kebijakan secara implisit menolak akses, maka pesan kesalahan akses ditolak menyertakan frasa. because no type policy allows the action action

penting
  • Pesan yang ditolak akses yang disempurnakan dikembalikan hanya untuk permintaan akun yang sama atau untuk permintaan dalam organisasi yang sama di. AWS Organizations Permintaan lintas akun di luar organisasi yang sama menampilkan pesan umumAccess Denied.

    Untuk informasi tentang logika evaluasi kebijakan yang menentukan apakah permintaan akses lintas akun diizinkan atau ditolak, lihat Logika evaluasi kebijakan lintas akun di Panduan Pengguna IAM. Untuk panduan yang menunjukkan cara memberikan akses lintas akun, lihat. Contoh 2: Pemilik bucket yang memberikan izin bucket lintas akun

  • Untuk permintaan dalam organisasi yang sama di AWS Organizations:

    • Pesan yang ditolak akses yang disempurnakan tidak dikembalikan jika penolakan terjadi karena kebijakan titik akhir virtual private cloud (VPC).

    • Pesan yang ditolak akses yang disempurnakan disediakan setiap kali pemilik bucket dan akun penelepon milik organisasi yang sama. AWS Organizations Meskipun bucket yang dikonfigurasi dengan pemilik Object Ownership Bucket S3 lebih disukai atau pengaturan Object writer mungkin berisi objek yang dimiliki oleh akun yang berbeda, kepemilikan objek tidak memengaruhi peningkatan akses pesan yang ditolak. Pesan yang ditolak akses yang disempurnakan dikembalikan untuk semua permintaan objek selama pemilik bucket dan penelepon berada di organisasi yang sama, terlepas dari siapa yang memiliki objek tertentu. Untuk informasi tentang setelan dan konfigurasi Kepemilikan Objek, lihatMengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda.

  • Pesan kesalahan ditolak akses yang disempurnakan tidak dikembalikan untuk permintaan yang dibuat ke bucket direktori. Permintaan bucket direktori mengembalikan Access Denied pesan umum.

  • Jika beberapa kebijakan dari jenis kebijakan yang sama menolak permintaan otorisasi, pesan kesalahan akses ditolak tidak menentukan jumlah kebijakan.

  • Jika beberapa jenis kebijakan menolak permintaan otorisasi, pesan kesalahan hanya menyertakan salah satu jenis kebijakan tersebut.

  • Jika permintaan akses ditolak karena beberapa alasan, pesan kesalahan hanya mencakup salah satu alasan penolakan.

Contoh berikut menunjukkan format untuk berbagai jenis pesan kesalahan yang ditolak akses dan cara memecahkan masalah setiap jenis pesan.

Akses ditolak karena kebijakan kontrol sumber daya — penolakan eksplisit

  1. Periksa Deny pernyataan untuk tindakan dalam kebijakan kontrol sumber daya Anda (RCPs). Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui RCP Anda dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Memperbarui kebijakan kontrol sumber daya (RCP) di Panduan AWS Organizations Pengguna.

An error occurred (AccessDenied) when calling the GetObject operation: User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with an explicit deny in a resource control policy

Akses ditolak karena Kebijakan Kontrol Layanan — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan kontrol layanan Anda (SCPs). Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui SCP Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Memperbarui SCP di Panduan AWS Organizations Pengguna.

User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: s3:GetObject because no service control policy allows the s3:GetObject action

Akses ditolak karena Kebijakan Kontrol Layanan — penolakan eksplisit

  1. Periksa Deny pernyataan untuk tindakan dalam Kebijakan Kontrol Layanan Anda (SCPs). Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui SCP Anda dengan mengubah Deny pernyataan untuk memungkinkan pengguna mengakses yang diperlukan. Untuk contoh bagaimana Anda dapat melakukannya, lihat Mencegah pengguna dan peran IAM membuat perubahan tertentu, dengan pengecualian untuk peran admin yang ditentukan dalam Panduan AWS Organizations Pengguna. Untuk informasi selengkapnya tentang memperbarui SCP Anda, lihat Memperbarui SCP di AWS Organizations Panduan Pengguna.

User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: s3:GetObject with an explicit deny in a service control policy

Akses ditolak karena kebijakan titik akhir VPC — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan titik akhir virtual private cloud (VPC) Anda. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui kebijakan titik akhir VPC Anda dengan menambahkan pernyataan. Allow Untuk informasi selengkapnya, lihat Memperbarui kebijakan titik akhir VPC di Panduan.AWS PrivateLink

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject because no VPC endpoint policy allows the s3:GetObject action

Akses ditolak karena kebijakan titik akhir VPC — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan titik akhir virtual private cloud (VPC) Anda. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui kebijakan titik akhir VPC Anda dengan mengubah Deny pernyataan untuk memungkinkan pengguna mengakses yang diperlukan. Misalnya, Anda dapat memperbarui Deny pernyataan Anda untuk menggunakan kunci aws:PrincipalAccount kondisi dengan operator StringNotEquals kondisi untuk mengizinkan akses utama tertentu, seperti yang ditunjukkan padaContoh 7: Mengecualikan prinsipal tertentu dari pernyataan Deny. Untuk informasi selengkapnya tentang memperbarui kebijakan titik akhir VPC Anda, lihat Memperbarui kebijakan titik akhir VPC di Panduan.AWS PrivateLink

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with an explicit deny in a VPC endpoint policy

Akses ditolak karena batas izin — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan di batas izin Anda. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui batas izin Anda dengan menambahkan Allow pernyataan ke kebijakan IAM Anda. Untuk informasi selengkapnya, lihat Batas izin untuk entitas IAM dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" because no permissions boundary allows the s3:GetObject action

Akses ditolak karena batas izin — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan di batas izin Anda. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui batas izin Anda dengan mengubah Deny pernyataan dalam kebijakan IAM Anda untuk memungkinkan pengguna mengakses yang diperlukan. Misalnya, Anda dapat memperbarui Deny pernyataan Anda untuk menggunakan kunci aws:PrincipalAccount kondisi dengan operator StringNotEquals kondisi untuk mengizinkan akses utama tertentu, seperti yang ditunjukkan aws:PrincipalAccountdalam Panduan Pengguna IAM. Untuk informasi selengkapnya, lihat Batas izin untuk entitas IAM dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: s3:GetObject with an explicit deny in a permissions boundary

Akses ditolak karena kebijakan sesi — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan sesi Anda. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui kebijakan sesi Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Kebijakan sesi dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject because no session policy allows the s3:GetObject action

Akses ditolak karena kebijakan sesi — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan sesi Anda. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui kebijakan sesi Anda dengan mengubah Deny pernyataan untuk memungkinkan pengguna mengakses yang diperlukan. Misalnya, Anda dapat memperbarui Deny pernyataan Anda untuk menggunakan kunci aws:PrincipalAccount kondisi dengan operator StringNotEquals kondisi untuk mengizinkan akses utama tertentu, seperti yang ditunjukkan padaContoh 7: Mengecualikan prinsipal tertentu dari pernyataan Deny. Untuk informasi selengkapnya tentang memperbarui kebijakan sesi Anda, lihat Kebijakan sesi dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with an explicit deny in a session policy

Akses ditolak karena kebijakan berbasis sumber daya — penolakan implisit

catatan

Kebijakan berbasis sumber daya berarti kebijakan seperti kebijakan bucket dan kebijakan jalur akses.

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan berbasis sumber daya Anda. Periksa juga apakah pengaturan IgnorePublicAcls S3 Block Public Access diterapkan pada bucket, access point, atau level akun. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui kebijakan Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis sumber daya dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

    Anda mungkin juga perlu menyesuaikan pengaturan IgnorePublicAcls blokir akses publik untuk bucket, titik akses, atau akun. Untuk informasi selengkapnya, lihat Akses ditolak karena pengaturan Blokir Akses Publik dan Mengonfigurasi pengaturan blokir akses publik untuk bucket S3 Anda.

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject because no resource-based policy allows the s3:GetObject action

Akses ditolak karena kebijakan berbasis sumber daya — penolakan eksplisit

catatan

Kebijakan berbasis sumber daya berarti kebijakan seperti kebijakan bucket dan kebijakan jalur akses.

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan berbasis sumber daya Anda. Periksa juga apakah pengaturan RestrictPublicBuckets S3 Block Public Access diterapkan pada bucket, access point, atau level akun. Untuk contoh berikut, tindakannya adalahs3:GetObject.

  2. Perbarui kebijakan Anda dengan mengubah Deny pernyataan untuk memungkinkan pengguna mengakses yang diperlukan. Misalnya, Anda dapat memperbarui Deny pernyataan Anda untuk menggunakan kunci aws:PrincipalAccount kondisi dengan operator StringNotEquals kondisi untuk mengizinkan akses utama tertentu, seperti yang ditunjukkan padaContoh 7: Mengecualikan prinsipal tertentu dari pernyataan Deny. Untuk informasi selengkapnya tentang memperbarui kebijakan berbasis sumber daya, lihat Kebijakan berbasis sumber daya dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

    Anda mungkin juga perlu menyesuaikan pengaturan RestrictPublicBuckets blokir akses publik untuk bucket, titik akses, atau akun. Untuk informasi selengkapnya, lihat Akses ditolak karena pengaturan Blokir Akses Publik dan Mengonfigurasi pengaturan blokir akses publik untuk bucket S3 Anda.

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with an explicit deny in a resource-based policy

Akses ditolak karena kebijakan berbasis identitas — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan berbasis identitas yang dilampirkan pada identitas. Untuk contoh berikut, tindakan s3:GetObject dilampirkan ke penggunaMaryMajor.

  2. Perbarui kebijakan Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis identitas dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject because no identity-based policy allows the s3:GetObject action

Akses ditolak karena kebijakan berbasis identitas — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan berbasis identitas yang dilampirkan pada identitas. Untuk contoh berikut, tindakan s3:GetObject dilampirkan ke penggunaMaryMajor.

  2. Perbarui kebijakan Anda dengan mengubah Deny pernyataan untuk memungkinkan pengguna mengakses yang diperlukan. Misalnya, Anda dapat memperbarui Deny pernyataan Anda untuk menggunakan kunci aws:PrincipalAccount kondisi dengan operator StringNotEquals kondisi untuk mengizinkan akses utama tertentu, seperti yang ditunjukkan aws:PrincipalAccountdalam Panduan Pengguna IAM. Untuk informasi selengkapnya, lihat Kebijakan berbasis identitas dan Mengedit kebijakan IAM di Panduan Pengguna IAM.

User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with an explicit deny in an identity-based policy

Akses ditolak karena pengaturan Blokir Akses Publik

Fitur Blokir Akses Publik Amazon S3 menyediakan pengaturan untuk titik akses, bucket, dan akun untuk membantu Anda mengelola akses publik ke sumber daya Amazon S3. Untuk informasi selengkapnya tentang cara Amazon S3 mendefinisikan “publik,” lihat Arti “publik”.

Secara bawaan, bucket baru, titik akses, dan objek baru tidak mengizinkan akses publik. Namun, pengguna dapat mengubah kebijakan bucket, kebijakan titik akses, kebijakan pengguna IAM, izin objek, atau daftar kontrol akses (ACLs) untuk mengizinkan akses publik. Setelan Akses Publik Blok S3 mengesampingkan kebijakan, izin, dan. ACLs Sejak April 2023, semua pengaturan Blokir Akses Publik diaktifkan secara default untuk bucket baru.

Saat Amazon S3 menerima permintaan untuk mengakses bucket atau objek, itu akan menentukan apakah akun dari bucket atau pemilik bucket menerapkan blokir akses publik. Jika permintaan tersebut dibuat melalui titik akses, maka Amazon S3 juga memeriksa pengaturan blokir akses publik untuk titik akses tersebut. Jika ada pengaturan blokir akses publik yang sudah ada yang melarang akses yang diminta tersebut, maka Amazon S3 akan menolak permintaan tersebut.

Blokir Akses Publik Amazon S3 menyediakan empat pengaturan. Pengaturan ini bersifat independen dan dapat digunakan dalam kombinasi apa pun. Setiap pengaturan dapat diterapkan ke titik akses, ember, atau seluruh AWS akun. Jika pengaturan blokir akses publik untuk titik akses, bucket, atau akun berbeda, maka Amazon S3 akan menerapkan kombinasi yang paling ketat dari pengaturan titik akses, bucket, dan akun.

Ketika Amazon S3 mengevaluasi apakah suatu operasi dilarang oleh pengaturan blokir akses publik, itu akan menolak permintaan apa pun yang melanggar titik akses, bucket, atau pengaturan akun.

Empat pengaturan yang disediakan oleh Amazon S3 Block Public Access adalah sebagai berikut:

  • BlockPublicAcls— Pengaturan ini berlaku untukPutBucketAcl,PutObjectAcl,PutObject,CreateBucket,CopyObject, dan POST Object permintaan. BlockPublicAclsPengaturan menyebabkan perilaku berikut:

    • PutBucketAcldan PutObjectAcl panggilan gagal jika daftar kontrol akses yang ditentukan (ACL) bersifat publik.

    • PutObjectpanggilan gagal jika permintaan menyertakan ACL publik.

    • Jika pengaturan ini diterapkan ke akun, maka CreateBucket panggilan gagal dengan respons HTTP 400 (Bad Request) jika permintaan menyertakan ACL publik.

    Misalnya, ketika akses ditolak untuk CopyObject permintaan karena BlockPublicAcls pengaturan, Anda menerima pesan berikut:

    An error occurred (AccessDenied) when calling the CopyObject operation: User: arn:aws:sts::123456789012:user/MaryMajor is not authorized to perform: s3:CopyObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" because public access control lists (ACLs) are blocked by the BlockPublicAcls block public access setting.
  • IgnorePublicAclsIgnorePublicAcls Pengaturan menyebabkan Amazon S3 mengabaikan semua publik ACLs di ember dan objek apa pun yang dikandungnya. Jika izin permintaan Anda hanya diberikan oleh ACL publik, maka pengaturan IgnorePublicAcls menolak permintaan tersebut.

    Setiap penolakan yang dihasilkan dari IgnorePublicAcls pengaturan adalah implisit. Misalnya, jika IgnorePublicAcls menolak GetObject permintaan karena ACL publik, Anda menerima pesan berikut:

    User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject because no resource-based policy allows the s3:GetObject action
  • BlockPublicPolicy— Pengaturan ini berlaku untuk PutBucketPolicy dan PutAccessPointPolicy permintaan.

    Menyetel BlockPublicPolicy bucket menyebabkan Amazon S3 menolak panggilan PutBucketPolicy jika kebijakan bucket yang ditentukan mengizinkan akses publik. Pengaturan ini juga menyebabkan Amazon S3 menolak panggilan ke PutAccessPointPolicy semua titik akses akun yang sama pada bucket jika kebijakan yang ditentukan mengizinkan akses publik.

    Pengaturan BlockPublicPolicy untuk titik akses menyebabkan Amazon S3 menolak panggilan ke PutAccessPointPolicy dan PutBucketPolicy yang dilakukan melalui jalur akses jika kebijakan yang ditentukan (baik untuk titik akses atau bucket yang mendasarinya) mengizinkan akses publik.

    Misalnya, ketika akses ditolak atas PutBucketPolicy permintaan karena BlockPublicPolicy pengaturan, Anda menerima pesan berikut:

    An error occurred (AccessDenied) when calling the PutBucketPolicy operation: User: arn:aws:sts::123456789012:user/MaryMajor is not authorized to perform: s3:PutBucketPolicy on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" because public policies are blocked by the BlockPublicPolicy block public access setting.
  • RestrictPublicBucketsRestrictPublicBucketsPengaturan membatasi akses ke titik akses atau bucket dengan kebijakan publik hanya untuk Layanan AWS prinsipal dan pengguna yang berwenang dalam akun pemilik bucket dan akun pemilik jalur akses. Pengaturan ini memblokir semua akses lintas akun ke titik akses atau bucket (kecuali oleh Layanan AWS prinsipal), sambil tetap memungkinkan pengguna di dalam akun untuk mengelola titik akses atau bucket. Pengaturan ini juga menolak semua panggilan anonim (atau tidak ditandatangani).

    Setiap penolakan yang dihasilkan dari RestrictPublicBuckets pengaturan adalah eksplisit. Misalnya, jika RestrictPublicBuckets menolak GetObject permintaan karena kebijakan bucket publik atau jalur akses, Anda menerima pesan berikut:

    User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with an explicit deny in a resource-based policy

Untuk informasi selengkapnya tentang pengaturan ini, lihat Pengaturan blokir akses publik. Untuk meninjau dan memperbarui pengaturan ini, lihatMengonfigurasi blokir akses publik.

Kebijakan bucket dan kebijakan IAM

Operasi tingkat bucket

Jika tidak ada kebijakan bucket, maka bucket secara implisit mengizinkan permintaan dari identitas AWS Identity and Access Management (IAM) apa pun di akun pemilik ember. Bucket juga secara implisit menolak permintaan dari identitas IAM lainnya dari akun lain, serta menolak permintaan anonim (tidak ditandatangani). Namun, jika tidak ada kebijakan pengguna IAM, pemohon (kecuali mereka adalah pengguna Akun AWS root) secara implisit ditolak untuk membuat permintaan apa pun. Untuk informasi selengkapnya tentang logika evaluasi ini, lihat Menentukan apakah permintaan ditolak atau diizinkan dalam akun di Panduan Pengguna IAM.

Operasi tingkat objek

Jika objek dimiliki oleh akun pemilik bucket, kebijakan bucket dan kebijakan pengguna IAM akan berfungsi dengan cara yang sama untuk operasi tingkat objek seperti yang mereka lakukan untuk operasi tingkat bucket. Misalnya, jika tidak ada kebijakan bucket, bucket secara implisit mengizinkan permintaan objek dari identitas IAM apa pun di akun pemilik ember. Bucket juga secara implisit menolak permintaan objek dari identitas IAM lainnya dari akun lain, serta menolak permintaan anonim (tidak ditandatangani). Namun, jika tidak ada kebijakan pengguna IAM, pemohon (kecuali mereka adalah pengguna Akun AWS root) secara implisit ditolak untuk membuat permintaan objek apa pun.

Jika objek dimiliki oleh akun eksternal, maka akses ke objek hanya dapat diberikan melalui daftar kontrol akses objek (ACLs). Kebijakan bucket dan kebijakan pengguna IAM masih dapat digunakan untuk menolak permintaan objek.

Oleh karena itu, untuk memastikan kebijakan bucket atau kebijakan pengguna IAM Anda tidak menyebabkan kesalahan Access Denied (403 Forbidden), pastikan persyaratan berikut terpenuhi:

  • Untuk akses akun yang sama, tidak boleh ada pernyataan Deny secara eksplisit terhadap peminta yang ingin Anda berikan izin, baik dalam kebijakan bucket maupun kebijakan pengguna IAM. Jika Anda ingin memberikan izin hanya dengan menggunakan kebijakan bucket dan kebijakan pengguna IAM, setidaknya harus ada satu pernyataan Allow eksplisit di salah satu kebijakan ini.

  • Untuk akses lintas akun, tidak boleh ada Deny pernyataan eksplisit terhadap pemohon yang Anda coba berikan izin, baik dalam kebijakan bucket atau kebijakan pengguna IAM. Untuk memberikan izin lintas akun hanya dengan menggunakan kebijakan bucket dan kebijakan pengguna IAM, pastikan bahwa kebijakan bucket dan kebijakan pengguna IAM dari pemohon menyertakan pernyataan eksplisit. Allow

catatan

Pernyataan Allow dalam kebijakan bucket hanya berlaku untuk objek yang dimiliki oleh akun pemilik bucket yang sama. Namun, pernyataan Deny dalam kebijakan bucket berlaku untuk semua objek terlepas dari kepemilikan objek.

Untuk meninjau atau mengedit kebijakan bucket
catatan

Untuk melihat atau mengedit kebijakan bucket, Anda harus memiliki izin s3:GetBucketPolicy.

  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dari daftar Bucket, pilih nama bucket yang ingin Anda lihat atau edit kebijakan bucket-nya.

  4. Pilih tab Izin.

  5. Di Bawah Kebijakan bucket, pilih Edit. Halaman Edit kebijakan bucket akan muncul.

Untuk meninjau atau mengedit kebijakan bucket Anda menggunakan AWS Command Line Interface (AWS CLI), gunakan get-bucket-policyperintah.

catatan

Jika Anda terkunci dari bucket karena kebijakan bucket yang salah, masuk ke AWS Management Console dengan menggunakan kredensi pengguna Akun AWS root Anda. Untuk mendapatkan kembali akses ke bucket Anda, pastikan untuk menghapus kebijakan bucket yang salah dengan menggunakan kredensi pengguna Akun AWS root Anda.

Kiat untuk memeriksa izin

Untuk memeriksa apakah peminta memiliki izin yang tepat dalam melakukan operasi Amazon S3, coba hal berikut ini:

Pengaturan Amazon S3 ACL

Saat memeriksa pengaturan ACL Anda, pertama-tama tinjau setelan Kepemilikan Objek Anda untuk memeriksa ACLs apakah diaktifkan di bucket. Ketahuilah bahwa izin ACL hanya dapat digunakan untuk memberikan izin dan tidak dapat digunakan untuk menolak permintaan. ACLs juga tidak dapat digunakan untuk memberikan akses ke pemohon yang ditolak oleh penolakan eksplisit dalam kebijakan bucket atau kebijakan pengguna IAM.

Pengaturan Kepemilikan Objek disetel ke pemilik Bucket diberlakukan

Jika pengaturan yang diberlakukan pemilik Bucket diaktifkan, setelan ACL tidak akan menyebabkan kesalahan Access Denied (403 Forbidden) karena setelan ini menonaktifkan semua ACLs yang berlaku untuk bucket dan objek. Pemilik bucket diberlakukan adalah setelan default (dan disarankan) untuk bucket Amazon S3.

Pengaturan Kepemilikan Objek diatur ke pilihan pemilik Bucket atau penulis Object

Izin ACL masih berlaku dengan setelan pilihan pemilik Bucket atau setelan penulis Object. Ada dua jenis ACLs: ember ACLs dan objek ACLs. Untuk perbedaan antara kedua jenis ini ACLs, lihat Pemetaan izin ACL dan izin kebijakan akses.

Bergantung pada tindakan permintaan yang ditolak, periksa izin ACL untuk bucket atau objek:

  • Jika Amazon S3 menolak LIST, objek PUT, GetBucketAcl, atau permintaan PutBucketAcl, tinjau izin ACL untuk bucket Anda.

    catatan

    Anda tidak dapat memberikan izin GET objek dengan setelan ACL bucket.

  • Jika Amazon S3 menolak permintaan GET pada objek S3, atau permintaan PutObjectAcl, maka tinjau izin ACL untuk objek tersebut.

    penting

    Jika akun pemilik objek berbeda dari akun pemilik bucket, maka akses ke objek tidak dikontrol oleh kebijakan bucket.

Memecahkan masalah kesalahan Akses Ditolak (403 Forbidden) dari permintaan objek GET selama kepemilikan objek lintas akun

Tinjau pengaturan Kepemilikan Objek bucket untuk menentukan pemilik objek. Jika Anda memiliki akses ke objek ACLs, maka Anda juga dapat memeriksa akun pemilik objek. (Untuk melihat akun pemilik objek, tinjau pengaturan ACL objek di konsol Amazon S3.) Atau, Anda juga dapat membuat permintaan GetObjectAcl untuk menemukan ID kanonik pemilik objek untuk memverifikasi akun pemilik objek. Secara default, ACLs berikan izin izin eksplisit untuk GET permintaan ke akun pemilik objek.

Setelah Anda mengonfirmasi bahwa pemilik objek berbeda dari pemilik bucket, lalu tergantung pada kasus penggunaan dan tingkat akses Anda, pilih salah satu metode berikut untuk membantu mengatasi kesalahan Akses Ditolak (403 Forbidden):

  • Nonaktifkan ACLs (disarankan) — Metode ini akan berlaku untuk semua objek dan dapat dilakukan oleh pemilik bucket. Metode ini secara otomatis memberikan pemilik bucket kepemilikan dan kontrol penuh atas setiap objek di bucket. Sebelum Anda menerapkan metode ini, periksa prasyarat untuk menonaktifkan. ACLs Untuk informasi tentang cara menyetel bucket ke mode diberlakukan (disarankan) pemilik Bucket, lihat Menyetel Kepemilikan Objek pada bucket yang ada.

    penting

    Untuk mencegah error Access Denied (403 Forbidden), pastikan untuk memigrasikan izin ACL ke kebijakan bucket sebelum Anda menonaktifkannya. ACLs Untuk informasi selengkapnya, lihat Contoh kebijakan bucket untuk migrasi dari izin ACL.

  • Ubah pemilik objek menjadi pemilik bucket–Metode ini dapat diterapkan pada objek individual, tetapi hanya pemilik objek (atau pengguna dengan izin yang sesuai) yang dapat mengubah kepemilikan objek. PUTBiaya tambahan mungkin berlaku. (Untuk informasi selengkapnya, lihat harga Amazon S3.) Metode ini memberikan pemilik bucket kepemilikan penuh atas objek, memungkinkan pemilik bucket untuk mengontrol akses ke objek melalui kebijakan bucket.

    Untuk mengubah kepemilikan objek, lakukan salah satu hal berikut:

    • Anda (pemilik bucket) dapat menyalin objek kembali ke bucket.

    • Anda dapat mengubah setelan Kepemilikan Objek bucket menjadi pilihan pemilik Bucket. Jika Penentuan Versi dinonaktifkan, objek dalam bucket akan ditimpa. Jika Penentuan Versi diaktifkan, versi duplikat dari objek yang sama akan muncul di bucket, dan pemilik bucket dapat menetapkan aturan siklus hidup yang akan diakhiri. Untuk petunjuk tentang cara mengubah pengaturan Kepemilikan Objek Anda, lihatMenyetel Kepemilikan Objek pada bucket yang ada.

      catatan

      Saat Anda memperbarui setelan Kepemilikan Objek ke pemilik Bucket yang diinginkan, pengaturan hanya diterapkan ke objek baru yang diunggah ke bucket.

    • Anda dapat meminta pemilik objek mengunggah kembali objek dengan objek ACL terekam bucket-owner-full-control.

    catatan

    Untuk unggahan lintas akun, Anda juga dapat meminta ACL objek terekam bucket-owner-full-control dalam kebijakan bucket Anda. Untuk contoh kebijakan bucket, lihat Memberikan izin lintas akun untuk mengunggah objek sekaligus memastikan bahwa pemilik bucket memiliki kontrol penuh.

  • Simpan penulis objek sebagai pemilik objek-Metode ini tidak mengubah pemilik objek, tetapi memungkinkan Anda untuk memberikan akses ke objek satu per satu. Untuk memberikan akses ke objek, Anda harus memiliki izin PutObjectAcl untuk objek tersebut. Kemudian, untuk memperbaiki kesalahan Access Denied (403 Forbidden), tambahkan pemohon sebagai penerima hibah untuk mengakses objek di objek. ACLs Untuk informasi selengkapnya, lihat Mengkonfigurasi ACLs.

Pengaturan S3 Block Public Access

Jika permintaan yang gagal melibatkan akses publik atau kebijakan publik, periksa pengaturan S3 Blokir Akses Publik di akun, bucket, atau titik akses Anda. Untuk informasi selengkapnya tentang pemecahan masalah akses ditolak kesalahan yang terkait dengan setelan Akses Publik Blok S3, lihat. Akses ditolak karena pengaturan Blokir Akses Publik

Pengaturan enkripsi Amazon S3

Amazon S3 mendukung enkripsi di sisi server di bucket Anda. Enkripsi di sisi server adalah enkripsi data di tempat tujuan oleh aplikasi atau layanan yang menerimanya. Amazon S3 mengenkripsi data Anda pada tingkat objek saat menulisnya ke disk di pusat AWS data dan mendekripsi untuk Anda saat Anda mengaksesnya.

Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Amazon S3 juga memungkinkan Anda menentukan metode enkripsi di sisi server saat mengunggah objek.

Untuk meninjau status enkripsi di sisi server dan setelan enkripsi bucket
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dari daftar Bucket, pilih bucket yang ingin Anda periksa pengaturan enkripsinya.

  4. Pilih tab Properti.

  5. Gulir ke bawah ke bagian Enkripsi default lalu lihat pengaturan Jenis enkripsi.

Untuk memeriksa pengaturan enkripsi Anda dengan menggunakan AWS CLI, gunakan get-bucket-encryptionperintah.

Untuk memeriksa status enkripsi objek
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Di daftar Bucket, pilih nama bucket yang berisi objek.

  4. Dari daftar Objek, pilih nama objek yang ingin ditambahkan atau ubah enkripsinya.

    Halaman detail objek akan muncul.

  5. Gulir ke bawah ke bagian Pengaturan enkripsi sisi server untuk melihat pengaturan enkripsi di sisi server objek.

Untuk memeriksa status enkripsi objek Anda dengan menggunakan AWS CLI, gunakan head-objectperintah.

Persyaratan enkripsi dan izin

Amazon S3 mendukung tiga jenis enkripsi di sisi server:

  • Enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)

  • Enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS)

  • Enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)

Berdasarkan pengaturan enkripsi Anda, pastikan bahwa persyaratan izin berikut terpenuhi:

  • SSE-S3-Tidak diperlukan izin tambahan.

  • SSE-KMS (dengan CMK)-Untuk mengunggah objek, izin kms:GenerateDataKey pada AWS KMS key diperlukan. Untuk mengunduh objek dan melakukan unggahan objek multibagian, izin kms:Decrypt pada kunci KMS diperlukan.

  • SSE-KMS (dengan Kunci yang dikelola AWS) — Pemohon harus dari akun yang sama yang memiliki kunci KMS. aws/s3 Peminta juga harus memiliki izin Amazon S3 yang benar untuk mengakses objek.

  • SSE-C (dengan kunci yang disediakan pelanggan)-Tidak diperlukan izin tambahan. Anda dapat mengonfigurasi kebijakan bucket agar memerlukan dan membatasi enkripsi di sisi server dengan kunci enkripsi yang disediakan pelanggan untuk objek di bucket.

Jika objek dienkripsi dengan CMK, pastikan bahwa kebijakan kunci KMS memungkinkan Anda untuk melakukan kms:GenerateDataKey atau tindakan kms:Decrypt. Untuk petunjuk tentang memeriksa kebijakan kunci KMS Anda, lihat Melihat kebijakan kunci di Panduan Pengembang AWS Key Management Service .

Pengaturan Kunci Objek S3

Jika bucket Anda mengaktifkan Kunci Objek S3 dan objek tersebut dilindungi oleh periode retensi atau penahanan hukum, Amazon S3 akan menampilkan kesalahan Akses Ditolak (403 Forbidden) saat Anda mencoba menghapus objek.

Untuk memeriksa apakah bucket telah mengaktifkan Kunci Objek
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dari daftar Bucket, pilih nama bucket yang ingin Anda tinjau.

  4. Pilih tab Properti.

  5. Gulir ke bawah hingga bagian Kunci Objek. Verifikasi apakah pengaturan Kunci Objek Diaktifkan atau Dinonaktifkan.

Untuk menentukan apakah objek dilindungi oleh periode retensi atau penahanan hukum, lihat informasi kunci untuk objek Anda.

Jika objek dilindungi oleh periode retensi atau penahanan hukum, periksa hal-hal berikut:

  • Jika versi objek dilindungi oleh mode retensi kepatuhan, tidak ada cara untuk menghapusnya secara permanen. DELETEPermintaan permanen dari pemohon, termasuk pengguna Akun AWS root, akan menghasilkan kesalahan Akses Ditolak (403 Terlarang). Selain itu, perlu diketahui bahwa saat Anda mengirimkan permintaan DELETE untuk objek yang dilindungi oleh mode retensi kepatuhan, Amazon S3 membuat penanda hapus untuk objek tersebut.

  • Jika versi objek dilindungi dengan mode retensi tata kelola dan Anda memiliki izin s3:BypassGovernanceRetention, Anda dapat melewati perlindungan dan menghapus versi secara permanen. Untuk informasi selengkapnya, lihat Memintas mode tata kelola.

  • Jika versi objek dilindungi oleh penahanan hukum, maka permintaan DELETE permanen dapat mengakibatkan kesalahan Akses Ditolak (403 Forbidden). Untuk menghapus versi objek secara permanen, Anda harus menghapus penahanan hukum pada versi objek. Untuk menghapus penahanan hukum, Anda harus memiliki izin s3:PutObjectLegalHold. Untuk informasi selengkapnya tentang menghapus penahanan hukum, lihat Mengonfigurasi Kunci Objek S3.

Kebijakan VPC endpoint

Jika Anda mengakses Amazon S3 menggunakan titik akhir virtual private cloud (VPC), pastikan kebijakan titik akhir VPC tidak menghalangi Anda mengakses sumber daya Amazon S3 Anda. Secara default, kebijakan titik akhir VPC mengizinkan semua permintaan ke Amazon S3. Anda juga dapat mengonfigurasi kebijakan titik akhir VPC untuk membatasi permintaan tertentu. Untuk informasi tentang cara memeriksa kebijakan titik akhir VPC Anda, lihat sumber daya berikut:

AWS Organizations kebijakan

Jika Anda Akun AWS milik organisasi, AWS Organizations kebijakan dapat memblokir Anda mengakses sumber daya Amazon S3. Secara default, AWS Organizations kebijakan tidak memblokir permintaan apa pun ke Amazon S3. Namun, pastikan AWS Organizations kebijakan Anda belum dikonfigurasi untuk memblokir akses ke bucket S3. Untuk petunjuk tentang cara memeriksa AWS Organizations kebijakan Anda, lihat sumber daya berikut:

Selain itu, jika Anda salah mengonfigurasi kebijakan bucket untuk akun anggota untuk menolak akses semua pengguna ke bucket S3 Anda, Anda dapat membuka kunci bucket dengan meluncurkan sesi istimewa untuk akun anggota di IAM. Setelah meluncurkan sesi istimewa, Anda dapat menghapus kebijakan bucket yang salah konfigurasi untuk mendapatkan kembali akses ke bucket. Untuk informasi selengkapnya, lihat Melakukan tugas istimewa pada akun AWS Organizations anggota di Panduan AWS Identity and Access Management Pengguna.

CloudFront akses distribusi

Jika Anda menerima kesalahan Akses Ditolak (403 Terlarang) saat mencoba mengakses situs web statis S3 Anda CloudFront, periksa masalah umum berikut:

  • Apakah Anda memiliki format nama domain asal yang benar?

    • Pastikan Anda menggunakan format titik akhir situs web S3 (bucket-name.s3-website-region.amazonaws.com) daripada titik akhir REST API

    • Verifikasi bahwa hosting situs web statis diaktifkan di bucket Anda

  • Apakah kebijakan bucket Anda mengizinkan CloudFront akses?

    • Pastikan kebijakan bucket Anda menyertakan izin untuk Origin Access Identity (OAI) atau Origin Access Control (OAC) CloudFront distribusi Anda

    • Verifikasi kebijakan menyertakan izin s3: GetObject yang diperlukan

Untuk langkah dan konfigurasi pemecahan masalah tambahan, termasuk pengaturan halaman kesalahan dan pengaturan protokol, lihat Mengapa saya mendapatkan kesalahan “akses 403 ditolak” saat menggunakan titik akhir situs web Amazon S3 sebagai asal distribusi saya? CloudFront di pusat AWS re:Post pengetahuan.

catatan

Kesalahan ini berbeda dari 403 kesalahan yang mungkin Anda terima saat mengakses S3 secara langsung. Untuk masalah CloudFront spesifik, pastikan untuk memeriksa pengaturan CloudFront distribusi dan konfigurasi S3 Anda.

Pengaturan titik akses

Jika Anda menerima kesalahan Akses Ditolak (403 Forbidden) saat membuat permintaan melalui Titik Akses Amazon S3, Anda mungkin perlu memeriksa hal-hal berikut:

  • Konfigurasi untuk titik akses Anda

  • Kebijakan pengguna IAM yang digunakan untuk titik akses Anda

  • Kebijakan bucket yang digunakan untuk mengelola atau mengonfigurasi titik akses lintas akun

Konfigurasi dan kebijakan titik akses
  • Saat Anda membuat titik akses, Anda dapat memilih untuk menunjuk Internet atau VPC sebagai asal jaringan. Jika asal jaringan disetel ke VPC saja, Amazon S3 akan menolak permintaan apa pun yang dibuat ke titik akses yang tidak berasal dari VPC yang ditentukan. Untuk memeriksa asal jaringan titik akses Anda, lihatMembuat titik akses terbatas pada cloud privat virtual.

  • Dengan titik akses, Anda juga dapat mengonfigurasi pengaturan Blok Akses Publik kustom, yang bekerja sama dengan pengaturan Blok Akses Publik di tingkat bucket atau akun. Untuk memeriksa pengaturan Blok Akses Publik kustom Anda, lihat Mengelola akses publik ke titik akses untuk ember tujuan umum.

  • Untuk membuat permintaan yang berhasil ke Amazon S3 dengan menggunakan titik akses, pastikan bahwa peminta memiliki izin IAM yang diperlukan. Untuk informasi selengkapnya, lihat Mengonfigurasi kebijakan IAM untuk menggunakan titik akses.

  • Jika permintaan melibatkan titik akses lintas akun, pastikan pemilik bucket telah memperbarui kebijakan bucket untuk mengotorisasi permintaan dari titik akses. Untuk informasi selengkapnya, lihat Memberikan izin untuk titik akses lintas akun.

Jika kesalahan Akses Ditolak (403 Terlarang) masih berlanjut setelah memeriksa semua item dalam topik ini, ambil ID permintaan Amazon S3 Anda dan hubungi untuk panduan tambahan. Dukungan

Sumber daya tambahan

Untuk panduan lebih lanjut tentang kesalahan Akses Ditolak (403 Terlarang), Anda dapat memeriksa sumber daya berikut: