Fitur keamanan bawaan ADDF - AWS Bimbingan Preskriptif

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

Fitur keamanan bawaan ADDF

Autonomous Driving Data Framework (ADDF) memiliki berbagai fitur keamanan bawaan. Secara default, fitur-fitur ini dirancang untuk membantu Anda menyiapkan kerangka kerja yang aman dan membantu organisasi Anda memenuhi persyaratan keamanan perusahaan umum.

Berikut ini adalah fitur keamanan bawaan:

Hak istimewa paling sedikit untuk kode modul ADDF

Keistimewaan paling sedikitadalah praktik terbaik keamanan untuk memberikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi lebih lanjut, lihatTerapkan izin hak istimewa paling sedikit. Modul yang disediakan ADDF secara ketat mengikuti prinsip hak istimewa paling sedikit dalam kode dan sumber daya yang digunakan, sebagai berikut:

  • SemuaAWS Identity and Access Management(IAM) kebijakan yang dihasilkan untuk modul ADDF memiliki izin minimum yang diperlukan untuk kasus penggunaan. 

  • Layanan AWSdikonfigurasi dan digunakan sesuai dengan prinsip hak istimewa paling sedikit. Modul yang disediakan ADDF hanya menggunakan layanan dan fitur layanan yang diperlukan untuk kasus penggunaan tertentu.

Infrastruktur sebagai kode

ADDF, sebagai kerangka kerja, dirancang untuk menyebarkan modul ADDF sebagai infrastruktur sebagai kode (IAc). IAC menghilangkan proses penerapan manual dan membantu mencegah kesalahan dan kesalahan konfigurasi, yang dapat dihasilkan dari proses manual. 

ADDF dirancang untuk mengatur dan menyebarkan modul dengan menggunakan kerangka kerja IAc umum. Ini termasuk, tetapi tidak terbatas pada: 

Anda dapat menggunakan kerangka kerja IAc yang berbeda untuk menulis modul yang berbeda, dan kemudian Anda menggunakan ADDF untuk menerapkannya.

Kerangka kerja IAC default yang digunakan oleh modul ADDF adalahAWS CDK.AWS CDKadalah abstraksi berorientasi objek tingkat tinggi yang dapat Anda gunakan untuk mendefinisikanAWSsumber daya imperatif.AWS CDKsudah memberlakukan praktik terbaik keamanan secara default untuk berbagai layanan dan skenario. Dengan menggunakanAWS CDK, risiko kesalahan konfigurasi keamanan berkurang.

Pemeriksaan keamanan otomatis untuk IAc

Sumber terbukacdk-nagutilitas (GitHub) diintegrasikan ke dalam ADDF. Utilitas ini secara otomatis memeriksa modul ADDF yang didasarkan padaAWS CDKuntuk kepatuhan terhadap praktik terbaik umum dan keamanan. Utilitas cdk-nag menggunakan aturan dan paket aturan untuk mendeteksi dan melaporkan kode yang melanggar praktik terbaik. Untuk informasi selengkapnya tentang aturan dan daftar lengkap, lihataturan cdk-nag(GitHub).

Kebijakan hak istimewa paling tidak khusus untukAWS CDKperan penyebaran

ADDF memanfaatkan secara ekstensifAWS CDKv2. Hal ini diperlukan bahwa Anda bootstrap semua ADDFAkun AWSkepadaAWS CDK. Untuk informasi lebih lanjut, lihatBootstrapping(AWS CDKdokumentasi).

Secara default,AWS CDKmenugaskan permisifAdministratorAccess AWSkebijakan yang dikelola untukAWS CDKperan penerapan yang dibuat di akun bootstrapped. Nama lengkap dari peran ini adalahcdk-[CDK_QUALIFIER]-cfn-exec-role-[AWS_ACCOUNT_ID]-[REGION].AWS CDKmenggunakan peran ini untuk menyebarkan sumber daya ke dalam bootstrapAkun AWSsebagai bagian dariAWS CDKproses penyebaran.

Tergantung pada persyaratan keamanan organisasi Anda,AdministratorAccessKebijakan mungkin terlalu permisif. Sebagai bagian dariAWS CDKproses bootstrap, Anda dapat menyesuaikan kebijakan dan izin sesuai dengan kebutuhan Anda. Anda dapat mengubah kebijakan dapat dengan melakukan bootstrap ulang akun dengan kebijakan yang baru ditentukan dengan menggunakan--cloudformation-execution-policiesparameter. Untuk informasi lebih lanjut, lihatMenyesuaikan bootstrap(AWS CDKdokumentasi).

catatan

