Kebijakan dan izin di AWS Identity and Access Management - AWS Identity and Access Management

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

Kebijakan dan izin di AWS Identity and Access Management

Mengelola akses AWS dengan membuat kebijakan dan melampirkannya ke IAM identitas (pengguna, grup pengguna, atau peran) atau AWS sumber daya. Kebijakan adalah objek di, AWS yang saat terkait dengan identitas atau sumber daya, akan menentukan izinnya. AWS Mengevaluasi kebijakan ini saat IAM penanggung jawab (pengguna atau peran) mengajukan permintaan. Izin dalam kebijakan menentukan apakah permintaan diizinkan atau ditolak. Sebagian besar kebijakan disimpan AWS sebagai JSON dokumen. AWS Untuk mendukung tujuh tipe kebijakan: kebijakan berbasis identitas, kebijakan berbasis identitas, kebijakan berbasis identitas, kebijakan kontrol layanan Organizations (), Organizations kebijakan kontrol sumber daya ()SCPs, daftar kontrol akses (RCPs), dan kebijakan sesi. ACLs

IAMKebijakan mendefinisikan izin untuk suatu tindakan terlepas dari metode yang Anda gunakan untuk melakukan operasi. Misalnya, jika kebijakan mengizinkan GetUsertindakan, maka pengguna dengan kebijakan itu bisa mendapatkan informasi pengguna dari AWS Management Console, AWS CLI, atau AWS API. Saat membuat IAM pengguna, Anda dapat memilih untuk mengizinkan akses konsol atau program. Jika akses konsol diperbolehkan, IAM pengguna dapat masuk ke konsol menggunakan kredenal masuk mereka. Jika akses terprogram diperbolehkan, pengguna dapat menggunakan kunci akses untuk bekerja dengan CLI atauAPI.

Jenis kebijakan

Tipe kebijakan berikut, yang tercantum dalam urutan dari yang paling sering digunakan hingga yang jarang digunakan, tersedia untuk digunakan dalam AWS. Untuk perincian selengkapnya, lihat bagian di bawah ini untuk setiap jenis kebijakan.

  • Kebijakan berbasis identitas - Lampirkan kebijakan terkelola dan sebaris ke IAM identitas (pengguna, grup tempat pengguna berada, atau peran). Kebijakan berbasis identitas memberikan izin kepada sebuah identitas.

  • Kebijakan berbasis sumber daya – Lampirkan kebijakan yang sesuai ke sumber daya. Contoh kebijakan berbasis sumber daya yang paling umum adalah kebijakan bucket Amazon S3 dan kebijakan kepercayaan peran. IAM Kebijakan berbasis sumber daya memberikan izin kepada prinsipal yang ditentukan dalam kebijakan. Prinsipal dapat berada di akun yang sama dengan sumber daya atau di akun lain.

  • Batas izin — Gunakan kebijakan terkelola sebagai batas izin untuk IAM entitas (pengguna atau peran). Kebijakan tersebut menentukan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas, tetapi tidak memberikan izin. Batas izin tidak menentukan izin maksimum yang dapat diberikan oleh kebijakan berbasis sumber daya kepada entitas.

  • Organizations SCPs — Gunakan kebijakan kontrol AWS Organizations layanan (SCP) untuk menentukan izin maksimum bagi IAM pengguna dan IAM peran dalam akun di organisasi atau unit organisasi (OU) Anda. SCPsmembatasi izin yang diberikan oleh kebijakan berbasis identitas atau kebijakan berbasis identitas atau kebijakan berbasis sumber daya kepada pengguna atau peran dalam akun. IAM IAM SCPsjangan berikan izin.

  • Organizations RCPs — Gunakan kebijakan kontrol AWS Organizations sumber daya (RCP) untuk menentukan izin maksimum sumber daya dalam akun di organisasi atau unit organisasional (OU) Anda. RCPsmembatasi izin yang dapat diberikan oleh kebijakan berbasis identitas dan sumber daya ke sumber daya di akun dalam organisasi Anda. RCPsjangan berikan izin.

  • Access Control Lists (ACLs) — Gunakan ACLs untuk mengontrol prinsipal mana di akun lain yang dapat mengakses sumber daya tempat terlampir. ACL ACLsserupa dengan kebijakan berbasis sumber daya, meskipun itu merupakan satu-satunya jenis kebijakan yang tidak menggunakan struktur dokumen kebijakan. JSON ACLsKebijakan izin lintas akun yang memberikan izin untuk penanggung jawab tertentu. ACLstidak dapat memberikan izin untuk entitas dalam akun yang sama.

  • Kebijakan sesi — Memberikan kebijakan sesi lanjutan saat Anda menggunakan AWS CLI atau AWS API untuk mengambil peran atau pengguna gabungan. Kebijakan sesi membatasi izin yang diberikan oleh peran atau kebijakan berbasis identitas pengguna ke sesi. Kebijakan sesi membatasi izin untuk sesi yang dibuat, tetapi tidak memberikan izin. Untuk informasi lebih lanjut, lihat Kebijakan Sesi

