Wednesday

18-06-2025 Vol 19

An Overview to OCI IAM Policies

Ikhtisar Kebijakan OCI IAM: Panduan Komprehensif

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) adalah tulang punggung keamanan dan kontrol akses di lingkungan cloud Oracle Anda. Memahami kebijakan OCI IAM adalah kunci untuk mengamankan sumber daya Anda dan memastikan hanya pengguna dan layanan yang berwenang yang dapat mengaksesnya. Artikel ini menyediakan ikhtisar mendalam tentang kebijakan OCI IAM, mencakup sintaksis, jenis, praktik terbaik, dan contoh dunia nyata.

Mengapa Kebijakan OCI IAM Penting?

Kebijakan OCI IAM memungkinkan Anda untuk:

  1. Mengendalikan Akses: Tentukan secara tepat siapa yang dapat melakukan apa pada sumber daya OCI Anda.
  2. Meningkatkan Keamanan: Meminimalkan risiko akses tidak sah dan pelanggaran data.
  3. Memenuhi Kepatuhan: Memastikan kepatuhan terhadap persyaratan regulasi dan standar industri.
  4. Mengotomatiskan Manajemen Akses: Menyederhanakan pemberian dan pencabutan hak istimewa pengguna.

Dasar-Dasar Kebijakan OCI IAM

Apa Itu Kebijakan OCI IAM?

Kebijakan OCI IAM adalah dokumen JSON yang menentukan siapa (principal) memiliki akses apa (izin) ke sumber daya tertentu di OCI. Kebijakan dievaluasi saat principal mencoba melakukan tindakan. Jika kebijakan memberikan izin yang diperlukan, tindakan tersebut diizinkan. Jika tidak, tindakan tersebut ditolak.

Komponen Utama Kebijakan OCI IAM

Setiap kebijakan OCI IAM berisi komponen-komponen berikut:

  1. Statement: Array yang berisi satu atau lebih pernyataan kebijakan individual. Setiap pernyataan menentukan izin yang diberikan atau ditolak.
  2. Version: Menunjukkan versi bahasa kebijakan. Biasanya “2.0”.
  3. CompartmentId (Opsional): Menentukan compartment tempat kebijakan berlaku. Jika tidak ditentukan, kebijakan berlaku di root compartment.

Komponen Pernyataan Kebijakan

Setiap pernyataan dalam kebijakan berisi komponen-komponen berikut:

  1. Effect: Menentukan apakah izin tersebut Allow atau Deny.
  2. Principals: Menentukan siapa yang diberikan izin. Ini dapat berupa pengguna, grup, atau instance.
  3. Actions: Menentukan tindakan yang diizinkan atau ditolak. Tindakan bervariasi tergantung pada layanan OCI.
  4. Resources: Menentukan sumber daya tempat izin diterapkan. Sumber daya diidentifikasi oleh OCID (Oracle Cloud Identifier) mereka.
  5. Conditions (Opsional): Menentukan kondisi tambahan yang harus dipenuhi agar izin berlaku.

Sintaksis Dasar Kebijakan OCI IAM

