Bagaimana Amazon S3 bekerja dengan IAM - Amazon Simple Storage Service

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

Bagaimana Amazon S3 bekerja dengan IAM

Sebelum Anda menggunakan IAM untuk mengelola akses ke Amazon S3, pelajari fitur IAM apa yang tersedia untuk digunakan dengan Amazon S3.

Untuk mendapatkan tampilan tingkat tinggi tentang cara kerja Amazon S3 dan layanan AWS lainnya dengan sebagian besar fitur IAM, AWS lihat layanan yang bekerja dengan IAM di Panduan Pengguna IAM.

Kebijakan berbasis identitas untuk Amazon S3

Mendukung kebijakan berbasis identitas

Ya

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke sebuah identitas, seperti pengguna IAM, grup pengguna IAM, atau peran IAM. Kebijakan ini mengontrol jenis tindakan yang dapat dilakukan oleh pengguna dan peran, di sumber daya mana, dan berdasarkan kondisi seperti apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat Membuat kebijakan IAM dalam Panduan Pengguna IAM.

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan secara spesifik apakah tindakan dan sumber daya diizinkan atau ditolak, serta kondisi yang menjadi dasar dikabulkan atau ditolaknya tindakan tersebut. Anda tidak dapat menentukan secara spesifik prinsipal dalam sebuah kebijakan berbasis identitas karena prinsipal berlaku bagi pengguna atau peran yang melekat kepadanya. Untuk mempelajari semua elemen yang dapat Anda gunakan dalam kebijakan JSON, lihat Referensi elemen kebijakan JSON IAM dalam Panduan Pengguna IAM.

Contoh kebijakan berbasis identitas untuk Amazon S3

Untuk melihat contoh kebijakan berbasis identitas Amazon S3, lihat. Kebijakan berbasis identitas untuk Amazon S3

Kebijakan berbasis sumber daya dalam Amazon S3

Mendukung kebijakan berbasis sumber daya

Ya

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contoh kebijakan berbasis sumber daya adalah kebijakan kepercayaan peran IAM dan kebijakan bucket Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Untuk sumber daya tempat kebijakan dilampirkan, kebijakan menentukan tindakan apa yang dapat dilakukan oleh prinsipal tertentu pada sumber daya tersebut dan dalam kondisi apa. Anda harus menentukan prinsipal dalam kebijakan berbasis sumber daya. Prinsipal dapat mencakup akun, pengguna, peran, pengguna federasi, atau. Layanan AWS

Untuk mengaktifkan akses lintas akun, Anda dapat menentukan secara spesifik seluruh akun atau entitas IAM di akun lain sebagai prinsipal dalam kebijakan berbasis sumber daya. Menambahkan prinsipal akun silang ke kebijakan berbasis sumber daya hanya setengah dari membangun hubungan kepercayaan. Ketika prinsipal dan sumber daya berbeda Akun AWS, administrator IAM di akun tepercaya juga harus memberikan izin entitas utama (pengguna atau peran) untuk mengakses sumber daya. Mereka memberikan izin dengan melampirkan kebijakan berbasis identitas kepada entitas. Namun, jika kebijakan berbasis sumber daya memberikan akses ke prinsipal dalam akun yang sama, tidak diperlukan kebijakan berbasis identitas tambahan. Untuk informasi selengkapnya, lihat Bagaimana peran IAM berbeda dari kebijakan berbasis sumber daya dalam Panduan Pengguna IAM.

Layanan Amazon S3 mendukung kebijakan bucket, kebijakan titik akses, dan hibah akses:

  • Kebijakan bucket adalah kebijakan berbasis sumber daya yang dilampirkan ke bucket Amazon S3. Kebijakan bucket menentukan prinsipal mana yang dapat melakukan tindakan di bucket.

  • Kebijakan titik akses adalah kebijakan berbasis sumber daya yang dievaluasi bersama dengan kebijakan bucket yang mendasarinya.

  • Hibah akses adalah model yang disederhanakan untuk menentukan izin akses ke data di Amazon S3 berdasarkan awalan, bucket, atau objek. Untuk informasi tentang Hibah Akses S3, lihat. Mengelola akses dengan S3 Access Grants

Prinsip untuk kebijakan bucket

PrincipalElemen menentukan pengguna, akun, layanan, atau entitas lain yang diizinkan atau ditolak akses ke sumber daya. Berikut ini adalah contoh-contoh menentukan Principal. Untuk informasi selengkapnya, lihat Pengguna Utama dalam Panduan Pengguna IAM.