Kebijakan berbasis identitas

Kebijakan berbasis identitas adalah dokumen kebijakan JSON izin yang mengontrol tindakan apa yang dapat dilakukan oleh identitas (pengguna, grup pengguna, dan peran), sumber daya yang mana, dan dalam kondisi apa. Kebijakan berbasis identitas selanjutnya dapat dikategorikan menjadi:

  • Kebijakan terkelola — Kebijakan berbasis identitas mandiri yang dapat diterapkan ke beberapa pengguna, grup, dan peran dalam Anda. Akun AWS Ada dua jenis kebijakan terkelola:

    • AWS kebijakan terkelola — Kebijakan terkelola yang dibuat dan dikelola oleh AWS.

    • Kebijakan yang dikelola pelanggan — Kebijakan terkelola yang Anda buat dan kelola di Anda Akun AWS. Kebijakan yang dikelola pelanggan memberikan kontrol yang lebih tepat atas kebijakan Anda dibandingkan kebijakan yang AWS dikelola.

  • Kebijakan inline – Kebijakan yang Anda tambahkan secara langsung ke satu pengguna, grup, atau peran. Kebijakan inline mempertahankan one-to-one hubungan yang ketat antara kebijakan dan identitas. Mereka dihapus ketika Anda menghapus identitas.

Untuk mempelajari cara memilih antara kebijakan terkelola dan kebijakan inline, lihat Memilih antara kebijakan terkelola dan kebijakan inline.

Kebijakan berbasis sumber daya

Kebijakan berbasis sumber daya adalah dokumen JSON kebijakan yang Anda lampirkan ke sumber daya seperti bucket Amazon S3. Kebijakan ini memberikan izin prinsipal yang ditentukan untuk melakukan tindakan tertentu pada sumber daya tersebut dan menetapkan di bawah ketentuan yang berlaku. Kebijakan berbasis sumber daya merupakan kebijakan inline. Tidak ada kebijakan berbasis sumber daya terkelola.

Untuk mengaktifkan akses lintas akun, Anda dapat menentukan seluruh akun atau IAM entitas di akun lain sebagai penanggung jawab kebijakan berbasis sumber daya. Menambahkan prinsipal akun silang ke kebijakan berbasis sumber daya hanya setengah dari membangun hubungan kepercayaan. Ketika penanggung jawab dan sumber daya terpisah Akun AWS, Anda juga harus menggunakan kebijakan berbasis identitas untuk memberikan akses penanggung jawab ke sumber daya. Namun, jika kebijakan berbasis sumber daya memberikan akses ke prinsipal dalam akun yang sama, tidak diperlukan kebijakan berbasis identitas tambahan. Untuk petunjuk langkah demi langkah untuk memberikan akses lintaslayanan, lihat IAMtutorial: Delegasikan akses di seluruh AWS akun menggunakan peran IAM.

