Kebijakan dan izin 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.

Kebijakan dan izin di Amazon S3

Halaman ini memberikan ikhtisar kebijakan bucket dan pengguna di Amazon S3 dan menjelaskan elemen dasar kebijakan AWS Identity and Access Management (IAM). Setiap elemen yang tercantum berkaitan dengan perincian lebih lanjut tentang elemen tersebut dan contoh-contoh cara penggunaannya.

Untuk daftar lengkap tindakan, sumber daya, dan ketentuan 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

Secara mendasar, sebuah kebijakan berisi elemen-elemen berikut ini:

  • Resource- Bucket Amazon S3, objek, titik akses, atau pekerjaan yang berlaku untuk kebijakan tersebut. Gunakan Amazon Resource Name (ARN) dari bucket, objek, titik akses, atau job untuk mengidentifikasi sumber daya.

    Contoh untuk operasi tingkat bucket:

    "Resource": "arn:aws:s3:::bucket_name"

    Contoh operasi tingkat objek:

    • "Resource": "arn:aws:s3:::bucket_name/*"untuk semua benda di ember.

    • "Resource": "arn:aws:s3:::bucket_name/prefix/*"untuk objek di bawah awalan tertentu di ember.

    Untuk informasi selengkapnya, lihat Sumber daya kebijakan untuk Amazon S3.

  • Actions— Untuk setiap sumber daya, Amazon S3 mendukung serangkaian operasi. Anda mengidentifikasi operasi sumber daya yang Anda izinkan (atau tolak) dengan menggunakan kata kunci tindakan.

    Misalnya, s3:ListBucket izin memungkinkan pengguna untuk menggunakan operasi Amazon S3 ListObjectsV2. (s3:ListBucketIzin adalah kasus di mana nama tindakan tidak dipetakan langsung ke nama operasi.) Untuk informasi selengkapnya tentang penggunaan tindakan Amazon S3, lihat Tindakan kebijakan untuk Amazon S3. Untuk daftar lengkap tindakan Amazon S3, lihat Tindakan di Referensi API Layanan Penyimpanan Sederhana Amazon.

  • Effect— Apa efeknya ketika pengguna meminta tindakan tertentu—ini bisa berupa salah satu atau. Allow Deny

    Jika Anda tidak secara eksplisit memberikan akses ke (mengizinkan) sumber daya, akses akan ditolak secara implisit. Anda juga dapat secara eksplisit menolak akses ke sumber daya. Anda dapat melakukan ini untuk memastikan bahwa pengguna tidak dapat mengakses sumber daya, bahkan jika kebijakan yang berbeda memberikan akses. Untuk informasi selengkapnya, lihat Elemen Kebijakan IAM JSON: Efek dalam Panduan Pengguna IAM.

  • Principal— Akun atau pengguna yang diizinkan mengakses tindakan dan sumber daya dalam pernyataan. Dalam kebijakan bucket, pengguna utama adalah pengguna, akun, layanan, atau entitas lain yang merupakan penerima izin ini. Untuk informasi selengkapnya, lihat Prinsipal untuk kebijakan bucket.

  • Condition— Ketentuan kapan kebijakan berlaku. Anda dapat menggunakan kunci AWS-wide dan kunci khusus Amazon S3 untuk menentukan kondisi dalam kebijakan akses Amazon S3. Untuk informasi selengkapnya, lihat Contoh kebijakan bucket menggunakan tombol kondisi.

Contoh kebijakan bucket berikut menunjukkanEffect,, PrincipalAction, dan Resource elemen. Kebijakan ini memungkinkanAkua, pengguna dalam akun123456789012, s3:GetObjects3:GetBucketLocation, dan izin s3:ListBucket Amazon S3 di bucket. amzn-s3-demo-bucket1

{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Akua" }, "Action": [ "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }

Untuk informasi bahasa kebijakan selengkapnya, lihat Kebijakan dan izin dalam referensi kebijakan IAM dan IAM JSON di Panduan Pengguna IAM.

Delegasi izin

Jika Akun AWS memiliki sumber daya, ia dapat memberikan izin tersebut kepada yang lain. Akun AWS Akun tersebut kemudian dapat mendelegasikan izin-izin tersebut, atau sebagian izin, kepada pengguna dalam akun. Ini disebut sebagai delegasi izin. Tetapi akun yang menerima izin dari akun lain tidak dapat mendelegasikan izin lintas akun ke akun lain. Akun AWS

bucket Amazon S3 dan kepemilikan objek