Berikan izin ke Akun AWS

Untuk memberikan izin ke Akun AWS, identifikasi akun menggunakan format berikut.

"AWS":"account-ARN"

Berikut ini adalah beberapa contohnya.

"Principal":{"AWS":"arn:aws:iam::AccountIDWithoutHyphens:root"}
"Principal":{"AWS":["arn:aws:iam::AccountID1WithoutHyphens:root","arn:aws:iam::AccountID2WithoutHyphens:root"]}

Berikan Izin kepada Pengguna IAM

Untuk memberikan izin kepada pengguna IAM dalam akun Anda, Anda harus memberikan pasangan nama-nilai "AWS":"user-ARN".

"Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}

Untuk contoh rinci yang memberikan step-by-step instruksi, lihat Contoh 1: Pemilik bucket yang memberikan izin bucket kepada penggunanya danContoh 3: Pemilik bucket yang memberikan izin kepada penggunanya ke objek yang bukan miliknya.

catatan

Jika identitas IAM dihapus setelah Anda memperbarui kebijakan bucket, kebijakan bucket akan menampilkan pengenal unik di elemen utama, bukan ARN. ID unik ini tidak pernah digunakan kembali, sehingga Anda dapat menghapus pengguna utama dengan aman dengan pengenal unik dari semua pernyataan kebijakan Anda. Untuk informasi selengkapnya tentang pengidentifikasi unik, lihat pengidentifikasi IAM di Panduan Pengguna IAM.

Memberikan izin anonim

Awas

Berhati-hatilah saat memberikan akses anonim ke bucket Amazon S3. Saat Anda memberikan akses anonim, siapa pun di dunia dapat mengakses bucket Anda. Kami sangat menyarankan agar Anda tidak pernah memberikan akses menulis anonim apa pun ke bucket S3 Anda.

Untuk memberikan izin kepada semua orang, juga disebut sebagai akses anonim, Anda atur wildcard ("*") sebagai nilai Principal. Misalnya, jika Anda mengonfigurasi bucket sebagai situs web, maka Anda ingin semua objek yang ada dalam bucket dapat diakses publik.

"Principal":"*"
"Principal":{"AWS":"*"}

Menggunakan "Principal": "*" dengan Allow efek dalam kebijakan berbasis sumber daya memungkinkan siapa pun, meskipun mereka tidak masuk AWS, untuk mengakses sumber daya Anda.

Menggunakan "Principal" : { "AWS" : "*" } dengan efek Allow dalam kebijakan berbasis sumber daya memungkinkan setiap pengguna root, pengguna IAM, sesi peran yang dianggap, atau pengguna gabungan di akun apa pun di dalam partisi yang sama untuk mengakses sumber daya Anda.

Untuk pengguna anonim, kedua metode ini setara. Untuk informasi selengkapnya, lihat Semua pengguna utama di Panduan Pengguna IAM.

Anda tidak dapat menggunakan wildcard untuk mencocokkan sebagian nama pengguna utama atau ARN.

penting

Karena siapa pun dapat membuat Akun AWS, tingkat keamanan kedua metode ini setara, meskipun fungsinya berbeda.

Batasi izin sumber daya

Anda juga dapat menggunakan kebijakan sumber daya untuk membatasi akses ke sumber daya yang seharusnya tersedia untuk pengguna utama IAM. Gunakan Deny pernyataan untuk mencegah akses.

Contoh berikut memblokir akses jika protokol transport aman tidak digunakan:

{"Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": <bucket ARN>, "Condition": { "Boolean": { "aws:SecureTransport" : "false"} } }

Menggunakan "Principal": "*" sehingga pembatasan ini berlaku untuk semua orang adalah praktik terbaik untuk kebijakan ini, daripada mencoba menolak akses hanya ke akun atau pengguna utama tertentu yang menggunakan metode ini.

Memerlukan akses melalui CloudFront URL

Anda dapat meminta pengguna mengakses konten Amazon S3 Anda hanya dengan menggunakan URL, bukan CloudFront URL Amazon S3. Untuk melakukan ini, buat kontrol akses CloudFront asal (OAC). Kemudian, ubah izin pada data S3 Anda. Dalam kebijakan bucket, Anda dapat menetapkan CloudFront Principal sebagai berikut:

"Principal":{"Service":"cloudfront.amazonaws.com"}

Gunakan Condition elemen dalam kebijakan CloudFront untuk mengizinkan akses bucket hanya jika permintaan tersebut atas nama CloudFront distribusi yang berisi asal S3.