IAMLayanan hanya mendukung satu jenis kebijakan berbasis sumber daya yang disebut kebijakan kepercayaan peran, yang terlampir pada peran. IAM IAMPeran adalah identitas dan sumber daya yang mendukung kebijakan berbasis sumber daya. Oleh karena itu, Anda harus melampirkan baik kebijakan kepercayaan dan kebijakan berbasis identitas pada suatu peran. IAM Kebijakan kepercayaan menentukan entitas prinsipal mana (akun, pengguna, peran, dan pengguna gabungan) yang dapat memegang peran tersebut. Untuk mempelajari bagaimana IAM peran berbeda dengan kebijakan berbasis sumber daya lainnya, lihat. Akses sumber daya lintas akun di IAM

Untuk melihat mana layanan lainnya yang mendukung kebijakan berbasis sumber daya, lihat AWS layanan yang bekerja dengan IAM. Untuk mempelajari lebih lanjut tentang kebijakan berbasis sumber daya, lihat Kebijakan berbasis identitas dan kebijakan berbasis sumber daya. Untuk mempelajari apakah prinsip di akun di luar zona kepercayaan (organisasi atau akun tepercaya) memiliki akses untuk menjalankan peran Anda, lihat Apa yang dimaksud dengan Penganalisis Akses? IAM .

Batas izin IAM

Batas izin adalah fitur lanjutan di mana Anda mengatur izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas ke entitas. IAM Saat Anda menetapkan batas izin untuk suatu entitas, entitas hanya dapat melakukan tindakan yang diizinkan oleh kedua kebijakan berbasis identitas dan batas izinnya. Jika Anda menentukan sesi peran atau pengguna dalam elemen utama kebijakan berbasis sumber daya, izin eksplisit dalam batas izin tidak diperlukan. Namun, jika Anda menentukan peran ARN dalam elemen utama kebijakan berbasis sumber daya, izin eksplisit dalam batas izin diperlukan. Dalam kedua kasus tersebut, penolakan eksplisit dalam batas izin efektif. Penolakan eksplisit dalam salah satu kebijakan ini akan menggantikan pemberian izin. Untuk informasi lebih lanjut tentang batas izin, lihat Batas izin untuk entitas IAM.

Kebijakan kontrol layanan Organizations (SCPs)

Jika Anda mengaktifkan semua fitur dalam suatu organization, maka Anda dapat menerapkan kebijakan kontrol layanan (SCPs) ke setiap atau semua akun Anda. SCPsJSONKebijakan yang menentukan izin maksimum untuk IAM pengguna dan IAM peran dalam akun organisasi atau unit organisasional (OU). SCPMembatasi izin untuk prinsipal di akun anggota, termasuk masing-masing. Pengguna root akun AWS Penolakan secara tegas dalam salah satu kebijakan ini membatalkan izin dalam kebijakan lain.

Untuk informasi selengkapnya tentang Organizations danSCPs, lihat Kebijakan kontrol layanan (SCPs) di Panduan AWS Organizations Pengguna.

Kebijakan pengendalian sumber daya Organizations (RCPs)

Jika Anda mengaktifkan semua fitur dalam suatu organization, maka Anda dapat menggunakan kebijakan kontrol sumber daya (RCPs) untuk secara terpusat menerapkan kontrol akses pada sumber daya di beberapa Akun AWS sumber daya. RCPsadalah JSON kebijakan yang dapat Anda gunakan untuk menyetel izin maksimum yang tersedia untuk sumber daya di akun Anda tanpa memperbarui IAM kebijakan yang dilampirkan pada setiap sumber daya yang Anda miliki. RCPMembatasi izin untuk sumber daya di akun anggota dan dapat memengaruhi izin efektif untuk identitas, termasuk Pengguna root akun AWS, terlepas dari apakah itu milik organisasi Anda. Penyangkalan eksplisit dalam hal apa pun yang berlaku RCP mengesampingkan izin dalam kebijakan lain yang mungkin dilampirkan pada identitas atau sumber daya individu.

