Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sebelum Anda menggunakan IAM untuk mengelola akses ke Amazon S3, pelajari fitur IAM apa yang tersedia untuk digunakan dengan Amazon S3.
Fitur IAM | 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 sebagian besar fitur IAM, AWS lihat layanan yang bekerja dengan IAM 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
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 Tentukan izin IAM kustom dengan kebijakan terkelola pelanggan 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 principal dalam akun yang sama, tidak diperlukan kebijakan berbasis identitas tambahan. Untuk informasi selengkapnya, lihat Akses sumber daya lintas akun di IAM 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
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 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. 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 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
Dalam kebijakan kontrol AWS akses, Prinsipal “*” dan {”AWS“: “*"} berperilaku identik.
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.
Membutuhkan 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, lihatMengonfigurasi kebijakan IAM untuk menggunakan titik akses.
Tindakan kebijakan untuk Amazon S3
Mendukung tindakan kebijakan: Ya
Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana utama dapat melakukan tindakan pada sumber daya, dan dalam 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.
Sertakan 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.
One-to-one pemetaan dengan nama yang sama. Misalnya, untuk menggunakan operasi
PutBucketPolicy
API, tindakans3:PutBucketPolicy
kebijakan diperlukan.One-to-one pemetaan dengan nama yang berbeda. Misalnya, untuk menggunakan operasi
ListObjectsV2
API, tindakans3:ListBucket
kebijakan diperlukan.One-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 terkaits3:GetObjectLegalHold
ataus3:GetObjectRetention
kebijakan juga diperlukan sebelum Anda dapat menggunakan operasiHeadObject
API.Many-to-one pemetaan. Misalnya, untuk menggunakan operasi
ListObjectsV2
atauHeadBucket
API, 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 operasi Amazon S3 API, lihat Tindakan API Amazon S3 di Referensi API Layanan Penyimpanan Sederhana Amazon.
Untuk informasi selengkapnya tentang izin operasi S3 API menurut jenis sumber daya S3, lihat. Izin yang diperlukan untuk operasi API Amazon 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 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:::
amzn-s3-demo-bucket
"
Kebijakan bucket berikut
memberi pengguna Akua
s3:ListBucket
izin akun
untuk melakukan ListObjectsV2Operasi API dan daftar objek dalam bucket 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 Anda 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 titik akses ARN untuk elemen Resource
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 ListObjectsV2Operasi API 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 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:::
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 PutObjectOperasi API 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 elemen Resource
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 elemen. Resource
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 GetObjectOperasi API melalui titik akses yang dinamai Akua
pada semua objek dalam 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 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 titik akses ARN dalam format contoh berikut.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
Kebijakan berbasis identitas IAM berikut memberikan izin untuk melakukan s3:GetAccessPointPolicy
GetAccessPointPolicyOperasi API 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, lihatMengonfigurasi kebijakan IAM 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. Mengonfigurasi kebijakan IAM untuk Titik Akses Lambda Objek
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 (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 DescribeJobAPI pada pekerjaan Operasi 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 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 izin untuk melakukan tingkat akun s3:GetAccountPublicAccessBlock
GetPublicAccessBlockOperasi API 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 Mengonfigurasi kebijakan IAM untuk menggunakan titik akses
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. Yaitu, di mana utama dapat melakukan tindakan pada sumber daya, dan dalam 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
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 jenisnya ARNs, 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.
Untuk informasi selengkapnya tentang izin operasi S3 API menurut jenis sumber daya S3, lihat. Izin yang diperlukan untuk operasi API Amazon S3
Karakter wildcard dalam sumber daya ARNs
Anda dapat menggunakan karakter wildcard sebagai bagian dari ARN sumber daya. Anda dapat menggunakan karakter wildcard (*
dan?
) dalam setiap segmen ARN (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.
-
ARN berikut menggunakan karakter
*
wildcard direlative-ID
bagian ARN untuk mengidentifikasi semua objek dalam ember.amzn-s3-demo-bucket
arn:aws:s3:::
amzn-s3-demo-bucket
/* -
ARN berikut digunakan
*
untuk menunjukkan semua ember dan objek S3.arn:aws:s3:::*
-
ARN berikut menggunakan kedua karakter wildcard,
*
dan?
, di bagian tersebut.relative-ID
ARN ini mengidentifikasi semua objek dalam ember seperti
,,amzn-s3-demo-example1bucket
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 S3 ARNs. 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 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
-
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 Mengonfigurasi kebijakan IAM untuk menggunakan titik akses
Kunci kondisi kebijakan untuk Amazon S3
Mendukung kunci kondisi kebijakan khusus layanan: Yes
Administrator dapat menggunakan kebijakan AWS JSON 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. Sebagai contoh, Anda dapat memberikan izin kepada pengguna IAM untuk mengakses sumber daya hanya jika izin tersebut mempunyai tanda yang sesuai dengan nama pengguna IAM mereka. Untuk informasi selengkapnya, lihat Elemen kebijakan IAM: variabel dan tanda 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
, memiliki ember. Administrator Akun A ingin membatasi123456789012
, 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 Mengonfigurasi kebijakan IAM untuk menggunakan titik akses
ACLs di Amazon S3
Mendukung ACLs: Ya
Di Amazon S3, kontrol daftar kontrol akses (ACLs) yang Akun AWS memiliki izin untuk mengakses sumber daya. ACLs mirip 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
ABAC dengan Amazon S3
Mendukung ABAC (tag dalam kebijakan): Sebagian
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 tanda milik prinsipal cocok dengan tanda 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 tanda, berikan informasi tentang tanda 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 selengkapnya tentang ABAC, lihat Tentukan izin dengan otorisasi 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 menggunakan tag pekerjaan
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 di Conditionelemen kebijakan menggunakan tag berikut:
-
s3:ExistingObjectTag/
tag-key
-
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 kredensial sementara: Ya
Beberapa Layanan AWS tidak berfungsi saat Anda masuk menggunakan kredensil sementara. Untuk informasi tambahan, termasuk yang Layanan AWS bekerja dengan kredensi sementara, lihat Layanan AWS yang bekerja dengan IAM di Panduan Pengguna IAM.
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 tautan masuk tunggal (SSO) perusahaan Anda, proses tersebut secara otomatis membuat kredensil 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 Beralih dari pengguna ke peran IAM (konsol) dalam Panduan Pengguna IAM.
Anda dapat membuat kredensil sementara secara manual menggunakan API AWS CLI atau AWS . 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 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 Buat 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: 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. 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 |
---|---|---|
|
Replikasi S3 |
|
|
Pemberitahuan acara S3 |
|
|
Inventaris S3 |
Mengkatalogkan dan menganalisis data Anda dengan S3 Inventory |
|
Pemberian Akses S3 |
|
|
Operasi Batch S3 |
|
|
Pencatatan Akses Server S3 |
|
|
Lensa Penyimpanan S3 |
Melihat metrik Lensa Penyimpanan Amazon S3 menggunakan ekspor data |