"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront-distribution-ID" } }

Untuk informasi selengkapnya tentang mewajibkan akses S3 melalui CloudFront URL, lihat Membatasi akses ke asal Layanan Penyimpanan Sederhana Amazon di Panduan Pengembang Amazon CloudFront . Untuk informasi selengkapnya tentang manfaat keamanan dan privasi menggunakan Amazon CloudFront, lihat Mengonfigurasi akses aman dan membatasi akses ke konten.

Contoh kebijakan berbasis sumber daya untuk Amazon S3

Tindakan kebijakan untuk Amazon S3

Mendukung tindakan kebijakan

Ya

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Artinya, prinsipal manakah yang dapat melakukan tindakan pada sumber daya apa, dan dengan kondisi apa.

Elemen Action dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Tindakan kebijakan biasanya memiliki nama yang sama dengan operasi AWS API terkait. Ada beberapa pengecualian, misalnya tindakan hanya izin yang tidak memiliki operasi API yang cocok. Ada juga beberapa operasi yang memerlukan beberapa tindakan dalam suatu kebijakan. Tindakan tambahan ini disebut tindakan dependen.

Menyertakan tindakan dalam kebijakan untuk memberikan izin untuk melakukan operasi terkait.

Berikut ini menunjukkan berbagai jenis hubungan pemetaan antara operasi API S3 dan tindakan kebijakan yang diperlukan.

  • O ne-to-one pemetaan dengan nama yang sama. Misalnya, untuk menggunakan operasi PutBucketPolicy API, tindakan s3:PutBucketPolicy kebijakan diperlukan.

  • O ne-to-one pemetaan dengan nama yang berbeda. Misalnya, untuk menggunakan operasi ListObjectsV2 API, tindakan s3:ListBucket kebijakan diperlukan.

  • O ne-to-many pemetaan. Misalnya, untuk menggunakan operasi HeadObject API, s3:GetObject diperlukan. Selain itu, saat Anda menggunakan Kunci Objek S3 dan ingin mendapatkan status Penahanan Hukum atau pengaturan penyimpanan objek, tindakan terkait s3:GetObjectLegalHold atau s3:GetObjectRetention kebijakan juga diperlukan sebelum Anda dapat menggunakan operasi HeadObject API.

  • any-to-one Pemetaan M. Misalnya, untuk menggunakan operasi ListObjectsV2 atau HeadBucket API, tindakan s3:ListBucket kebijakan diperlukan.

Untuk melihat daftar tindakan Amazon S3 untuk digunakan dalam kebijakan, lihat Tindakan yang ditentukan oleh Amazon S3 di Referensi Otorisasi Layanan. Untuk daftar lengkap operasi Amazon S3 API, lihat Tindakan API Amazon S3 di Referensi API Layanan Penyimpanan Sederhana Amazon.

Tindakan kebijakan di Amazon S3 menggunakan awalan berikut sebelum tindakan:

s3

Untuk menetapkan secara spesifik beberapa tindakan dalam satu pernyataan, pisahkan tindakan tersebut dengan koma.

"Action": [ "s3:action1", "s3:action2" ]

Operasi bucket adalah operasi API S3 yang beroperasi pada tipe sumber daya bucket. Misalnya,CreateBucket,ListObjectsV2, danPutBucketPolicy. Tindakan kebijakan S3 untuk operasi bucket memerlukan Resource elemen dalam kebijakan bucket atau kebijakan berbasis identitas IAM sebagai pengidentifikasi Amazon Resource Name (ARN) tipe bucket S3 dalam format contoh berikut.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"

Kebijakan bucket berikut memberi pengguna Akua dengan akun 12345678901 s3:ListBucket izin untuk melakukan operasi API ListObjectsV2 dan mencantumkan objek dalam bucket S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" } ] }
Operasi bucket dalam kebijakan titik akses

Izin yang diberikan dalam kebijakan jalur akses hanya efektif jika bucket yang mendasarinya mengizinkan izin yang sama. Saat menggunakan Titik Akses S3, Anda harus mendelegasikan kontrol akses dari bucket ke titik akses atau menambahkan izin yang sama dalam kebijakan titik akses ke kebijakan bucket yang mendasarinya. Untuk informasi selengkapnya, lihat Mengonfigurasi kebijakan IAM untuk menggunakan titik akses. Dalam kebijakan titik akses, tindakan kebijakan S3 untuk operasi bucket mengharuskan Anda menggunakan accesspoint ARN untuk elemen Resource dalam format berikut.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