Meskipun fitur keamanan ini tidak spesifik untuk ADDF, fitur ini tercantum di bagian ini karena dapat meningkatkan keamanan keseluruhan penerapan ADDF Anda.

Kebijakan hak istimewa paling rendah untuk file deployspec modul

Setiap modul berisi file spesifikasi penyebaran yang disebutdeployspec.yaml. File ini mendefinisikan instruksi penyebaran untuk modul. CodeSeedermenggunakannya untuk menyebarkan modul yang ditentukan di akun target dengan menggunakanAWS CodeBuild. CodeSeedermenetapkan peran layanan default keCodeBuilduntuk menyebarkan sumber daya, seperti yang diinstruksikan dalam file spesifikasi penerapan. Peran layanan ini dirancang sesuai dengan prinsip hak istimewa paling rendah. Ini mencakup semua izin yang diperlukan untuk menyebarkanAWS CDKaplikasi, karena semua modul yang disediakan ADDF dibuat sebagaiAWS CDKaplikasi.

Namun, jika Anda perlu menjalankan perintah panggung apa pun di luarAWS CDK, Anda perlu membuat kebijakan IAM khusus alih-alih menggunakan peran layanan default untukCodeBuild. Misalnya, jika Anda menggunakan kerangka kerja penyebaran IAC selainAWS CDK, seperti Terraform, Anda perlu membuat kebijakan IAM yang memberikan izin yang cukup agar kerangka kerja tertentu berfungsi. Skenario lain yang memerlukan kebijakan IAM khusus adalah ketika Anda menyertakan directAWS Command Line Interface(AWS CLI) panggilan ke orang lainLayanan AWSdiinstall,pre_build,build, ataupost_buildperintah panggung. Misalnya, Anda memerlukan kebijakan khusus jika modul menyertakan perintah Amazon Simple Storage Service (Amazon S3) untuk mengunggah file ke bucket S3. Kebijakan IAM kustom memberikan kontrol halus untuk apa punAWSperintah di luarAWS CDKpenyebaran. Untuk contoh kebijakan IAM kustom, lihatModuleStack(SeedFarmerdokumentasi). Saat membuat kebijakan IAM khusus untuk modul ADDF Anda, pastikan Anda menerapkan izin hak istimewa paling sedikit.

Enkripsi data

ADDF menyimpan dan memproses data yang berpotensi sensitif. Untuk membantu melindungi data ini,SeedFarmer,CodeSeeder, dan modul yang disediakan ADDF mengenkripsi data saat istirahat dan dalam perjalanan untuk semua yang digunakanLayanan AWS(kecuali secara eksplisit dinyatakan sebaliknya untuk modul didemo-onlyfolder).

Penyimpanan kredensi menggunakan Secrets Manager

ADDF menangani berbagai rahasia untuk layanan yang berbeda, seperti Docker Hub,JupyterHub, danPergeseran Merah Amazon. ADDF menggunakanAWS Secrets Manageruntuk menyimpan rahasia terkait ADDF. Ini membantu Anda menghapus data sensitif dari kode sumber.

Rahasia Manajer Rahasia disimpan hanya di akun target, sesuai kebutuhan agar akun itu berfungsi dengan baik. Secara default, akun toolchain tidak berisi rahasia apa pun.

Ulasan keamananSeedFarmerdanCodeSeeder

SeedFarmerdanCodeSeeder(GitHubrepositori) digunakan untuk menyebarkan ADDF dan modul ADDF-nya. Proyek-proyek open-source ini mengalami reguler yang samaAWSproses peninjauan keamanan internal sebagai ADDF, seperti yang dijelaskan dalamProses peninjauan keamanan ADDF.

Dukungan batas izin untukAWS CodeBuildperan untukCodeSeeder

IAMbatas izinadalah mekanisme keamanan umum yang mendefinisikan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM. SeedFarmerdanCodeSeedermendukung lampiran batas izin IAM untuk setiap akun target. Batas izin membatasi izin maksimum dari setiap peran layanan yang digunakan oleh CodeBuild ketika CodeSeeder menyebarkan modul. Batas izin IAM harus dibuat di luar ADDF oleh tim keamanan. Lampiran kebijakan batas izin IAM diterima sebagai atribut dalam file manifes penerapan ADDF,deployment.yaml. Untuk informasi lebih lanjut, lihatDukungan batas izin(SeedFarmerdokumentasi).