Untuk informasi selengkapnya tentang Organizations dan RCPs menyertakan daftar dukungan Layanan AWS tersebutRCPs, lihat Kebijakan kontrol sumber daya (RCPs) di Panduan AWS Organizations Pengguna.

Access Control Lists (ACLs)

Access Control Lists (ACLs) adalah kebijakan layanan yang memungkinkan Anda mengontrol prinsipal mana di akun lain yang dapat mengakses sumber daya. ACLsTidak dapat digunakan untuk mengontrol akses bagi penanggung jawab dalam akun yang sama. ACLsserupa dengan kebijakan berbasis sumber daya, meskipun itu merupakan satu-satunya jenis kebijakan yang tidak menggunakan format dokumen kebijakan. JSON Amazon S3, AWS WAF, dan Amazon VPC adalah contoh layanan yang mendukung. ACLs Untuk mempelajari selengkapnyaACLs, lihat Gambaran umum Daftar Kontrol Akses (ACL) di Panduan Developer Amazon Simple Storage Service.

Kebijakan sesi

Kebijakan sesi adalah kebijakan lanjutan yang Anda jalankan sebagai parameter saat Anda secara terprogram membuat sesi sementara untuk peran atau pengguna federasi. Izin untuk sesi adalah titik temu kebijakan berbasis identitas untuk IAM entitas (pengguna atau peran) yang digunakan untuk membuat sesi dan kebijakan sesi. Izin juga bisa datang dari kebijakan berbasis sumber daya. Penolakan secara tegas dalam salah satu kebijakan ini membatalkan izin.

Anda dapat membuat sesi peran dan meneruskan kebijakan sesi secara terprogram menggunakan AssumeRoleAssumeRoleWithSAML, atau AssumeRoleWithWebIdentity API operasi. Anda dapat meneruskan suatu dokumen kebijakan sesi JSON inline tunggal dengan menggunakan Policy parameter. Anda dapat menggunakan parameter PolicyArns untuk menentukan hingga 10 kebijakan sesi terkelola. Untuk informasi selengkapnya tentang cara membuat sesi peran, lihat Izin untuk kredensial keamanan sementara.

Saat Anda membuat sesi pengguna gabungan, Anda menggunakan kunci akses IAM pengguna untuk secara terprogram memanggil operasi. GetFederationToken API Anda juga harus memberikan kebijakan sesi. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas dan kebijakan sesi. Untuk informasi selengkapnya tentang cara membuat sesi pengguna gabungan, lihat Meminta kredensi melalui pialang identitas khusus.

Kebijakan berbasis sumber daya dapat menentukan pengguna atau peran sebagai prinsipal. ARN Dalam hal ini, izin dari kebijakan berbasis sumber daya ditambahkan ke peran atau kebijakan berbasis identitas pengguna sebelum sesi dibuat. Kebijakan sesi membatasi total izin yang diberikan oleh kebijakan berbasis sumber daya dan kebijakan berbasis identitas. Izin sesi yang dihasilkan adalah persimpangan kebijakan sesi dan kebijakan berbasis sumber daya ditambah persimpangan kebijakan sesi dan kebijakan berbasis identitas.

Evaluasi kebijakan sesi dengan kebijakan berbasis sumber daya yang menentukan entitas ARN

Kebijakan berbasis sumber daya dapat menentukan sesi sebagai ARN prinsipal. Dalam hal ini, izin dari kebijakan berbasis sumber daya ditambahkan setelah sesi dibuat. Izin kebijakan berbasis sumber daya tidak terbatas oleh kebijakan sesi. Izin sesi yang dihasilkan mempunyai semua izin dari kebijakan berbasis sumber daya ditambah titik pertemuan antara kebijakan berbasis identitas dan kebijakan sesi.

Evaluasi kebijakan sesi dengan kebijakan berbasis sumber daya yang menentukan sesi ARN

Batas izin dapat mengatur izin maksimum untuk pengguna atau peran yang digunakan untuk membuat sebuah sesi. Dalam kasus ini, Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan kebijakan sesi, batas izin, dan kebijakan berbasis identitas. Namun, batas izin tidak membatasi izin yang diberikan oleh kebijakan berbasis sumber daya yang menentukan sesi yang dihasilkan. ARN

