Praktik terbaik - AWS Bimbingan Preskriptif

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

Praktik terbaik

Bagian ini mencantumkan beberapa takeaways tingkat tinggi dari panduan ini. Untuk diskusi terperinci tentang setiap poin, ikuti tautan ke bagian yang sesuai.

Pilih model kontrol akses yang berfungsi untuk aplikasi Anda

Panduan ini membahas beberapa model kontrol akses. Bergantung pada aplikasi dan persyaratan bisnis Anda, Anda harus memilih model yang sesuai untuk Anda. Pertimbangkan bagaimana Anda dapat menggunakan model ini untuk memenuhi kebutuhan kontrol akses Anda, dan bagaimana kebutuhan kontrol akses Anda mungkin berkembang, yang memerlukan perubahan pada pendekatan yang Anda pilih.

Menerapkan PDP

Policy decision point (PDP) dapat dicirikan sebagai mesin kebijakan atau aturan. Komponen ini bertanggung jawab untuk menerapkan kebijakan atau aturan dan mengembalikan keputusan apakah akses tertentu diizinkan. PDP memungkinkan logika otorisasi dalam kode aplikasi untuk diturunkan ke sistem terpisah. Ini dapat menyederhanakan kode aplikasi. Ini juga menyediakan antarmuka easy-to-use idempoten untuk membuat keputusan otorisasi untuk, layanan mikro APIs, lapisan Backend for Frontend (BFF), atau komponen aplikasi lainnya. PDP dapat digunakan untuk menegakkan persyaratan sewa secara konsisten di seluruh aplikasi.

Implementasikan PEPs untuk setiap API di aplikasi Anda

Implementasi titik penegakan kebijakan (PEP) memerlukan penentuan di mana penegakan kontrol akses harus terjadi dalam suatu aplikasi. Sebagai langkah pertama, temukan titik-titik dalam aplikasi Anda di mana Anda dapat memasukkan PEPs. Pertimbangkan prinsip ini ketika memutuskan di mana untuk menambahkan PEPs:

Jika aplikasi mengekspos API, harus ada otorisasi dan kontrol akses pada API itu.

Pertimbangkan untuk menggunakan Izin Terverifikasi Amazon atau OPA sebagai mesin kebijakan untuk PDP Anda

Izin Terverifikasi Amazon memiliki keunggulan dibandingkan mesin kebijakan khusus. Ini adalah layanan manajemen izin dan otorisasi yang dapat diskalakan dan berbutir halus untuk aplikasi yang Anda buat. Ini mendukung kebijakan penulisan dalam bahasa open-source deklaratif tingkat tinggi Cedar. Akibatnya, menerapkan mesin kebijakan dengan menggunakan Izin Terverifikasi membutuhkan lebih sedikit upaya pengembangan daripada menerapkan solusi Anda sendiri. Selain itu, Izin Terverifikasi dikelola sepenuhnya, sehingga Anda tidak perlu mengelola infrastruktur yang mendasarinya.

Open Policy Agent (OPA) memiliki keunggulan dibandingkan mesin kebijakan khusus. OPA dan evaluasi kebijakannya dengan Rego menyediakan mesin kebijakan pra-bangun yang fleksibel yang mendukung penulisan kebijakan dalam bahasa deklaratif tingkat tinggi. Hal ini membuat tingkat upaya yang diperlukan untuk menerapkan mesin kebijakan jauh lebih sedikit daripada membangun solusi Anda sendiri. Selain itu, OPA dengan cepat menjadi standar otorisasi yang didukung dengan baik.

Menerapkan bidang kontrol untuk OPA untuk DevOps, pemantauan, dan pencatatan

Karena OPA tidak menyediakan sarana untuk memperbarui dan melacak perubahan logika otorisasi melalui kontrol sumber, kami menyarankan Anda menerapkan bidang kontrol untuk menjalankan fungsi-fungsi ini. Ini akan memungkinkan pembaruan untuk lebih mudah didistribusikan ke agen OPA, terutama jika OPA beroperasi dalam sistem terdistribusi, yang akan mengurangi beban administrasi menggunakan OPA. Selain itu, pesawat kontrol dapat digunakan untuk mengumpulkan log untuk agregasi dan untuk memantau status agen OPA.

Konfigurasikan fitur logging dan observabilitas di Izin Terverifikasi

Izin Terverifikasi menyediakan akses mudah ke fitur observabilitas. Anda dapat mengonfigurasi layanan untuk mencatat semua upaya akses ke AWS CloudTrail, grup CloudWatch log Amazon, bucket S3, atau aliran pengiriman Amazon Data Firehose untuk mengaktifkan respons cepat terhadap insiden keamanan dan permintaan audit. Selain itu, Anda dapat memantau kesehatan layanan melalui AWS Health Dashboard. Karena Izin Terverifikasi adalah layanan terkelola, kesehatannya dipertahankan oleh AWS, dan Anda dapat mengonfigurasi fitur observabilitasnya dengan menggunakan layanan AWS terkelola lainnya.

Menggunakan pipeline CI/CD untuk menyediakan dan memperbarui penyimpanan kebijakan dan kebijakan di Izin Terverifikasi

Izin Terverifikasi adalah layanan terkelola, jadi Anda tidak perlu mengelola, mengonfigurasi, atau memelihara bidang kontrol atau agen untuk melakukan pembaruan. Namun, kami tetap menyarankan agar Anda menggunakan pipeline integrasi berkelanjutan dan penerapan berkelanjutan (CI/CD) untuk mengelola penyebaran penyimpanan kebijakan Izin Terverifikasi dan pembaruan kebijakan dengan menggunakan SDK. AWS Upaya ini dapat menghapus upaya manual dan mengurangi kemungkinan kesalahan operator saat Anda membuat perubahan pada sumber daya Izin Terverifikasi.

Tentukan apakah data eksternal diperlukan untuk keputusan otorisasi, dan pilih model untuk mengakomodasinya

Jika PDP dapat membuat keputusan otorisasi hanya berdasarkan data yang terkandung dalam JSON Web Token (JWT), biasanya tidak perlu mengimpor data eksternal untuk membantu dalam membuat keputusan ini. Jika Anda menggunakan Izin Terverifikasi atau OPA sebagai PDP, itu juga dapat menerima masukan tambahan yang diteruskan sebagai bagian dari permintaan, bahkan jika data ini tidak disertakan dalam JWT. Untuk Izin Terverifikasi, Anda dapat menggunakan parameter konteks untuk data tambahan. Untuk OPA, Anda dapat menggunakan data JSON sebagai input overload. Jika Anda menggunakan JWT, konteks atau metode input kelebihan beban umumnya jauh lebih mudah daripada mempertahankan data eksternal di sumber lain. Jika data eksternal yang lebih kompleks diperlukan untuk membuat keputusan otorisasi, OPA menawarkan beberapa model untuk mengambil data eksternal, dan Izin Terverifikasi dapat melengkapi data dalam permintaan otorisasi dengan merujuk sumber eksternal dengan layanan otorisasi.