Berikut adalah contoh kebijakan OCI IAM dasar:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“group OCID of group administrators”
],
“Actions”: [
“inspect compartments”,
“read users”,
“manage groups”
],
“Resources”: [
“tenancy OCID”
]
}
]
}
“`

Kebijakan ini memberikan izin kepada anggota grup “administrators” untuk menginspeksi compartment, membaca pengguna, dan mengelola grup di seluruh tenancy. Mari kita uraikan setiap komponen:

  • Version: Menentukan versi bahasa kebijakan.
  • Statement: Berisi pernyataan kebijakan.
  • Effect: Allow berarti anggota grup yang ditentukan diizinkan untuk melakukan tindakan.
  • Principals: Menentukan grup (menggunakan OCID-nya) yang diberikan izin.
  • Actions: Menentukan tindakan yang diizinkan:
    • inspect compartments: Melihat daftar compartment.
    • read users: Melihat detail pengguna.
    • manage groups: Membuat, memperbarui, dan menghapus grup.
  • Resources: tenancy OCID menunjukkan bahwa izin ini berlaku untuk seluruh tenancy.

Jenis Principal dalam Kebijakan OCI IAM

Principal menentukan identitas yang diberikan izin. OCI IAM mendukung berbagai jenis principal:

  1. Pengguna: Akun individual dengan kredensial login.
  2. Grup: Kumpulan pengguna yang diberikan izin yang sama.
  3. Instance: Instans komputasi yang menjalankan aplikasi. Digunakan untuk memberikan izin kepada aplikasi untuk mengakses sumber daya OCI.
  4. Layanan: Layanan OCI itu sendiri. Digunakan untuk memberikan izin kepada layanan untuk mengakses sumber daya atas nama Anda.
  5. Dynamic Group: Grup yang anggotanya ditentukan oleh aturan. Berguna untuk secara otomatis mengelompokkan instance komputasi berdasarkan metadata.

Pengguna

Untuk memberikan izin kepada pengguna tertentu, gunakan OCID pengguna di bagian Principals kebijakan.

Contoh:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“user OCID of john.doe@example.com”
],
“Actions”: [
“read objects”
],
“Resources”: [
“any objectstorage-namespace”
]
}
]
}
“`

Kebijakan ini memberikan izin kepada pengguna john.doe@example.com untuk membaca objek di bucket Object Storage mana pun.

Grup

Menggunakan grup adalah cara yang disarankan untuk mengelola izin. Alih-alih memberikan izin langsung kepada pengguna individual, Anda memberikan izin kepada grup dan kemudian menambahkan pengguna ke grup tersebut. Ini menyederhanakan manajemen akses dan mengurangi risiko kesalahan.

Contoh:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“group OCID of db-admins”
],
“Actions”: [
“manage databases”
],
“Resources”: [
“any database-family”
]
}
]
}
“`

Kebijakan ini memberikan izin kepada anggota grup db-admins untuk mengelola database apa pun.

Instance

Instance principal memungkinkan instance komputasi untuk membuat panggilan API terhadap layanan OCI lainnya tanpa perlu mengonfigurasi kredensial pengguna secara manual. Ini meningkatkan keamanan dan menyederhanakan manajemen akses untuk aplikasi yang berjalan di OCI.

Contoh:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“instance OCID of the compute instance”
],
“Actions”: [
“read objects”
],
“Resources”: [
“any objectstorage-namespace”
]
}
]
}
“`

Kebijakan ini memberikan izin kepada instance komputasi tertentu untuk membaca objek di bucket Object Storage mana pun.

Layanan

Layanan dapat memerlukan izin untuk mengakses sumber daya atas nama Anda. Misalnya, Streaming mungkin memerlukan izin untuk menulis data ke Object Storage.

Contoh:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“service stream.oraclecloud.com”
],
“Actions”: [
“manage objects”
],
“Resources”: [
“any objectstorage-namespace”
]
}
]
}
“`

Kebijakan ini memberikan izin kepada layanan Streaming untuk mengelola objek di bucket Object Storage mana pun.

Dynamic Group

Dynamic group secara otomatis menambahkan dan menghapus instance komputasi berdasarkan aturan yang Anda definisikan. Ini sangat berguna untuk mengelola izin untuk sejumlah besar instance komputasi secara terpusat.

Untuk menggunakan dynamic group, Anda perlu membuat *rule* untuk menentukan kriteria keanggotaan. Contoh aturan bisa jadi “Semua instance komputasi di compartment X”. Anda kemudian memberikan izin kepada dynamic group tersebut.

Contoh:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“dynamic-group OCID of the dynamic group”
],
“Actions”: [
“read objects”
],
“Resources”: [
“any objectstorage-namespace”
]
}
]
}
“`

Kebijakan ini memberikan izin kepada semua anggota dynamic group yang ditentukan untuk membaca objek di bucket Object Storage mana pun.

Tindakan dalam Kebijakan OCI IAM

Tindakan menentukan operasi yang dapat dilakukan oleh principal pada sumber daya. Tindakan bervariasi tergantung pada layanan OCI. Setiap layanan memiliki set tindakan yang didefinisikan yang dapat Anda gunakan dalam kebijakan Anda.