Evaluasi kebijakan sesi dengan batas izin

Kebijakan dan pengguna root

Pengguna root akun AWS Hal ini dipengaruhi oleh beberapa jenis kebijakan tetapi tidak yang lain. Anda tidak dapat melampirkan kebijakan berbasis identitas ke pengguna root, dan Anda tidak dapat menetapkan batas izin bagi pengguna root. Namun, Anda dapat menentukan pengguna root sebagai prinsipal dalam kebijakan berbasis sumber daya atau. ACL Pengguna root masih menjadi anggota akun. Jika akun tersebut anggota sebuah organisasi di AWS Organizations, pengguna root dipengaruhi oleh SCPs dan RCPs untuk akun.

Gambaran dari JSON kebijakan

Sebagian besar kebijakan disimpan AWS sebagai JSON dokumen. Kebijakan berbasis identitas dan kebijakan yang digunakan untuk mengatur batas izin adalah dokumen JSON kebijakan yang Anda lampirkan ke pengguna atau peran. Kebijakan berbasis sumber daya adalah dokumen JSON kebijakan yang Anda lampirkan ke sumber daya. SCPsdan RCPs merupakan dokumen JSON kebijakan dengan sintaks terbatas yang Anda lampirkan ke AWS Organizations akar organisasi, unit organisasional (OU), atau akun. ACLsjuga terlampir pada sumber daya, tetapi Anda harus menggunakan sintaks yang berbeda. Kebijakan sesi adalah JSON kebijakan yang berikan saat Anda mengambil sebuah peran atau sesi pengguna gabungan.

Tidak perlu bagi Anda untuk memahami JSON sintaks. Anda dapat menggunakan editor visual di AWS Management Console untuk membuat dan mengubah kebijakan yang dikelola pelanggan tanpa pernah menggunakanJSON. Namun, jika Anda menggunakan kebijakan inline untuk grup atau kebijakan yang kompleks, Anda masih harus membuat dan mengubah kebijakan tersebut di JSON editor menggunakan konsol. Untuk informasi lebih lanjut tentang cara menggunakan editor visual, lihat Tentukan IAM izin khusus dengan kebijakan terkelola pelanggan dan Edit IAM kebijakan.

Saat membuat atau mengedit JSON kebijakan, IAM dapat melakukan validasi kebijakan untuk membantu Anda membuat kebijakan yang efektif. IAMmengidentifikasi kesalahan JSON sintaks, sementara IAM Access Analyzer memberikan pemeriksaan kebijakan tambahan dengan rekomendasi untuk membantu menyempurnakan kebijakan Anda lebih lanjut. Untuk mempelajari selengkapnya tentang validasi kebijakan, lihat Validasi kebijakan IAM. Untuk mempelajari selengkapnya tentang pemeriksaan kebijakan IAM Access Analyzer dan rekomendasi yang dapat ditindaklanjuti, lihat Validasi kebijakan IAMAccess Analyzer.

JSONStruktur dokumen kebijakan

Sebagaimana digambarkan dalam gambar berikut, dokumen JSON kebijakan mencakup elemen-elemen ini:

  • Informasi opsional untuk seluruh kebijakan di bagian atas dokumen

  • Satu atau lebih pernyataan individu

Setiap pernyataan mencakup informasi tentang satu izin. Jika kebijakan mencakup beberapa pernyataan, AWS terapkan logis OR di semua pernyataan saat mengevaluasinya. Jika beberapa kebijakan berlaku untuk permintaan, AWS terapkan logis OR di semua kebijakan tersebut saat mengevaluasinya.

JSONStruktur dokumen kebijakan

