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 IAM fitur apa saja yang tersedia untuk digunakan dengan Amazon S3.
IAMfitur | Dukungan Amazon S3 |
---|---|
Ya |
|
Ya |
|
Ya |
|
Ya |
|
Ya |
|
Ya |
|
Parsial |
|
Ya |
|
Ya |
|
Ya |
|
Parsial |
Untuk mendapatkan tampilan tingkat tinggi tentang cara kerja Amazon S3 dan layanan AWS lainnya dengan IAM sebagian besar fitur, AWS lihat layanan yang berfungsi di IAM Panduan PenggunaIAM.
Untuk informasi selengkapnya tentang izin API operasi S3 menurut jenis sumber daya S3, lihat. Izin yang diperlukan untuk operasi Amazon API S3
Kebijakan berbasis identitas untuk Amazon S3
Mendukung kebijakan berbasis identitas: Ya
Kebijakan berbasis identitas adalah dokumen kebijakan JSON izin yang dapat Anda lampirkan ke identitas, seperti pengguna, grup IAM pengguna, atau peran. 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 Menentukan IAM izin khusus dengan kebijakan yang dikelola pelanggan di Panduan Pengguna. IAM
Dengan kebijakan IAM berbasis identitas, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak serta kondisi di mana tindakan diizinkan atau ditolak. 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 JSON kebijakan, lihat referensi elemen IAM JSON kebijakan di Panduan IAM Pengguna.
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 JSON kebijakan yang Anda lampirkan ke sumber daya. Contoh kebijakan berbasis sumber daya adalah kebijakan kepercayaan IAM peran 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 seluruh akun atau IAM entitas 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, IAM administrator 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 Akses sumber daya lintas akun IAM di Panduan IAM Pengguna.
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
Principal
Elemen 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 Principal di Panduan IAM Pengguna.
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 IAM pengguna dalam akun Anda, Anda harus memberikan pasangan "AWS":"
nama-nilai.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 IAM identitas dihapus setelah Anda memperbarui kebijakan bucket, kebijakan bucket akan menampilkan pengenal unik di elemen utama, bukan. ARN Keunikan ini tidak pernah IDs digunakan kembali, sehingga Anda dapat dengan aman menghapus prinsipal dengan pengenal unik dari semua pernyataan kebijakan Anda. Untuk informasi selengkapnya tentang pengidentifikasi unik, lihat IAMpengidentifikasi di IAMPanduan Pengguna.
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 Allow
efek dalam kebijakan berbasis sumber daya memungkinkan setiap pengguna root, pengguna, sesi peran yang dianggap, atau IAM pengguna gabungan di akun apa pun di partisi yang sama untuk mengakses sumber daya Anda.
Untuk pengguna anonim, kedua metode ini setara. Untuk informasi selengkapnya, lihat Semua prinsip di Panduan Pengguna. IAM
Anda tidak dapat menggunakan wildcard untuk mencocokkan bagian dari nama utama atauARN.
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 IAM prinsipal. 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 URLs
Anda dapat meminta pengguna mengakses konten Amazon S3 Anda hanya dengan menggunakan CloudFront URLs alih-alih Amazon S3. URLs 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 CloudFront URLs, lihat Membatasi akses ke asal Layanan Penyimpanan Sederhana Amazon di Panduan CloudFront Pengembang Amazon. 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
Untuk melihat contoh kebijakan untuk bucket Amazon S3, lihat. Kebijakan bucket untuk Amazon S3
Untuk melihat contoh kebijakan untuk titik akses, lihatMengkonfigurasi IAM kebijakan untuk menggunakan titik akses.
Tindakan kebijakan untuk Amazon S3
Mendukung tindakan kebijakan: Ya
Administrator dapat menggunakan AWS JSON kebijakan untuk menentukan siapa yang memiliki akses ke apa. Yaitu, principal dapat melakukan tindakan pada suatu sumber daya, dan dalam suatu syarat.
Action
Elemen JSON kebijakan menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam kebijakan. Tindakan kebijakan biasanya memiliki nama yang sama dengan AWS API operasi terkait. Ada beberapa pengecualian, seperti tindakan khusus izin yang tidak memiliki operasi yang cocok. API 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 API operasi S3 dan tindakan kebijakan yang diperlukan.
One-to-one pemetaan dengan nama yang sama. Misalnya, untuk menggunakan
PutBucketPolicy
API operasi, tindakans3:PutBucketPolicy
kebijakan diperlukan.One-to-one pemetaan dengan nama yang berbeda. Misalnya, untuk menggunakan
ListObjectsV2
API operasi, tindakans3:ListBucket
kebijakan diperlukan.One-to-many pemetaan. Misalnya, untuk menggunakan
HeadObject
API operasi,s3:GetObject
diperlukan. Selain itu, saat Anda menggunakan Kunci Objek S3 dan ingin mendapatkan status Penahanan Hukum atau pengaturan penyimpanan objek, tindakan terkaits3:GetObjectLegalHold
ataus3:GetObjectRetention
kebijakan juga diperlukan sebelum Anda dapat menggunakanHeadObject
API operasi.Many-to-one pemetaan. Misalnya, untuk menggunakan
ListObjectsV2
atauHeadBucket
API operasi, tindakans3: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 API operasi Amazon S3, lihat Tindakan Amazon API S3 di Referensi Layanan Penyimpanan Sederhana Amazon. API
Untuk informasi selengkapnya tentang izin API operasi S3 menurut jenis sumber daya S3, lihat. Izin yang diperlukan untuk operasi Amazon API S3
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
Operasi bucket adalah operasi S3 API 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 IAM berbasis identitas sebagai pengidentifikasi Amazon Resource Name ARN () tipe bucket S3 dalam format contoh berikut.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
"
Kebijakan bucket berikut
memberi pengguna Akua
s3:ListBucket
izin akun
untuk melakukan ListObjectsV2APIoperasi dan daftar objek dalam ember S3.12345678901
{ "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:::amzn-s3-demo-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 Mengkonfigurasi IAM kebijakan untuk menggunakan titik akses. Dalam kebijakan titik akses, tindakan kebijakan S3 untuk operasi bucket mengharuskan Anda menggunakan titik akses ARN untuk Resource
elemen dalam format berikut.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
Kebijakan jalur akses berikut
memberi pengguna Akua
s3:ListBucket
izin akun
untuk melakukan ListObjectsV2APIoperasi melalui titik akses S3 bernama12345678901
. Izin ini memungkinkan example-access-point
untuk membuat daftar objek di bucket yang terkait dengannyaAkua
. example-access-point
{ "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/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
Operasi objek adalah operasi S3 API yang bertindak atas jenis sumber daya objek. Misalnya,GetObject
,PutObject
, danDeleteObject
. Tindakan kebijakan S3 untuk operasi objek memerlukan Resource
elemen dalam kebijakan menjadi objek S3 ARN dalam format contoh berikut.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*"
"Resource": "arn:aws:s3:::
amzn-s3-demo-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
s3:PutObject
izin akun
. Izin ini 12345678901
memungkinkan untuk menggunakan PutObjectAPIoperasi untuk mengunggah objek ke bucket S3 bernamaAkua
.amzn-s3-demo-bucket
{ "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:::amzn-s3-demo-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 titik akses ARN untuk Resource
elemen dalam format berikut:arn:aws:s3:
. Untuk operasi objek yang menggunakan titik akses, Anda harus menyertakan region
:account-id
:accesspoint/access-point-name
/object/resource
/object/
nilai setelah seluruh titik akses ARN dalam Resource
elemen. Berikut ini adalah beberapa contoh.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/*"
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/prefix
/*"
Kebijakan jalur akses berikut
memberi pengguna Akua
s3:GetObject
izin akun
. Izin ini 12345678901
memungkinkan untuk melakukan GetObjectAPIoperasi melalui titik akses yang dinamai Akua
pada semua objek di bucket yang terkait dengan titik akses. example-access-point
{ "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/example-access-point
/object/*" } ] }
catatan
Tidak semua operasi objek didukung oleh titik akses. Untuk informasi selengkapnya, lihat Kompatibilitas titik akses dengan operasi S3.
Operasi titik akses
Operasi titik akses adalah operasi S3 API yang beroperasi pada jenis accesspoint
sumber daya. Misalnya,CreateAccessPoint
,DeleteAccessPoint
, danGetAccessPointPolicy
. Tindakan kebijakan S3 untuk operasi titik akses hanya dapat digunakan dalam kebijakan IAM berbasis identitas, bukan dalam kebijakan bucket atau kebijakan titik akses. Operasi titik akses memerlukan Resource
elemen untuk menjadi titik akses ARN dalam format contoh berikut.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
Kebijakan IAM berbasis identitas berikut memberikan izin untuk s3:GetAccessPointPolicy
melakukan GetAccessPointPolicyAPIoperasi pada titik akses S3 bernama
.example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point
example-access-point
", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012
:accesspoint/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, lihatMengkonfigurasi IAM kebijakan untuk menggunakan titik akses.
Operasi Objek Lambda Access Point
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. Mengkonfigurasi IAM kebijakan untuk Titik Akses Objek Lambda
Operasi Titik Akses Multi-Wilayah
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 Mengelola lalu lintas Multi-wilayah dengan Titik Akses Multi-Wilayah.
Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan untuk operasi Titik Akses Multi-Wilayah, lihatContoh kebijakan Titik Akses Multi-Wilayah.
Operasi pekerjaan Batch
Operasi pekerjaan (Batch Operations) adalah API operasi S3 yang beroperasi pada jenis sumber daya pekerjaan. Misalnya, DescribeJob
dan CreateJob
. Tindakan kebijakan S3 untuk operasi pekerjaan hanya dapat digunakan dalam kebijakan IAM berbasis identitas, bukan dalam kebijakan bucket. Selain itu, operasi pekerjaan memerlukan Resource
elemen dalam kebijakan IAM berbasis identitas untuk menjadi job
ARN dalam format contoh berikut.
"Resource": "arn:aws:s3:*:
123456789012
:job/*"
Kebijakan IAM berbasis identitas berikut memberikan s3:DescribeJob
izin untuk melakukan operasi pada pekerjaan DescribeJobAPIOperasi Batch S3 yang diberi nama. example-job
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job
example-job
", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012
:job/example-job
" } ] }
Operasi konfigurasi Lensa Penyimpanan S3
Untuk informasi selengkapnya tentang cara mengonfigurasi operasi konfigurasi Lensa Penyimpanan S3, lihatMenyetel izin Lensa Penyimpanan Amazon S3.
Operasi akun
Operasi akun adalah operasi S3 API 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 IAM berbasis identitas, bukan dalam kebijakan bucket. Selain itu, operasi akun memerlukan Resource
elemen dalam kebijakan IAM berbasis identitas. "*"
Kebijakan IAM berbasis identitas berikut memberikan s3:GetAccountPublicAccessBlock
izin untuk melakukan tingkat akun GetPublicAccessBlockAPIoperasi 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
-
Untuk melihat contoh kebijakan berbasis identitas Amazon S3, lihat. Kebijakan berbasis identitas untuk Amazon S3
-
Untuk melihat contoh kebijakan berbasis sumber daya Amazon S3, lihat dan. Kebijakan bucket untuk Amazon S3 Mengkonfigurasi IAM kebijakan untuk menggunakan titik akses
Sumber daya kebijakan untuk Amazon S3
Mendukung sumber daya kebijakan: Ya
Administrator dapat menggunakan AWS JSON kebijakan untuk menentukan siapa yang memiliki akses ke apa. Yaitu, principal dapat melakukan tindakan pada suatu sumber daya, dan dalam suatu syarat.
Elemen Resource
JSON kebijakan menentukan objek atau objek yang tindakan tersebut berlaku. Pernyataan harus menyertakan elemen Resource
atau NotResource
. Sebagai praktik terbaik, 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 API tindakan Amazon S3 mendukung banyak sumber daya. Misalnya, s3:GetObject
mengakses
danexample-resource-1
, jadi prinsipal harus memiliki izin untuk mengakses kedua sumber daya. Untuk menentukan beberapa sumber daya dalam satu pernyataan, pisahkan ARNs dengan koma, seperti yang ditunjukkan pada contoh berikut. example-resource-2
"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 jenisnyaARNs, lihat Sumber daya yang ditentukan oleh Amazon S3 di Referensi Otorisasi Layanan. Untuk mempelajari tindakan yang dapat Anda tentukan ARN dari setiap sumber daya, lihat Tindakan yang ditentukan oleh Amazon S3.
Untuk informasi selengkapnya tentang izin API operasi S3 menurut jenis sumber daya S3, lihat. Izin yang diperlukan untuk operasi Amazon API S3
Karakter wildcard dalam sumber daya ARNs
Anda dapat menggunakan karakter wildcard sebagai bagian dari sumber ARN daya. Anda dapat menggunakan karakter wildcard (*
dan?
) dalam ARN segmen apa pun (bagian dipisahkan oleh titik dua). Tanda bintang (*
) menunjukkan kombinasi apa pun dari nol karakter atau lebih, dan tanda tanya (?
) menunjukkan karakter tunggal. Anda dapat menggunakan beberapa *
atau ?
karakter di setiap segmen. Namun, karakter wildcard tidak dapat menjangkau segmen.
-
Berikut ini ARN menggunakan karakter
*
wildcard direlative-ID
bagian ARN untuk mengidentifikasi semua objek dalam
ember.amzn-s3-demo-bucket
arn:aws:s3:::
amzn-s3-demo-bucket
/* -
Berikut ini ARN digunakan
*
untuk menunjukkan semua ember dan objek S3.arn:aws:s3:::*
-
Berikut ini ARN menggunakan kedua karakter wildcard,
*
dan?
, direlative-ID
bagian tersebut. Ini ARN mengidentifikasi semua objek dalam ember seperti
,amzn-s3-demo-contoh1bucket
,amzn-s3-demo-example2bucket
, dan sebagainya.amzn-s3-demo-example3bucket
arn:aws:s3:::
amzn-s3-demo-example
?bucket
/*
Variabel kebijakan untuk sumber daya ARNs
Anda dapat menggunakan variabel kebijakan di Amazon S3ARNs. Pada waktu evaluasi kebijakan, variabel-variabel yang telah ditentukan ini digantikan oleh nilai-nilai yang sesuai. Misalkan Anda mengatur bucket Anda sebagai kumpulan folder, dengan satu folder untuk setiap pengguna Anda. Nama foldernya sama dengan nama pengguna. Untuk memberikan izin kepada pengguna ke folder mereka, Anda dapat menentukan variabel kebijakan di sumber dayaARN:
arn:aws:s3:::
bucket_name
/developers
/${aws:username}/
Saat runtime, ketika kebijakan dievaluasi, variabel ${aws:username}
dalam sumber daya ARN diganti dengan nama pengguna orang yang membuat permintaan.
Contoh kebijakan untuk Amazon S3
-
Untuk melihat contoh kebijakan berbasis identitas Amazon S3, lihat. Kebijakan berbasis identitas untuk Amazon S3
-
Untuk melihat contoh kebijakan berbasis sumber daya Amazon S3, lihat dan. Kebijakan bucket untuk Amazon S3 Mengkonfigurasi IAM kebijakan untuk menggunakan titik akses
Kunci kondisi kebijakan untuk Amazon S3
Mendukung kunci kondisi kebijakan khusus layanan: Ya
Administrator dapat menggunakan AWS JSON kebijakan untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana utama dapat melakukan tindakan pada sumber daya, dan dalam 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. Misalnya, Anda dapat memberikan izin IAM pengguna untuk mengakses sumber daya hanya jika ditandai dengan nama IAM pengguna mereka. Untuk informasi selengkapnya, lihat elemen IAM kebijakan: variabel dan tag di Panduan IAM Pengguna.
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 IAM Pengguna.
Setiap kunci kondisi Amazon S3 memetakan ke header permintaan nama yang sama yang diizinkan oleh kondisi yang dapat disetel. API 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
, memiliki ember. Administrator Akun A ingin membatasi 123456789012
, pengguna di Akun A, sehingga Dave
dapat mengunggah objek ke bucket hanya jika objek disimpan di kelas Dave
STANDARD_IA
penyimpanan. 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:::amzn-s3-demo-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
. Kondisi ini mengharuskan pengguna untuk menyertakan x-amz-acl
header dengan nilai public-read
di setiap PutObject
permintaan.
Contoh kebijakan untuk Amazon S3
-
Untuk melihat contoh kebijakan berbasis identitas Amazon S3, lihat. Kebijakan berbasis identitas untuk Amazon S3
-
Untuk melihat contoh kebijakan berbasis sumber daya Amazon S3, lihat dan. Kebijakan bucket untuk Amazon S3 Mengkonfigurasi IAM kebijakan untuk menggunakan titik akses
ACLsdi Amazon S3
MendukungACLs: Ya
Di Amazon S3, kontrol daftar kontrol akses (ACLs) yang Akun AWS memiliki izin untuk mengakses sumber daya. ACLsmirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan. JSON
penting
Mayoritas kasus penggunaan modern di Amazon S3 tidak lagi memerlukan penggunaan. ACLs
Untuk informasi tentang penggunaan ACLs untuk mengontrol akses di Amazon S3, lihat. Mengelola akses dengan ACLs
ABACdengan Amazon S3
Mendukung ABAC (tag dalam kebijakan): Sebagian
Attribute-based access control (ABAC) adalah strategi otorisasi yang mendefinisikan izin berdasarkan atribut. Dalam AWS, atribut ini disebut tag. Anda dapat melampirkan tag ke IAM entitas (pengguna atau peran) dan ke banyak AWS sumber daya. Menandai entitas dan sumber daya adalah langkah pertama dari. ABAC Kemudian Anda merancang ABAC kebijakan untuk mengizinkan operasi ketika tag prinsipal cocok dengan tag pada sumber daya yang mereka coba akses.
ABACmembantu dalam lingkungan yang berkembang pesat dan membantu dengan situasi di mana 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/
, atau key-name
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 selengkapnyaABAC, lihat Menentukan izin dengan ABAC otorisasi di IAMPanduan Pengguna. Untuk melihat tutorial dengan langkah-langkah penyiapanABAC, lihat Menggunakan kontrol akses berbasis atribut (ABAC) di IAMPanduan Pengguna.
Untuk melihat contoh kebijakan berbasis identitas untuk membatasi akses ke pekerjaan Operasi Batch S3 berdasarkan tag, lihat. Mengontrol izin untuk Operasi Batch menggunakan tag pekerjaan
ABACdan tag objek
Dalam ABAC kebijakan, objek menggunakan s3:
tag, bukan aws:
tag. Untuk mengontrol akses ke objek berdasarkan tag objek, Anda memberikan informasi tag di Conditionelemen 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 kredensil sementara dengan Amazon S3
Mendukung kredensi sementara: Ya
Beberapa Layanan AWS tidak berfungsi saat Anda masuk menggunakan kredensil sementara. Untuk informasi tambahan, termasuk yang Layanan AWS bekerja dengan kredensil sementara, lihat Layanan AWS yang berfungsi IAM di IAMPanduan Pengguna.
Anda menggunakan kredensi sementara jika Anda masuk AWS Management Console menggunakan metode apa pun kecuali nama pengguna dan kata sandi. Misalnya, ketika Anda mengakses AWS menggunakan link sign-on (SSO) tunggal perusahaan Anda, proses tersebut secara otomatis membuat kredensi sementara. Anda juga akan secara otomatis membuat kredensial sementara ketika Anda masuk ke konsol sebagai seorang pengguna lalu beralih peran. Untuk informasi selengkapnya tentang beralih peran, lihat Beralih dari pengguna ke IAM peran (konsol) di Panduan IAM Pengguna.
Anda dapat secara manual membuat kredensil sementara menggunakan atau. AWS CLI AWS API Anda kemudian dapat menggunakan kredensil sementara tersebut untuk mengakses. AWS AWS merekomendasikan agar Anda secara dinamis menghasilkan kredensi sementara alih-alih menggunakan kunci akses jangka panjang. Untuk informasi selengkapnya, lihat Kredensi keamanan sementara di. IAM
Teruskan sesi akses untuk Amazon S3
Mendukung sesi akses maju (FAS): Ya
Saat Anda menggunakan IAM pengguna atau peran 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. FASmenggunakan izin dari pemanggilan utama Layanan AWS, dikombinasikan dengan permintaan Layanan AWS untuk membuat permintaan ke layanan hilir. FASPermintaan 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 saat membuat FAS permintaan, lihat Meneruskan sesi akses.
FASdigunakan oleh Amazon S3 untuk melakukan panggilan AWS KMS untuk mendekripsi objek ketika SSE - digunakan untuk mengenkripsi KMS 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 IAMperan yang diasumsikan layanan untuk melakukan tindakan atas nama Anda. IAMAdministrator dapat membuat, memodifikasi, dan menghapus peran layanan dari dalamIAM. Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin ke Layanan AWS dalam IAMPanduan Pengguna.
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: Sebagian
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. IAMAdministrator dapat melihat, tetapi tidak 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 |
---|---|---|
|
Replikasi S3 |
|
|
Pemberitahuan acara S3 |
|
|
Inventaris S3 |
|
|
Pemberian Akses S3 |
|
|
Operasi Batch S3 |
|
|
Pencatatan Akses Server S3 |
|
|
Lensa Penyimpanan S3 |
Melihat metrik Lensa Penyimpanan Amazon S3 menggunakan ekspor data |