Berikut adalah beberapa contoh tindakan umum:

  • read: Memberikan izin untuk membaca sumber daya.
  • use: Memberikan izin untuk menggunakan sumber daya.
  • inspect: Memberikan izin untuk melihat metadata sumber daya.
  • manage: Memberikan izin untuk membuat, memperbarui, dan menghapus sumber daya.

Contoh tindakan khusus layanan:

  • Compute: instance-create, instance-terminate, instance-reboot
  • Object Storage: object-read, object-create, bucket-delete
  • Database: db-create, db-start, db-stop

Anda dapat menemukan daftar lengkap tindakan untuk setiap layanan di dokumentasi OCI IAM.

Sumber Daya dalam Kebijakan OCI IAM

Sumber daya menentukan objek OCI tempat kebijakan diterapkan. Sumber daya diidentifikasi oleh OCID mereka. Anda dapat menggunakan OCID tertentu untuk memberikan izin ke sumber daya tunggal, atau Anda dapat menggunakan pola untuk memberikan izin ke beberapa sumber daya.

Berikut adalah beberapa contoh pola sumber daya:

  • any objectstorage-namespace: Menerapkan kebijakan ke semua namespace Object Storage.
  • any bucket: Menerapkan kebijakan ke semua bucket dalam namespace Object Storage tertentu.
  • any object: Menerapkan kebijakan ke semua objek dalam bucket Object Storage tertentu.

Contoh:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“group OCID of data-scientists”
],
“Actions”: [
“read objects”
],
“Resources”: [
“any objectstorage-namespace”,
“bucket OCID of data-bucket”
]
}
]
}
“`

Kebijakan ini memberikan izin kepada anggota grup data-scientists untuk membaca objek di namespace Object Storage mana pun, dan juga di bucket tertentu yang diidentifikasi oleh OCID-nya.

Kondisi dalam Kebijakan OCI IAM

Kondisi memungkinkan Anda untuk menentukan batasan tambahan tentang kapan izin berlaku. Kondisi dapat didasarkan pada berbagai faktor, seperti waktu, alamat IP sumber, atau atribut sumber daya.

Berikut adalah beberapa contoh kondisi umum:

  • time.between('2023-10-27T00:00:00Z', '2023-10-28T00:00:00Z'): Izin hanya berlaku antara dua tanggal dan waktu tertentu.
  • request.source.address = '192.0.2.0/24': Izin hanya berlaku jika permintaan berasal dari rentang alamat IP tertentu.
  • target.resource.compartment.id = 'compartment OCID': Izin hanya berlaku jika sumber daya berada di compartment tertentu.

Contoh:

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“user OCID of john.doe@example.com”
],
“Actions”: [
“read objects”
],
“Resources”: [
“bucket OCID of sensitive-data-bucket”
],
“Condition”: “time.between(‘2023-11-01T09:00:00Z’, ‘2023-11-01T17:00:00Z’)”
}
]
}
“`

Kebijakan ini memberikan izin kepada pengguna john.doe@example.com untuk membaca objek di bucket sensitive-data-bucket, tetapi hanya antara pukul 9 pagi dan 5 sore pada 1 November 2023 UTC.

Praktik Terbaik Kebijakan OCI IAM

Berikut adalah beberapa praktik terbaik untuk mengelola kebijakan OCI IAM:

  1. Gunakan prinsip hak istimewa terendah: Berikan hanya izin yang diperlukan untuk melakukan tugas.
  2. Gunakan grup untuk mengelola izin: Ini menyederhanakan manajemen akses dan mengurangi risiko kesalahan.
  3. Gunakan instance principal untuk aplikasi: Ini meningkatkan keamanan dan menyederhanakan manajemen akses untuk aplikasi yang berjalan di OCI.
  4. Manfaatkan Dynamic Group untuk otomasi: Gunakan Dynamic Group untuk menyederhanakan pemberian izin pada sejumlah besar instance komputasi.
  5. Tinjau dan perbarui kebijakan secara teratur: Pastikan bahwa kebijakan Anda tetap up-to-date dan relevan.
  6. Gunakan kondisi untuk membatasi akses: Gunakan kondisi untuk membatasi akses berdasarkan waktu, alamat IP, atau atribut sumber daya.
  7. Gunakan pola penamaan yang konsisten untuk kebijakan dan grup: Ini membuat lebih mudah untuk mengelola dan memahami kebijakan Anda.
  8. Documentasikan kebijakan Anda: Catat tujuan dan cakupan setiap kebijakan.
  9. Uji kebijakan Anda secara menyeluruh: Pastikan bahwa kebijakan Anda berfungsi seperti yang diharapkan sebelum menyebarkannya ke produksi.
  10. Gunakan OCI Vault untuk mengelola rahasia: Hindari menyimpan kredensial di dalam kebijakan Anda. Gunakan OCI Vault untuk mengelola rahasia dan kemudian mereferensikan rahasia tersebut dalam kebijakan Anda.