Informasi dalam pernyataan terkandung di dalam rangkaian elemen.

  • Version – Tentukan versi bahasa kebijakan yang ingin Anda gunakan. Kami menyarankan agar Anda menggunakan 2012-10-17 versi terbaru. Untuk informasi selengkapnya, silakan lihat IAMJSONelemen kebijakan: Version

  • Statement – Gunakan elemen kebijakan utama ini sebagai wadah untuk elemen berikut. Anda dapat menyertakan lebih dari satu pernyataan dalam kebijakan.

  • Sid (Opsional) – Sertakan ID pernyataan opsional untuk membedakan antara pernyataan Anda.

  • Effect – Gunakan Allow atau Deny untuk menunjukkan apakah kebijakan mengizinkan atau menolak akses.

  • Principal(Diwajibkan dalam beberapa situasi) — Jika Anda membuat kebijakan berbasis sumber daya, Anda harus mengindikasikan akun, pengguna, peran, atau pengguna gabungan yang ingin Anda izinkan atau tolak aksesnya. Jika Anda membuat kebijakan IAM izin untuk melampirkan ke pengguna atau peran, Anda tidak dapat menyertakan elemen ini. Prinsipal tersirat sebagai pengguna atau peran tersebut.

  • Action – Sertakan daftar tindakan yang diperbolehkan atau ditolak oleh kebijakan.

  • Resource(Diwajibkan dalam beberapa situasi) — Jika Anda membuat kebijakan IAM izin, Anda harus menentukan daftar sumber daya tempat tindakan tersebut berlaku. Jika Anda membuat kebijakan berbasis sumber daya, tergantung pada sumber daya yang Anda gunakan, apakah elemen ini diperlukan atau tidak.

  • Condition (Opsional) – Tentukan keadaan di mana kebijakan memberikan izin.

Untuk mempelajari tentang ini dan elemen kebijakan yang lebih maju lainnya, lihat Referensi elemen kebijakan IAM JSON.

Beberapa pernyataan dan beberapa kebijakan

Jika Anda ingin menetapkan lebih dari satu izin untuk suatu entitas (pengguna atau peran), Anda dapat menggunakan beberapa pernyataan dalam satu kebijakan. Anda juga dapat melampirkan beberapa kebijakan. Jika Anda mencoba untuk menentukan beberapa izin dalam satu pernyataan, kebijakan Anda mungkin tidak memberikan akses yang Anda harapkan. Kami menyarankan agar Anda memecah kebijakan berdasarkan jenis sumber daya.

Karena ukuran kebijakan yang terbatas, mungkin perlu menggunakan beberapa kebijakan untuk izin yang lebih kompleks. Ini juga merupakan ide bagus untuk membuat pengelompokan fungsional izin dalam kebijakan pengelolaan pelanggan yang terpisah. Misalnya, Buat satu kebijakan untuk manajemen IAM pengguna, satu untuk manajemen mandiri, dan kebijakan lain untuk manajemen bucket S3. Terlepas dari kombinasi beberapa pernyataan dan beberapa kebijakan, AWS mengevaluasi kebijakan Anda dengan cara yang sama.

