OPA: Mesin kebijakan tujuan umum untuk cloud-native

Saat organisasi Anda menggunakan cloud, Anda mungkin menemukan bahwa dinamisme dan skala tumpukan cloud-native memerlukan lanskap keamanan dan kepatuhan yang jauh lebih rumit. Misalnya, dengan platform orkestrasi container seperti Kubernetes yang mendapatkan daya tarik, developer dan tim developer memiliki tanggung jawab baru atas area kebijakan seperti kontrol penerimaan serta area yang lebih tradisional seperti komputasi, penyimpanan, dan jaringan. Sementara itu, setiap aplikasi, layanan mikro, atau mesh layanan memerlukan serangkaian kebijakan otorisasinya sendiri, di mana pengembang terlibat.

Karena alasan inilah, perburuan dilakukan untuk cara yang lebih sederhana dan lebih efisien waktu untuk membuat, menegakkan, dan mengelola kebijakan di cloud. Masuk ke Open Policy Agent (OPA). Dibuat empat tahun lalu sebagai mesin kebijakan domain-agnostik open-source, OPA menjadi standar de facto untuk kebijakan cloud-native. Faktanya, OPA sudah digunakan dalam produksi oleh perusahaan seperti Netflix, Pinterest, dan Goldman Sachs, untuk kasus penggunaan seperti kontrol penerimaan Kubernetes dan otorisasi API layanan mikro. OPA juga memberdayakan banyak alat cloud-native yang sudah Anda kenal dan sukai, termasuk paket Atlassian dan Chef Automate.

[Juga di: Di ​​mana teknik keandalan situs bertemu dengan pengembang]

OPA memberi organisasi cloud-native bahasa kebijakan terpadu - sehingga keputusan otorisasi dapat diekspresikan dengan cara yang umum, di seluruh aplikasi, API, infrastruktur, dan banyak lagi, tanpa harus membuat kebijakan hard-code yang dipesan lebih dahulu ke dalam setiap bahasa dan alat tersebut secara individual . Selain itu, karena OPA dibuat khusus untuk otorisasi, OPA menawarkan kumpulan pengoptimalan kinerja yang terus bertambah sehingga pembuat kebijakan dapat menghabiskan sebagian besar waktunya untuk menulis kebijakan yang benar dan dapat dipelihara, dan menyerahkan kinerja kepada OPA.

Kebijakan otorisasi OPA memiliki banyak, banyak kasus penggunaan di seluruh tumpukan — mulai dari menempatkan pagar pembatas di sekitar orkestrasi container, hingga mengontrol akses SSH atau memberikan otorisasi mesh layanan berbasis konteks. Namun, ada tiga kasus penggunaan populer yang menyediakan landasan peluncuran yang baik bagi banyak pengguna OPA: otorisasi aplikasi, kontrol penerimaan Kubernetes, dan layanan mikro. 

OPA untuk otorisasi aplikasi

Kebijakan otorisasi ada di mana-mana, karena hampir setiap aplikasi membutuhkannya. Namun, developer biasanya "menggulung kode mereka sendiri", yang tidak hanya memakan waktu, tetapi juga menghasilkan beragam alat dan kebijakan yang sulit dipelihara. Meskipun otorisasi sangat penting untuk setiap aplikasi, waktu yang dihabiskan untuk membuat kebijakan berarti lebih sedikit waktu yang berfokus pada fitur yang dihadapi pengguna.

OPA menggunakan bahasa kebijakan deklaratif yang dibuat khusus yang membuat pengembangan kebijakan otorisasi menjadi sederhana. Misalnya, Anda dapat membuat dan menerapkan kebijakan sesederhana, "Anda tidak dapat membaca PII jika Anda adalah kontraktor", atau, "Jane dapat mengakses akun ini". Tapi itu baru permulaan. Karena OPA sadar konteks, Anda juga dapat membuat kebijakan yang mempertimbangkan apa pun di planet ini - seperti, "Perdagangan saham yang diminta pada jam terakhir hari perdagangan, yang akan menghasilkan transaksi lebih dari satu juta dolar, hanya dapat dijalankan pada layanan tertentu di namespace tertentu. "

Tentu saja, banyak organisasi memiliki otorisasi yang dipesan lebih dahulu. Namun, jika Anda berharap untuk mendekomposisi aplikasi Anda dan menskalakan layanan mikro di cloud sambil tetap mempertahankan efisiensi untuk pengembang, akan ada kebutuhan untuk sistem otorisasi terdistribusi. Bagi banyak orang, OPA adalah bagian teka-teki yang hilang.

OPA untuk kontrol penerimaan Kubernetes