bucket dan objek adalah sumber daya Amazon S3. Secara bawaan, hanya pemilik sumber daya yang dapat mengakses sumber daya ini. Pemilik sumber daya mengacu pada Akun AWS yang menciptakan sumber daya. Misalnya:

  • Akun AWS Yang Anda gunakan untuk membuat bucket dan mengunggah objek memiliki sumber daya tersebut.

  • Jika Anda mengunggah objek menggunakan pengguna AWS Identity and Access Management (IAM) atau kredensi peran, pengguna atau peran Akun AWS tersebut memiliki objek tersebut.

  • Pemilik bucket dapat memberikan izin lintas akun kepada Akun AWS lain (atau pengguna di akun lain) untuk unggah objek. Dalam hal ini, Akun AWS yang unggah objek tersebut adalah pemilik objek tersebut. Pemilik bucket tidak memiliki izin pada objek yang dimiliki akun lain, dengan pengecualian berikut:

    • Pemilik bucket membayar tagihan. Pemilik bucket dapat menolak akses ke objek apa pun, atau menghapus objek apa pun di dalam bucket, tanpa memandang siapa yang memilikinya.

    • Pemilik bucket dapat mengarsipkan objek apa pun atau memulihkan objek yang diarsipkan, tanpa memandang siapa yang memilikinya. Pengarsipan mengacu pada kelas penyimpanan yang digunakan untuk menyimpan objek. Untuk informasi selengkapnya, lihat Mengelola siklus hidup objek.

Autentikasi kepemilikan dan permintaan

Semua permintaan ke bucket akan diautentikasi atau tidak diautentikasi. Permintaan yang diautentikasi harus menyertakan nilai tanda tangan yang mengautentikasi pengirim permintaan, permintaan yang tidak diautentikasi tidak harus menyertakannya. Untuk informasi selengkapnya tentang autentikasi permintaan, lihat Membuat permintaan di Referensi API Amazon S3.

Pemilik bucket dapat mengizinkan permintaan yang tidak diauntentikasi. Misalnya, PutObjectpermintaan yang tidak diautentikasi diizinkan jika bucket memiliki kebijakan bucket publik, atau saat ACL bucket memberikan WRITE atau FULL_CONTROL mengakses All Users grup atau pengguna anonim secara khusus. Untuk informasi selengkapnya tentang kebijakan bucket publik dan daftar kontrol akses publik (ACLs), lihatArti “publik”.

Semua permintaan yang tidak diautentikasi dibuat oleh pengguna anonim. Pengguna ini diwakili ACLs oleh ID pengguna kanonik tertentu. 65a011a29cdf8ec533ec3d1ccaae921c Jika objek diunggah ke bucket melalui permintaan yang tidak terotentikasi, pengguna anonim memiliki objek. ACL objek bawaan memberikan FULL_CONTROL kepada pengguna anonim sebagai pemilik objek. Oleh karena itu, Amazon S3 mengizinkan permintaan yang tidak diautentikasi untuk mengambil objek atau memodifikasi ACL-nya.

Untuk mencegah objek dimodifikasi oleh pengguna anonim, sebaiknya Anda tidak menerapkan kebijakan bucket yang mengizinkan penulisan publik anonim ke bucket Anda atau penggunaan ACLs yang memungkinkan pengguna anonim menulis akses ke bucket Anda. Anda dapat menerapkan perilaku yang direkomendasikan ini dengan menggunakan Blokir Akses Publik Amazon S3.

Untuk informasi lebih lanjut tentang pemblokiran akses publik, lihat Melakukan blok akses publik ke penyimpanan Amazon S3 Anda. Untuk informasi selengkapnya tentang ACLs, lihat Gambaran umum daftar kontrol akses (ACL).

penting

Kami menyarankan agar Anda tidak menggunakan kredensi pengguna Akun AWS root untuk membuat permintaan yang diautentikasi. Sebagai gantinya, buat peran IAM dan berikan akses penuh kepada peran tersebut. Kami merujuk ke pengguna dengan peran ini sebagai pengguna administrator. Anda dapat menggunakan kredensil yang ditetapkan ke peran administrator, bukan kredensil pengguna Akun AWS root, untuk berinteraksi AWS dan melakukan tugas, seperti membuat bucket, membuat pengguna, dan memberikan izin. Untuk informasi selengkapnya, lihat AWS kredensyal keamanan dan praktik terbaik Keamanan di IAM di Panduan Pengguna IAM.