Contoh Kebijakan OCI IAM

Berikut adalah beberapa contoh kebijakan OCI IAM:

Mengizinkan grup untuk mengelola instans komputasi di compartment tertentu

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“group OCID of compute-admins”
],
“Actions”: [
“manage instances”
],
“Resources”: [
“compartment OCID of compute-compartment”
]
}
]
}
“`

Mengizinkan instance komputasi untuk menulis log ke bucket Object Storage

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“instance OCID of log-aggregator-instance”
],
“Actions”: [
“manage objects”
],
“Resources”: [
“bucket OCID of log-bucket”
]
}
]
}
“`

Menolak akses ke bucket Object Storage tertentu dari rentang alamat IP tertentu

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Deny”,
“Principals”: [
“*”
],
“Actions”: [
“read objects”,
“write objects”
],
“Resources”: [
“bucket OCID of sensitive-data-bucket”
],
“Condition”: “request.source.address = ‘192.168.1.0/24′”
}
]
}
“`

Mengizinkan pengguna untuk membuat bucket Object Storage tetapi hanya dengan tag tertentu

“`json
{
“Version”: “2.0”,
“Statement”: [
{
“Effect”: “Allow”,
“Principals”: [
“user OCID of john.doe@example.com”
],
“Actions”: [
“create buckets”
],
“Resources”: [
“any objectstorage-namespace”
],
“Condition”: “target.bucket.tag.CostCenter=’Finance'”
}
]
}
“`

Penyelesaian Masalah Kebijakan OCI IAM

Jika Anda mengalami masalah dengan kebijakan OCI IAM, berikut adalah beberapa tips untuk memecahkan masalah:

  1. Periksa sintaks kebijakan: Pastikan bahwa kebijakan Anda memiliki sintaks JSON yang valid.
  2. Periksa OCID: Pastikan bahwa OCID untuk pengguna, grup, instance, dan sumber daya sudah benar.
  3. Periksa tindakan: Pastikan bahwa tindakan yang Anda berikan diizinkan untuk layanan dan sumber daya.
  4. Periksa kondisi: Pastikan bahwa kondisi terpenuhi.
  5. Gunakan kebijakan Deny dengan hati-hati: Kebijakan Deny lebih diprioritaskan daripada kebijakan Allow. Jika Anda memiliki kebijakan Deny yang tumpang tindih dengan kebijakan Allow, izin tersebut akan ditolak.
  6. Gunakan OCI Audit: OCI Audit mencatat semua panggilan API ke OCI. Periksa log audit untuk melihat apakah permintaan ditolak karena kebijakan IAM.
  7. Gunakan Identity Troubleshooting Tool: Alat ini, yang tersedia di konsol OCI, membantu menguji dan memverifikasi izin IAM.

Kesimpulan

Kebijakan OCI IAM sangat penting untuk mengamankan lingkungan cloud Oracle Anda. Dengan memahami sintaksis, jenis, dan praktik terbaik kebijakan OCI IAM, Anda dapat mengendalikan akses ke sumber daya Anda dan memastikan hanya pengguna dan layanan yang berwenang yang dapat mengaksesnya. Ingatlah untuk menerapkan prinsip hak istimewa terendah, menggunakan grup untuk mengelola izin, dan meninjau kebijakan Anda secara teratur untuk memastikan kepatuhan dan keamanan.

“`

omcoding

Leave a Reply

Your email address will not be published. Required fields are marked *