Alur kerjanya adalah sebagai berikut:

  1. Tim keamanan Anda menentukan dan membuat batas izin IAM sesuai dengan persyaratan keamanan Anda. Batas izin IAM harus dibuat secara individual di setiap ADDFAkun AWS. Outputnya adalah daftar kebijakan batas izin Amazon Resource Name (ARN).

  2. Tim keamanan membagikan daftar ARN kebijakan dengan tim pengembang ADDF Anda.

  3. Tim pengembang ADDF mengintegrasikan daftar ARN kebijakan ke dalam file manifes. Untuk contoh integrasi ini, lihatsampel-permissionboundary.yaml(GitHub) danManifes penyebaran(SeedFarmerdokumentasi).

  4. Setelah penerapan berhasil, batas izin dilampirkan ke semua peran layanan yangCodeBuilddigunakan untuk menyebarkan modul.

  5. Tim keamanan memantau bahwa batas izin diterapkan sesuai kebutuhan.

AWSarsitektur multi-akun

Seperti yang didefinisikan dalam pilar keamananAWSWell-Architected Framework, dianggap praktik terbaik untuk memisahkan sumber daya dan beban kerja menjadi beberapaAkun AWS, berdasarkan kebutuhan organisasi Anda. Hal ini karena sebuahAkun AWSbertindak sebagai batas isolasi. Untuk informasi lebih lanjut, lihatAkun AWSmanajemen dan pemisahan. Implementasi konsep ini disebut aarsitektur multi-akun. Didesain dengan baikAWSarsitektur multi-akun menyediakan kategorisasi beban kerja dan mengurangi cakupan dampak jika terjadi pelanggaran keamanan, dibandingkan dengan arsitektur akun tunggal.

ADDF secara native mendukungAWSarsitektur multi-akun. Anda dapat mendistribusikan modul ADDF Anda di banyakAkun AWSsesuai kebutuhan untuk keamanan organisasi Anda danseparation-of-dutiespersyaratan. Anda dapat menerapkan ADDF menjadi satuAkun AWS, menggabungkan fungsi toolchain dan akun target. Atau, Anda dapat membuat akun target individual untuk modul ADDF atau grup modul.

Satu-satunya batasan yang perlu Anda pertimbangkan adalah bahwa modul ADDF mewakili unit penerapan terkecil untuk masing-masingAkun AWS.

Untuk lingkungan produksi, Anda disarankan untuk menggunakan arsitektur multi-akun yang terdiri dari akun toolchain dan setidaknya satu akun target. Untuk informasi selengkapnya, lihat Arsitektur ADDF.

Izin hak istimewa paling sedikit untuk penerapan multi-akun

Jika Anda menggunakan arsitektur multi-akun,SeedFarmerperlu mengakses akun target untuk melakukan tiga tindakan berikut:

  1. Tulis metadata modul ADDF ke akun toolchain dan akun target.

  2. Baca metadata modul ADDF saat ini dari akun toolchain dan akun target.

  3. MemulaiAWS CodeBuildpekerjaan di akun target, untuk tujuan menyebarkan atau memperbarui modul.

Gambar berikut menunjukkan hubungan lintas akun, termasuk operasi untuk mengasumsikan ADDF spesifikAWS Identity and Access Management(IAM) peran.

Peran IAM dalamAWSarsitektur multi-akun yang memiliki akun toolchain dan akun target.

Tindakan lintas akun ini dicapai dengan menggunakan operasi peran asumsi yang terdefinisi dengan baik.

  • Peran IAM toolchain ADDF diterapkan di akun toolchain. SeedFarmermengasumsikan peran ini. Peran ini memiliki izin untuk melakukaniam:AssumeRoletindakan dan dapat mengasumsikan peran IAM penerapan ADDF di setiap akun target. Selain itu, peran IAM toolchain ADDF dapat dijalankan secara lokalAWS Systems ManagerOperasi Parameter Store.

  • Peran IAM penerapan ADDF diterapkan di setiap akun target. Peran ini hanya dapat diasumsikan dari akun toolchain dengan menggunakan peran IAM toolchain ADDF. Peran ini memiliki izin untuk menjalankan lokalAWS Systems ManagerOperasi Parameter Store dan memiliki izin untuk dijalankanAWS CodeBuildtindakan yang memulai dan mendeskripsikanCodeBuildpekerjaan melaluiCodeSeeder.

Peran IAM khusus ADDF ini dibuat sebagai bagian dari proses ADDF-Bootstrapping. Untuk informasi lebih lanjut, lihatmengebutAkun AWS(s)diPanduan Penerapan ADDF(GitHub).

Semua izin lintas akun diatur sesuai dengan prinsip hak istimewa paling sedikit. Jika satu akun target dikompromikan, ada dampak minimal atau tidak ada pada ADDF lainnyaAkun AWS.

Dalam kasus arsitektur akun tunggal untuk ADDF, hubungan peran tetap sama. Mereka hanya runtuh menjadi satuAkun AWS.