Kebijakan titik akses berikut memberi pengguna Akua dengan akun 12345678901 s3:ListBucket izin untuk melakukan operasi ListObjectsV2 API melalui titik akses S3 DOC-EXAMPLE-ACCESS-POINT untuk mencantumkan objek di bucket terkait titik akses.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT" } ] }
catatan

Tidak semua operasi bucket didukung oleh S3 Access Point. Untuk informasi selengkapnya, lihat Kompatibilitas titik akses dengan operasi S3.

Operasi objek adalah operasi API S3 yang bertindak berdasarkan jenis sumber daya objek. Misalnya,GetObject,PutObject, danDeleteObject. Tindakan kebijakan S3 untuk operasi objek memerlukan Resource elemen dalam kebijakan menjadi objek ARN S3 dalam format contoh berikut.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix/*"
catatan

Objek ARN harus berisi garis miring ke depan setelah nama bucket, seperti yang terlihat pada contoh sebelumnya.

Kebijakan bucket berikut memberi pengguna Akua akun 12345678901 s3:PutObject izin untuk melakukan operasi PutObjectAPI guna mengunggah objek ke bucket S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to upload objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Operasi objek dalam kebijakan titik akses

Bila Anda menggunakan S3 Access Points untuk mengontrol akses ke operasi objek, Anda dapat menggunakan kebijakan titik akses. Saat Anda menggunakan kebijakan titik akses, tindakan kebijakan S3 untuk operasi objek mengharuskan Anda menggunakan accesspoint ARN untuk elemen Resource dalam format berikut:. arn:aws:s3:region:account-id:accesspoint/access-point-name/object/resource Untuk operasi objek yang menggunakan titik akses, Anda harus menyertakan /object/ nilai setelah seluruh titik akses ARN dalam elemen. Resource Berikut ini adalah beberapa contoh.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*"
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/prefix/*"

Kebijakan titik akses berikut memberi pengguna Akua dengan akun 12345678901 s3:GetObject izin untuk melakukan operasi GetObjectAPI melalui titik akses DOC-EXAMPLE-ACCESS-POINT pada semua objek di bucket terkait titik akses.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*" } ] }
catatan

Tidak semua operasi objek didukung oleh S3 Access Point. Untuk informasi selengkapnya, lihat Kompatibilitas titik akses dengan operasi S3.

Operasi titik akses adalah operasi API S3 yang beroperasi pada jenis accesspoint sumber daya. Misalnya,CreateAccessPoint,DeleteAccessPoint, danGetAccessPointPolicy. Tindakan kebijakan S3 untuk operasi titik akses hanya dapat digunakan dalam kebijakan berbasis identitas IAM, bukan dalam kebijakan bucket atau kebijakan jalur akses. Operasi titik akses memerlukan Resource elemen untuk menjadi accesspoint ARN dalam format contoh berikut.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

Kebijakan berbasis identitas IAM berikut memberikan s3:GetAccessPointPolicy izin untuk melakukan operasi GetAccessPointPolicyAPI pada titik akses S3 DOC-EXAMPLE-ACCESS-POINT.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point DOC-EXAMPLE-ACCESS-POINT", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012:access point/DOC-EXAMPLE-ACCESS-POINT" } ] }

Saat Anda menggunakan Titik Akses, untuk mengontrol akses ke operasi bucket, lihatOperasi bucket dalam kebijakan titik akses; untuk mengontrol akses ke operasi objek, lihatOperasi objek dalam kebijakan titik akses. Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan titik akses, lihatMengonfigurasi kebijakan IAM untuk menggunakan titik akses.

Dengan Lambda Objek Amazon S3, Anda dapat menambahkan kode Anda sendiri ke GET, LIST, dan HEAD Amazon S3 dan meminta untuk mengubah dan memproses data saat dikembalikan ke aplikasi. Anda dapat membuat permintaan melalui Object Lambda Access Point, yang berfungsi sama seperti membuat permintaan melalui titik akses lainnya. Untuk informasi selengkapnya, lihat Mengubah objek dengan S3 Lambda Objek.

Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan untuk operasi Titik Akses Objek Lambda, lihat. Mengonfigurasi kebijakan IAM untuk Titik Akses Lambda Objek

Titik Akses Multi-Region menyediakan titik akhir global yang dapat digunakan aplikasi untuk memenuhi permintaan dari bucket S3 yang terletak di beberapa. Wilayah AWS Anda dapat menggunakan Titik Akses Multi-Wilayah untuk membangun aplikasi Multi-wilayah dengan arsitektur yang sama yang digunakan di satu Wilayah, dan kemudian menjalankan aplikasi tersebut di mana saja di dunia. Untuk informasi selengkapnya, lihat Titik Akses Multi-Wilayah di Amazon S3.

Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan untuk operasi Titik Akses Multi-Wilayah, lihatContoh kebijakan Multi-Region Access Point.

Operasi pekerjaan (Operasi Batch) adalah operasi API S3 yang beroperasi pada jenis sumber daya pekerjaan. Misalnya, DescribeJob dan CreateJob. Tindakan kebijakan S3 untuk operasi pekerjaan hanya dapat digunakan dalam kebijakan berbasis identitas IAM, bukan dalam kebijakan bucket. Selain itu, operasi pekerjaan memerlukan Resource elemen dalam kebijakan berbasis identitas IAM menjadi job ARN dalam format contoh berikut.

"Resource": "arn:aws:s3:*:123456789012:job/*"

Kebijakan berbasis identitas IAM berikut memberikan s3:DescribeJob izin untuk melakukan operasi API pada S3 Batch DescribeJobOperations Job DOC-EXAMPLE-JOB.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job DOC-EXAMPLE-JOB", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012:job/DOC-EXAMPLE-JOB" } ] }

Untuk informasi selengkapnya tentang cara mengonfigurasi operasi konfigurasi Lensa Penyimpanan S3, lihatIzin Lensa Penyimpanan Amazon S3.

Operasi akun adalah operasi API S3 yang beroperasi pada tingkat akun. Misalnya, GetPublicAccessBlock (untuk akun). Akun bukanlah jenis sumber daya yang ditentukan oleh Amazon S3. Tindakan kebijakan S3 untuk operasi akun hanya dapat digunakan dalam kebijakan berbasis identitas IAM, bukan dalam kebijakan bucket. Selain itu, operasi akun memerlukan Resource elemen dalam kebijakan berbasis identitas IAM. "*"

Kebijakan berbasis identitas IAM berikut memberikan s3:GetAccountPublicAccessBlock izin untuk melakukan operasi GetPublicAccessBlockAPI tingkat akun dan mengambil pengaturan Blok Akses Publik tingkat akun.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"Allow retrieving the account-level Public Access Block settings", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }

Contoh kebijakan untuk Amazon S3

Sumber daya kebijakan untuk Amazon S3

Mendukung sumber daya kebijakan

Ya

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Artinya, prinsipal manakah yang dapat melakukan tindakan pada sumber daya apa, dan dengan kondisi apa.

Elemen kebijakan JSON Resource menentukan objek yang menjadi target penerapan tindakan. Pernyataan harus menyertakan elemen Resource atau NotResource. Praktik terbaiknya, tentukan sumber daya menggunakan Amazon Resource Name (ARN). Anda dapat melakukan ini untuk tindakan yang mendukung jenis sumber daya tertentu, yang dikenal sebagai izin tingkat sumber daya.

Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, misalnya operasi pencantuman, gunakan wildcard (*) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

"Resource": "*"

Beberapa tindakan API Amazon S3 mendukung banyak sumber daya. Misalnya, s3:GetObject mengakses EXAMPLE-RESOURCE-1 dan EXAMPLE-RESOURCE-2, jadi prinsipal harus memiliki izin untuk mengakses kedua sumber daya. Untuk menentukan beberapa sumber daya dalam satu pernyataan, pisahkan ARN dengan koma.

"Resource": [ "EXAMPLE-RESOURCE-1", "EXAMPLE-RESOURCE-2"

Sumber daya di Amazon S3 adalah bucket, objek, titik akses, atau pekerjaan. Dalam kebijakan, gunakan Amazon Resource Name (ARN) bucket, objek, access point, atau job untuk mengidentifikasi sumber daya.

Untuk melihat daftar lengkap jenis sumber daya Amazon S3 dan ARNnya, lihat Sumber daya yang ditentukan oleh Amazon S3 di Referensi Otorisasi Layanan. Untuk mempelajari tindakan mana yang dapat Anda tentukan ARN dari setiap sumber daya, lihat Tindakan yang ditentukan oleh Amazon S3.

Wildcard untuk ARN sumber daya

Anda dapat menggunakan wildcard sebagai bagian dari sumber daya ARN. Anda dapat menggunakan karakter-karakter wildcard (* dan ?) dalam setiap segmen ARN (bagian-bagian yang dipisahkan dengan titik dua). Tanda bintang (*) menunjukkan kombinasi apa pun dari nol karakter atau lebih, dan tanda tanya (?) menunjukkan karakter tunggal. Anda dapat menggunakan beberapa karakter * atau ? dalam setiap segmen, tetapi wildcard tidak dapat mencakup segmen.

  • ARN berikut ini menggunakan wildcard * dalam ID relatif bagian dari ARN untuk mengidentifikasi semua objek di bucket examplebucket.

    arn:aws:s3:::examplebucket/*
  • ARN berikut digunakan * untuk menunjukkan semua ember dan objek S3.

    arn:aws:s3:::*
  • ARN berikut ini menggunakan wildcard, * dan ?, pada bagian relative-ID. ARN tersebur mengidentifikasi semua objek dalam bucket seperti example1bucket, example2bucket, example3bucket, dan sebagainya.

    arn:aws:s3:::example?bucket/*

Variabel kebijakan untuk ARN sumber daya

Anda dapat menggunakan variabel kebijakan di ARN Amazon S3. Pada waktu evaluasi kebijakan, variabel yang ditentukan sebelumnya ini diganti dengan nilai yang sesuai. Misalkan Anda mengatur bucket Anda sebagai kumpulan folder, satu folder untuk masing-masing pengguna Anda. Nama folder sama dengan nama pengguna. Untuk memberikan pengguna izin ke folder mereka, Anda dapat menentukan variabel kebijakan di ARN sumber daya:

arn:aws:s3:::bucket_name/developers/${aws:username}/

Saat runtime, ketika kebijakan dievaluasi, variabel ${aws:username} dalam ARN sumber daya diganti dengan nama pengguna orang yang membuat permintaan.

Contoh kebijakan untuk Amazon S3

Kunci kondisi kebijakan untuk Amazon S3

Mendukung kunci kondisi kebijakan khusus layanan

Ya

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Artinya, prinsipal manakah yang dapat melakukan tindakan pada sumber daya apa, dan dengan kondisi apa.

Elemen Condition (atau blok Condition) akan memungkinkan Anda menentukan kondisi yang menjadi dasar suatu pernyataan berlaku. Elemen Condition bersifat opsional. Anda dapat membuat ekspresi bersyarat yang menggunakan operator kondisi, misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta.

Jika Anda menentukan beberapa elemen Condition dalam sebuah pernyataan, atau beberapa kunci dalam elemen Condition tunggal, maka AWS akan mengevaluasinya menggunakan operasi AND logis. Jika Anda menentukan beberapa nilai untuk satu kunci kondisi, AWS mengevaluasi kondisi menggunakan OR operasi logis. Semua kondisi harus dipenuhi sebelum izin pernyataan diberikan.

Anda juga dapat menggunakan variabel placeholder saat menentukan kondisi. Sebagai contoh, Anda dapat memberikan izin kepada pengguna IAM untuk mengakses sumber daya hanya jika izin tersebut mempunyai tag yang sesuai dengan nama pengguna IAM mereka. Untuk informasi selengkapnya, lihat Elemen kebijakan IAM: variabel dan tag dalam Panduan Pengguna IAM.

AWS mendukung kunci kondisi global dan kunci kondisi khusus layanan. Untuk melihat semua kunci kondisi AWS global, lihat kunci konteks kondisi AWS global di Panduan Pengguna IAM.

Setiap kunci kondisi Amazon S3 memetakan ke header permintaan nama yang sama yang diizinkan oleh API tempat kondisinya dapat disetel. Kunci kondisi spesifik Amazon S3 menentukan perilaku header permintaan nama yang sama. Misalnya, kunci kondisi yang s3:VersionId digunakan untuk memberikan izin bersyarat untuk s3:GetObjectVersion izin menentukan perilaku parameter versionId kueri yang Anda tetapkan dalam permintaan GET Object.

Untuk melihat daftar kunci kondisi Amazon S3, lihat Kunci kondisi untuk Amazon S3 di Referensi Otorisasi Layanan. Untuk mempelajari tindakan dan sumber daya yang dapat Anda gunakan kunci kondisi, lihat Tindakan yang ditentukan oleh Amazon S3.

Contoh: Membatasi unggahan objek ke objek dengan kelas penyimpanan tertentu

Misalkan Akun A, yang diwakili oleh ID akun 123456789012, memiliki sebuah bucket. Administrator Akun A ingin membatasi Dave, pengguna di Akun A, sehingga Dave hanya dapat mengunggah objek ke bucket yang disimpan dengan kelas penyimpanan. STANDARD_IA Untuk membatasi unggahan objek ke kelas penyimpanan tertentu, administrator Akun A dapat menggunakan kunci s3:x-amz-storage-class kondisi, seperti yang ditunjukkan dalam contoh kebijakan bucket berikut.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "Condition": { "StringEquals": { "s3:x-amz-storage-class": [ "STANDARD_IA" ] } } } ] }

Dalam contoh ini, blok Condition menentukan syarat StringEquals yang diterapkan untuk pasangan nilai kunci tertentu, "s3:x-amz-acl":["public-read"]. Ada satu pengaturan kunci yang telah ditetapkan yang dapat Anda gunakan dalam mengekspresikan syarat. Contoh tersebut menggunakan kunci kondisi s3:x-amz-acl. Syarat ini mengharuskan pengguna untuk menyertakan header x-amz-acl dengan nilai public-read dalam setiap permintaan objek PUT.

Contoh kebijakan untuk Amazon S3

ACL di Amazon S3

Mendukung ACL

Ya

Di Amazon S3, kontrol daftar kontrol akses (ACL) yang Akun AWS memiliki izin untuk mengakses sumber daya. ACL serupa dengan kebijakan berbasis sumber daya, meskipun kebijakan tersebut tidak menggunakan format dokumen kebijakan JSON.

penting

Mayoritas kasus penggunaan modern di Amazon S3 tidak lagi memerlukan penggunaan ACL.

Untuk informasi tentang menggunakan ACL untuk mengontrol akses di Amazon S3, lihat. Mengelola Akses dengan ACL

ABAC dengan Amazon S3

Mendukung ABAC (tanda dalam kebijakan)

Parsial

Kontrol akses berbasis atribut (ABAC) adalah strategi otorisasi yang menentukan izin berdasarkan atribut. Dalam AWS, atribut ini disebut tag. Anda dapat melampirkan tag ke entitas IAM (pengguna atau peran) dan ke banyak AWS sumber daya. Penandaan ke entitas dan sumber daya adalah langkah pertama dari ABAC. Kemudian rancanglah kebijakan ABAC untuk mengizinkan operasi ketika tag milik prinsipal cocok dengan tag yang ada di sumber daya yang ingin diakses.

ABAC sangat berguna di lingkungan yang berkembang dengan cepat dan berguna di situasi saat manajemen kebijakan menjadi rumit.

Untuk mengendalikan akses berdasarkan tag, berikan informasi tentang tag di elemen kondisi dari kebijakan menggunakan kunci kondisi aws:ResourceTag/key-name, aws:RequestTag/key-name, atau aws:TagKeys.

Jika sebuah layanan mendukung ketiga kunci kondisi untuk setiap jenis sumber daya, nilainya adalah Ya untuk layanan tersebut. Jika suatu layanan mendukung ketiga kunci kondisi untuk hanya beberapa jenis sumber daya, nilainya adalah Parsial.

Untuk informasi selengkapnya tentang ABAC, lihat Apa itu ABAC? dalam Panduan Pengguna IAM. Untuk melihat tutorial yang menguraikan langkah-langkah pengaturan ABAC, lihat Menggunakan kontrol akses berbasis atribut (ABAC) dalam Panduan Pengguna IAM.

Untuk melihat contoh kebijakan berbasis identitas untuk membatasi akses ke pekerjaan Operasi Batch S3 berdasarkan tag, lihat. Mengontrol izin untuk Operasi Batch S3 menggunakan tanda tugas

ABAC dan tag objek

Dalam kebijakan ABAC, objek menggunakan s3: tag, bukan aws: tag. Untuk mengontrol akses ke objek berdasarkan tag objek, Anda memberikan informasi tag dalam elemen kondisi kebijakan menggunakan tag berikut:

  • s3:ExistingObjectTag/tag-key

  • s3:s3:RequestObjectTagKeys

  • s3:RequestObjectTag/tag-key

Untuk informasi tentang penggunaan tag objek untuk mengontrol akses, termasuk contoh kebijakan izin, lihatKebijakan pemberian tag dan kontrol akses.

Menggunakan kredensyal sementara dengan Amazon S3

Mendukung penggunaan kredensial sementara

Ya

Beberapa Layanan AWS tidak berfungsi saat Anda masuk menggunakan kredensyal sementara. Untuk informasi tambahan, termasuk yang Layanan AWS bekerja dengan kredensyal sementara, lihat Layanan AWS yang bekerja dengan IAM di Panduan Pengguna IAM.

Anda menggunakan kredensyal sementara jika Anda masuk AWS Management Console menggunakan metode apa pun kecuali nama pengguna dan kata sandi. Misalnya, ketika Anda mengakses AWS menggunakan tautan masuk tunggal (SSO) perusahaan Anda, proses tersebut secara otomatis membuat kredensyal sementara. Anda juga akan secara otomatis membuat kredensial sementara ketika Anda masuk ke konsol sebagai seorang pengguna lalu beralih peran. Untuk informasi selengkapnya tentang peralihan peran, lihat Peralihan peran (konsol) dalam Panduan Pengguna IAM.

Anda dapat membuat kredensyal sementara secara manual menggunakan API AWS CLI atau AWS . Anda kemudian dapat menggunakan kredensil sementara tersebut untuk mengakses. AWS AWS merekomendasikan agar Anda menghasilkan kredensyal sementara secara dinamis alih-alih menggunakan kunci akses jangka panjang. Untuk informasi selengkapnya, lihat Kredensial keamanan sementara di IAM.

Teruskan sesi akses untuk Amazon S3

Mendukung sesi akses maju (FAS)

Ya

Saat Anda menggunakan pengguna atau peran IAM untuk melakukan tindakan AWS, Anda dianggap sebagai prinsipal. Ketika Anda menggunakan beberapa layanan, Anda mungkin melakukan sebuah tindakan yang kemudian menginisiasi tindakan lain di layanan yang berbeda. FAS menggunakan izin dari pemanggilan utama Layanan AWS, dikombinasikan dengan permintaan Layanan AWS untuk membuat permintaan ke layanan hilir. Permintaan FAS hanya dibuat ketika layanan menerima permintaan yang memerlukan interaksi dengan orang lain Layanan AWS atau sumber daya untuk menyelesaikannya. Dalam hal ini, Anda harus memiliki izin untuk melakukan kedua tindakan tersebut. Untuk detail kebijakan ketika mengajukan permintaan FAS, lihat Sesi akses maju.

  • FAS digunakan oleh Amazon S3 untuk melakukan panggilan AWS KMS untuk mendekripsi objek ketika SSE-KMS digunakan untuk mengenkripsi itu. Untuk informasi selengkapnya, lihat Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS).

  • S3 Access Grants juga menggunakan FAS. Setelah Anda membuat hibah akses ke data S3 Anda untuk identitas tertentu, penerima hibah meminta kredensi sementara dari S3 Access Grants. S3 Access Grants memperoleh kredensi sementara untuk pemohon dari AWS STS dan memberikan kredensi kepada pemohon. Untuk informasi selengkapnya, lihat Minta akses ke data Amazon S3 melalui S3 Access Grants.

Peran layanan untuk Amazon S3

Mendukung peran layanan

Ya

Peran layanan adalah peran IAM yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat Membuat sebuah peran untuk mendelegasikan izin ke Layanan AWS dalam Panduan pengguna IAM.

Awas

Mengubah izin untuk peran layanan dapat merusak fungsionalitas Amazon S3. Edit peran layanan hanya jika Amazon S3 memberikan panduan untuk melakukannya.

Peran terkait layanan untuk Amazon S3

Mendukung peran terkait layanan

Parsial

Peran terkait layanan adalah jenis peran layanan yang ditautkan ke. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan.

Amazon S3 mendukung peran terkait layanan untuk Lensa Penyimpanan Amazon S3. Untuk detail tentang membuat atau mengelola peran terkait layanan Amazon S3, lihat. Menggunakan Peran Terkait Layanan untuk Lensa Penyimpanan Amazon S3

Layanan Amazon S3 sebagai Principal

Nama layanan dalam kebijakan Fitur S3 Informasi lain

s3.amazonaws.com

Replikasi S3

Menyiapkan replikasi

s3.amazonaws.com

Pemberitahuan acara S3

Notifikasi Peristiwa Amazon S3

s3.amazonaws.com

Inventaris S3

Inventaris Amazon S3

access-grants.s3.amazonaws.com

Pemberian Akses S3

Mendaftarkan lokasi

batchoperations.s3.amazonaws.com

Operasi Batch S3

Memberikan izin untuk Operasi Batch Amazon S3

logging.s3.amazonaws.com

Pencatatan Akses Server S3

Mengaktifkan pencatatan akses server Amazon S3

storage-lens.s3.amazonaws.com

Lensa Penyimpanan S3

Melihat metrik Lensa Penyimpanan Amazon S3 menggunakan ekspor data