‫Baiklah, jadi sekarang kita telah melalui rahasia dan fitur, dan bagaimana cara kerjanya dan semua itu, mari kita
‫benar-benar melihat beberapa hal praktis.
‫Jadi, apa yang saya miliki di sini adalah, saya telah mengatur kawanan 3-simpul kami seperti sebelumnya.
‫Saya berada di direktori
‫sampel rahasia 1 yang akan Anda lihat di repo.
‫Dan, yang saya dapatkan di sana adalah satu file teks. Dan dalam file teks itu hanya nama pengguna yang sederhana, bahkan sebenarnya bukan
‫kata sandi.
‫Ada dua cara kita dapat benar-benar membuat rahasia di dalam Swarm.
‫Dan salah satunya adalah untuk memberikan file, dan yang lainnya adalah memberikan nilai pada baris perintah.
‫Jadi, mari kita gunakan file itu terlebih dahulu. buat buruh pelabuhan rahasia. Dan kemudian saya harus memberi nama di database rahasia.
‫Dan saya akan menyebutnya pengguna psql.
‫Itu tidak harus nama yang sama dengan file, jelas. Tapi saya hanya akan menyebutnya begitu.
‫Lalu... Itu meludahkan kembali ID, seperti halnya untuk objek lain. Dan mari kita buat yang lain. Mari kita benar-benar memasukkan
‫kata sandi.
‫Dan kali ini kita benar-benar akan mengulanginya dari baris perintah.
‫Jika Anda melihat apa yang saya lakukan, saya benar-benar mengetikkan kata sandi di baris perintah dengan echo,
‫dan memasukkannya ke dalam perintah penciptaan.
‫Dan perhatikan tanda hubung pada akhirnya, karena itu memberi tahu perintah untuk membaca dari input standar. Itulah yang kami berikan dengan
‫perintah gema.
‫Sekarang, saya harus mengatakan bahwa keduanya memiliki kelemahan.
‫Yang pertama, Anda benar-benar menyimpan kata sandi di hard drive server di host.
‫Dan kami benar-benar tidak ingin melakukan itu.
‫Jadi, mungkin Anda akan menggunakan API jarak jauh dari baris perintah lokal di mesin Anda. Dan kemudian mengirimkan file-file dengan
‫cara itu.
‫Dan, yang kedua, sebenarnya masuk ke sejarah file Bash kami untuk pengguna root kami.
‫Jadi secara teknis, jika seseorang bisa masuk ke root, mereka benar-benar bisa mengeluarkan kata sandi ini.
‫Ketika Anda berurusan dengan sistem produksi Anda sendiri, Anda perlu melihat berbagai cara untuk
‫mengatasi dua masalah keamanan potensial ini.
‫Jadi, yang kita miliki di sini adalah ... sekarang, jika saya melakukan rahasia buruh pelabuhan, Anda dapat melihat bahwa saya memiliki keduanya di sana.
‫Sekarang, saya benar-benar dapat memeriksanya, tetapi saya tidak akan pernah melihat kata sandi atau rahasia sebenarnya.
‫Jadi, izinkan saya lakukan saja pengguna.
‫Itu tidak akan memberi kami informasi, benar. Karena jika ini mudah untuk mendapatkan informasi itu tidak
‫akan benar-benar menjadi rahasia itu.
‫Kanan?
‫Jadi, tujuannya di sini, adalah bahwa begitu Anda menyimpan rahasia dalam sistem, itu disimpan dalam database. Dan satu-satunya hal yang akan memiliki
‫akses ke rahasia yang didekripsi adalah wadah dan layanan yang
‫kita tetapkan.
‫Jadi mari kita lakukan itu sekarang.
‫Saya akan membuat layanan secara manual.
‫layanan buruh pelabuhan buat. Saya akan menyebutnya psql. Dan kita akan memetakan rahasia untuk itu. Pada dasarnya, kami memberi tahu perintah
‫buat ini untuk mengambil rahasia yang disebut nama khusus ini ...
‫Saya juga dapat menggunakan ID rahasia ... dan menugaskannya ke layanan ini, sehingga semua wadah dalam layanan
‫ini akan melihat rahasia ini.
‫Baiklah.
‫Dan kemudian masukkan pengguna ke sana, lalu saya harus melakukannya lagi untuk kata sandi.
‫Baik.
‫Jadi ini memetakan rahasia ke layanan, sehingga mereka muncul sebagai file di dalam wadah.
‫Tapi itu tidak memberi tahu database postgres yang kami buat dari gambar
‫ini bagaimana menggunakan rahasia itu.
‫Jadi, biasanya, kita perlu melakukan sesuatu dengan konfigurasi gambar.
‫Dan dalam hal ini, gambar resmi dari Docker Hub telah ditetapkan pada
‫standar di mana Anda menggunakan variabel lingkungan. Tapi, bukannya lewat mungkin sesuatu seperti kata sandi postgres, itu akan sulit digunakan
‫dengan file.
‫Kita harus benar-benar, seperti, memasukkan file ke variabel lingkungan dan itu
‫sedikit menyusahkan.
‫Jadi, mereka memiliki standar di mana, jika Anda menentukan file ... dan ini akan menjadi jalan ... jadi itu akan menjadi rahasia, dan
‫kemudian namanya, kan? Jadi psql lulus, nama rahasianya.
‫Jika saya melakukan itu, itu sebenarnya di awal gambar yang akan mencari variabel lingkungan yang sedang
‫diisi.
‫Dan jika ya, maka akan menarik file itu, dan menyimpannya dalam variabel lingkungan. Isi sebenarnya dari file
‫itu.
‫Ini adalah cara yang sangat mudah untuk mengkonsumsi rahasia-rahasia yang ada dalam file.
‫Tetapi itu berarti bahwa gambar yang Anda gunakan harus memiliki standar ini.
‫Kami juga dapat melakukan hal yang sama untuk pengguna.
‫Semoga ini masuk akal bagi Anda. Ketika saya membuat
‫layanan itu akan melakukan hal yang biasa dilakukannya ketika mengeluarkan permintaan penjadwalan untuk wadah baru.
‫Ini akan membuat satu database Postgres dan akan memberikannya variabel
‫lingkungan untuk lokasi dari dua rahasia itu.
‫Dan kemudian akan dipetakan, dalam tempfs, itu sebenarnya akan memetakan dalam apa yang tampak seperti file.
‫Tetapi sekali lagi, itu benar-benar hanya sistem file RAM atau tmpfs.
‫Mari kita lihat apa yang bisa kita lihat di sana.
‫Jadi, saya melakukan layanan buruh pelabuhan ps psql, dan itu harus memberi tahu kami apa node itu berjalan.
‫Oke, itu berjalan di node ini.
‫Mari kita lakukan eksekutif untuk melihat apa yang bisa kita lihat di dalam wadah.
‫eksekutif buruh pelabuhan.
‫Dan kemudian nama wadah khusus untuk layanan itu, dan kemudian bash.
‫Baiklah.
‫Sekarang kita harus dapat melakukan ls pada rahasia yang dijalankan, dan Anda akan melihat kita mendapatkan dua file di sana.
‫Dan jika saya melakukan cat pada pengguna psql, kami melihat nilainya. Itu berhasil.
‫Dan jika kita melihat log dari psql itu, kita sebenarnya tahu itu bekerja. Karena jika itu tidak ... jika tidak memiliki file-file
‫itu, database aktual akan terus membuat ulang sendiri, dan tidak dapat bekerja karena
‫tidak memiliki kata sandi dan nama pengguna untuk membuat database.
‫Jika Anda melakukan layanan docker ps lagi, apa yang akan Anda lihat jika tidak berfungsi dengan benar dalam skenario
‫database, adalah database sebenarnya akan gagal. Dan itu akan terus restart dan Anda akan melihat kontainer
‫baru sedang dibuat di sini.
‫Jadi sekarang kita benar-benar telah menetapkannya di sana, kita benar-benar dapat menggunakan pembaruan layanan
‫buruh pelabuhan untuk menghapus rahasianya. Jadi, pembaruan layanan buruh pelabuhan --secret-rm.
‫Ada juga rahasia-add. Tetapi jika saya menghapus salah satu dari rahasia
‫ini yang sebenarnya akan terjadi adalah, itu akan memindahkan kontainer. Karena rahasia adalah bagian dari desain layanan yang tidak berubah.
‫Jika ada sesuatu dalam wadah yang harus diubah untuk layanan, layanan tidak akan masuk dan
‫mengubah sesuatu di dalam wadah. Ini benar-benar akan menghentikan wadah dan memindahkan yang baru.
‫Jelas, itu tidak ideal untuk basis data. Jadi kita harus membuat rencana yang berbeda untuk bagaimana
‫kita akan memperbarui kata sandi basis data.
‫Dan itu sesuatu yang bisa kita bicarakan nanti.
‫Untuk saat ini, saya hanya ingin Anda tahu bahwa Anda dapat menghapusnya dan menambahkan yang lain ke layanan yang ada.
‫Ini hanya akan membuat ulang wadah ketika Anda melakukannya.