Misalnya, kebijakan berikut memiliki tiga pernyataan, yang masing-masing mendefinisikan satu set izin secara terpisah dalam satu akun. Pernyataan tersebut menjelaskan hal berikut:

  • Pernyataan pertama, dengan sebuah Sid (ID Pernyataan) dari FirstStatement, memungkinkan pengguna dengan kebijakan terlampir untuk mengubah kata sandi milik mereka. Elemen Resource dalam pernyataan ini adalah “*“ (yang berarti “semua sumber daya”). Namun dalam pelaksanaannya, ChangePassword API operasi (atau change-password CLI perintah setara) hanya memengaruhi kata sandi untuk pengguna yang membuat permintaan.

  • Pernyataan kedua memungkinkan pengguna mencantumkan semua bucket Amazon S3 di dalamnya. Akun AWS Elemen Resource dalam pernyataan ini adalah "*" (yang berarti “semua sumber daya”). Namun karena kebijakan tidak memberikan akses ke sumber daya di akun lain, pengguna hanya dapat mencantumkan dalam bucket milik Akun AWS mereka.

  • Pernyataan ketiga memungkinkan pengguna membuat daftar dan mengambil objek apa saja yang ada di dalam bucket bernamaamzn-s3-demo-bucket-confidential-data, tetapi hanya saat pengguna diautentikasi dengan Autentikasi Multi-Faktor (). MFA ConditionElemen dalam kebijakan tersebut memberlakukan MFA autentikasi.

    Saat pernyataan kebijakan memuat elemen Condition, pernyataan hanya berlaku saat elemen Condition dievaluasi menjadi benar. Dalam kasus ini, Condition mengevaluasi menjadi benar saat pengguna MFA -diautentikasi. Jika pengguna tidak MFA diautentikasi, ini Condition dievaluasi menjadi salah. Dalam hal ini, pernyataan ketiga dalam kebijakan ini tidak berlaku dan pengguna tidak memiliki akses ke bucket amzn-s3-demo-bucket-confidential-data.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FirstStatement", "Effect": "Allow", "Action": ["iam:ChangePassword"], "Resource": "*" }, { "Sid": "SecondStatement", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Sid": "ThirdStatement", "Effect": "Allow", "Action": [ "s3:List*", "s3:Get*" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-confidential-data", "arn:aws:s3:::amzn-s3-demo-bucket-confidential-data/*" ], "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}} } ] }

Contoh sintaks JSON kebijakan

Kebijakan berbasis identitas berikut mengizinkan prinsipal tersirat untuk mencantumkan satu bucket Amazon S3 dengan nama amzn-s3-demo-bucket:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" } }

Kebijakan berbasis sumber daya berikut dapat dilampirkan ke bucket Amazon S3 Kebijakan ini mengizinkan anggota tertentu Akun AWS untuk melakukan tindakan Amazon S3 apa pun dalam bucket dengan nama. amzn-s3-demo-bucket Hal ini mengizinkan tindakan apa pun yang dapat dilakukan pada bucket atau objek di dalamnya. (Karena kebijakan tersebut hanya memberikan kepercayaan ke akun, pengguna individu dalam akun tersebut harus tetap diberikan izin untuk tindakan Amazon S3 yang ditentukan.)

{ "Version": "2012-10-17", "Statement": [{ "Sid": "1", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::account-id:root"]}, "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }] }

Untuk melihat contoh kebijakan untuk skenario umum, lihat Contoh kebijakan berbasis identitas IAM.

Berikan hak akses paling rendah

Saat Anda membuat IAM kebijakan, ikuti saran keamanan standar untuk memberikan hak istimewa paling rendah, atau hanya memberikan izin yang diperlukan untuk melakukan tugas. Tentukan apa yang perlu dilakukan pengguna dan kemudian susun kebijakan yang memungkinkan mereka hanya melakukan tugas tersebut.

Mulai dengan satu set izin minimum dan berikan izin tambahan sesuai kebutuhan. Melakukan hal tersebut lebih aman daripada memulai dengan izin yang terlalu fleksibel, lalu mencoba memperketatnya nanti.

Sebagai alternatif dari hak istimewa terkecil, Anda dapat menggunakan kebijakan atau kebijakan AWS terkelola dengan * izin wildcard untuk memulai kebijakan. Pertimbangkan risiko keamanan memberikan izin kepada kepala sekolah Anda lebih banyak daripada yang mereka butuhkan untuk melakukan pekerjaan mereka. Pantau prinsipal tersebut untuk mempelajari izin mana yang mereka gunakan. Kemudian tulis kebijakan hak istimewa paling sedikit.

IAMMenyediakan beberapa opsi untuk membantu Anda menyempurnakan izin yang Anda berikan.

  • Memahami pengelompokan tingkat akses — Anda dapat menggunakan pengelompokan tingkat akses untuk memahami tingkat akses yang diberikan oleh kebijakan. Tindakan kebijakan diklasifikasikan sebagai List, Read, Write, Permissions management, atau Tagging. Misalnya, Anda dapat memilih tindakan dari tingkat akses List dan Read untuk memberikan akses hanya-baca kepada pengguna Anda. Untuk mempelajari cara menggunakan ringkasan kebijakan untuk memahami izin tingkat akses, lihat Tingkat akses dalam ringkasan kebijakan.

  • Memvalidasi kebijakan Anda — Anda dapat melakukan validasi kebijakan menggunakan Penganalisis IAM Akses saat Anda membuat dan mengedit kebijakan. JSON Sebaiknya Anda meninjau dan memvalidasi semua kebijakan yang ada. IAMAccess Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan untuk memvalidasi kebijakan Anda. Ini menghasilkan peringatan keamanan ketika pernyataan dalam kebijakan Anda memungkinkan akses yang kita anggap terlalu permisif. Anda dapat menggunakan rekomendasi yang dapat ditindaklanjuti yang disediakan melalui peringatan keamanan saat Anda berupaya memberikan hak istimewa paling rendah. Untuk mempelajari selengkapnya tentang pemeriksaan kebijakan yang disediakan oleh IAM Access Analyzer, lihat Validasi kebijakan IAM Access Analyzer.

  • Hasilkan sebuah kebijakan berdasarkan aktivitas akses — Untuk membantu menyempurnakan izin yang diberikan, Anda dapat membuat IAM kebijakan yang didasarkan pada aktivitas akses untuk IAM entitas (pengguna atau peran). IAMAccess Analyzer meninjau AWS CloudTrail log Anda dan menghasilkan templat kebijakan yang berisi izin yang telah digunakan oleh entitas dalam jangka waktu yang ditentukan. Anda dapat menggunakan templat untuk membuat kebijakan terkelola dengan izin terperinci lalu melampirkannya ke entitas. IAM Dengan begitu, Anda hanya memberikan izin yang pengguna atau peran perlu berinteraksi dengan AWS sumber daya untuk kasus penggunaan spesifik Anda. Untuk mempelajari selengkapnya, lihat Pembuatan kebijakan Penganalisis IAM Akses.

  • Gunakan informasi yang terakhir diakses — Fitur lain yang dapat membantu dengan hak istimewa paling rendah adalah informasi yang terakhir diakses. Lihat informasi ini di tab Penasihat Akses pada halaman detail IAM konsol untuk IAM pengguna, grup, peran, atau kebijakan. Informasi yang terakhir diakses juga mencakup informasi tentang tindakan yang terakhir diakses untuk beberapa layanan, seperti Amazon,EC2, LambdaIAM, dan Amazon S3. Jika Anda masuk menggunakan kredensitas akun AWS Organizations manajemen, Anda dapat melihat informasi layanan yang terakhir diakses di AWS Organizationsbagian IAM konsol. Anda juga dapat menggunakan AWS CLI atau AWS API mengambil laporan informasi yang terakhir diakses untuk entitas atau kebijakan di IAM atau Organizations. Anda dapat menggunakan informasi ini untuk mengidentifikasi izin yang tidak perlu, sehingga Anda dapat menyempurnakan kebijakan Anda atau IAM Organizations agar dapat mematuhi prinsip hak istimewa sekecil mungkin. Untuk informasi selengkapnya, lihat Memperbaiki izin dalam AWS menggunakan informasi yang terakhir diakses.

  • Tinjau acara akun di AWS CloudTrail — Untuk mengurangi izin lebih lanjut, Anda dapat melihat acara akun Anda di Riwayat AWS CloudTrail acara. CloudTrail Log peristiwa mencakup informasi peristiwa terperinci yang dapat Anda gunakan untuk mengurangi izin kebijakan. Log hanya mencakup tindakan dan sumber daya yang diperlukan oleh IAM entitas Anda. Untuk informasi selengkapnya, lihat Melihat CloudTrail Acara di CloudTrail Konsol di Panduan AWS CloudTrail Pengguna.

Untuk informasi selengkapnya, lihat topik kebijakan berikut untuk layanan individu, yang memberikan contoh cara menulis kebijakan untuk sumber daya khusus layanan.