Banyak pengguna juga menggunakan OPA untuk membuat pagar pembatas untuk Kubernetes. Kubernetes sendiri telah menjadi arus utama dan penting bagi misi, dan organisasi mencari cara untuk menentukan dan menerapkan pagar pengaman untuk membantu mengurangi risiko keamanan dan kepatuhan. Dengan menggunakan OPA, administrator dapat menetapkan kebijakan yang jelas sehingga pengembang dapat mempercepat produksi jalur pipa dan dengan cepat menghadirkan layanan baru ke pasar, tanpa mengkhawatirkan risiko operasional, keamanan, atau kepatuhan.

OPA dapat digunakan untuk membuat kebijakan yang menolak masuknya apa pun yang menggunakan nama host yang sama, atau yang mengharuskan semua gambar kontainer berasal dari registri tepercaya, atau untuk memastikan bahwa semua penyimpanan selalu ditandai dengan bit enkripsi, atau setiap aplikasi terbuka ke internet gunakan nama domain yang disetujui - untuk mengutip hanya beberapa contoh.

Karena OPA terintegrasi langsung dengan server API Kubernetes, OPA dapat menolak sumber daya apa pun yang tidak diizinkan oleh kebijakan, di seluruh komputasi, jaringan, penyimpanan, dan sebagainya. Terutama bermanfaat bagi developer, Anda dapat mengekspos kebijakan ini lebih awal dalam siklus pengembangan, seperti di pipeline CI / CD, sehingga developer bisa mendapatkan masukan lebih awal dan memulihkan masalah sebelum runtime. Selain itu, Anda bahkan dapat memvalidasi kebijakan Anda di luar jangkauan, memastikan bahwa kebijakan tersebut mencapai efek yang diinginkan dan tidak menimbulkan masalah secara tidak sengaja.

OPA untuk layanan mikro

Akhirnya, OPA menjadi sangat populer untuk membantu organisasi mengontrol layanan mikro dan arsitektur layanan mesh mereka. Dengan OPA, Anda dapat membuat dan menerapkan kebijakan otorisasi secara langsung untuk layanan mikro (biasanya sebagai bantuan), membuat kebijakan layanan-ke-layanan dalam mesh layanan, atau, dari sudut pandang keamanan, membuat kebijakan yang membatasi pergerakan lateral dalam mesh layanan Arsitektur.

Membangun kebijakan terpadu untuk arsitektur cloud-native

Secara umum, tujuan keseluruhan saat menggunakan OPA adalah membuat pendekatan terpadu untuk membuat kebijakan di seluruh tumpukan cloud-native Anda - sehingga Anda tidak perlu terus-menerus mengelola kebijakan di banyak lokasi, menggunakan bahasa dan pendekatan yang berbeda, melalui iklan- campuran hoc pengetahuan suku, wiki, dan PDF atau berbagai alat yang tidak cocok.

[Juga di: 7 praktik terbaik untuk tim agile jarak jauh]

Selain menyederhanakan pengembangan dan mempercepat pengiriman, ini juga merupakan berita besar untuk keamanan, karena OPA mengurangi jumlah alat yang perlu Anda periksa jika, misalnya, Anda mencurigai adanya upaya akses tidak sah. Demikian pula, dari sudut pandang operasi dan kepatuhan, OPA mempermudah untuk menarik dan menganalisis informasi dalam lingkungan yang heterogen - membantu Anda mengidentifikasi masalah dengan cepat dan menyelesaikannya dengan lebih cepat.

Pengembang sedang mencari cara yang lebih sederhana dan lebih efisien untuk membuat dan mengelola kontrol berbasis kebijakan untuk lingkungan cloud-native mereka. Bagi banyak orang, solusi itu adalah OPA. Jika Anda mendapati diri Anda menyentuh kebijakan otorisasi di banyak tempat, dalam berbagai bahasa, atau di beberapa tim, OPA dapat membantu menghilangkan redundansi dan pengiriman cepat untuk Anda, seperti yang terjadi pada mereka.

Tim Hinrichs adalah salah satu pendiri proyek Agen Kebijakan Terbuka dan CTO Styra. Sebelumnya, dia ikut mendirikan proyek OpenStack Congress dan menjadi insinyur perangkat lunak di VMware. Tim menghabiskan 18 tahun terakhir mengembangkan bahasa deklaratif untuk berbagai domain seperti komputasi awan, jaringan yang ditentukan perangkat lunak, manajemen konfigurasi, keamanan web, dan kontrol akses. Dia menerima gelar Ph.D. dalam Ilmu Komputer dari Universitas Stanford pada tahun 2008.

-

Forum Teknologi Baru menyediakan tempat untuk mengeksplorasi dan mendiskusikan teknologi perusahaan yang sedang berkembang secara mendalam dan luas. Pemilihannya subjektif, berdasarkan pilihan teknologi yang kami yakini penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk publikasi dan berhak untuk mengedit semua konten yang dikontribusikan. Kirim semua pertanyaan ke [email protected]