ref: https://itnext.io/helm-3-secrets-management-4f23041f05c3
Secret Management 的議題一直以來都是 CI/CD 流程中不可忽似的一部分,本篇文章作者不同於以往採用常見的解決方案(Hashicorp Vault, Helm Secret, SealedSecret),反而是使用 Helm 內建的 AES 加解密功能來實作 Heml Chart 資料的加解密需求。
作者認為一個良好的機密管理解決方案需要能夠為其團隊提供三個基本需求
1) 所有的機密資訊都要能夠存放到版本控制系統中(Git...etc)
2) 所有被上傳到 Chartmuseum 的 Helm Chart Package 都不能有任何 k8s secret 物件,要放的只能有加密後結果。反之使用者要使用時也必須要有能力去解密
3) 單一工具管理,以作者來說會希望能夠都使用 Helm 這個工具來處理,愈少的工具意味者依賴性愈少,同時在維護與管理上要花的心力也更少。
作者首先列舉了兩個現存的專案,分別是 Helm Secrets 以及 Hashicorp Vault 並且針對這兩者進行了簡單的介紹,並且舉出為什麼這兩個專案並不適合作者團隊的需求與使用情境。
作者最後開始認真研究 Helm 本身有什麼內建的加解密功能可以使用,最後發現 encryptAES 以及 descryptAWS 這兩個內建函式可以使用,譬如
value: encryptAES "secretkey" {{ .Values.valueToEncrypt }}
value: {{ .Values.valueToDecrypt }} | decryptAES "secretkey"
有了基本的概念與用法後,作者透過 shell script 實作一層 wrapper 來簡化整個處理流程。
最後將這些資訊也導入到 CI/CD 流程中來幫忙進行解密的相關動作,讓 CD 可以順利的將目標 Secret 給送到 Kubernetes 中。
個人心得: 採用加解密的系統個人還是喜歡採用 SealedSecret 的設計理念,將解密的時間點延後到 Kubernetes 內而並非 CI/CD 系統上,主要是 CI/CD 的 pipeline 要是沒有仔細設計其實很多人會不小心把過程命令給輸出的,這樣的話加解密的過程,使用的 Key 等都有可能會洩漏出去。
同時也有1部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,ดูวิธีการติดตั้ง Azure Data Studio ได้ที่ https://youtu.be/gQ-ElT0CNAs เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_cent...
git script 在 BorntoDev Facebook 的最佳解答
🔥 เบื่อหรือไม่ ตั้งนาฬิกาปลุกไว้แล้ว แต่ตื่นมาเข้าเรียน หรือเข้า meeting ไม่ทันทุกที ปัญหานี้จะหมดไปถ้าคุณเจอโปรเจกต์นี้ !!!
.
👉 และวันนี้ BorntoDev Direct ขอนำเสนอ...โปรเจกต์ Auto Join Team Meeting ด้วยภาษา Python!! ที่จะทำให้เพื่อน ๆ ไม่เข้าเรียนสาย หรือ เข้า meeting ช้าอีกต่อไป ~
.
จะเป็นยังไงนั้น ไปดูและทำตามกันเลยจ้าาาา
.
🔹 สิ่งที่ต้องการในโปรเจกต์นี้
Python 3.7 หรือ มากกว่า
Google Chrome เวอร์ชันล่าสุด
.
🔸 วิธีทำก็ง่าย ๆ ดังนี้
1) clone >> https://github.com/prajinkhadka/auto-join-teams
2) ติดตั้ง python และ pip
3) ติดตั้ง pip install -r requirements.txt >> https://paste.ubuntu.com/p/Ndf3bn29Z2/
4) และกำหนด Parameter ดังนี้ Email, Password, Auto_leave_min, Leave_if_last, และ Headless
5) จากนั้นก็รันไฟล์ auto_joiner.py ที่ clone จาก git และรอดูผลลัพธ์ได้เลย !!
.
หรือเพื่อน ๆ สามารถตั้งเวลาจาก Task Scheduler แล้วตั้งค่าให้รันไฟล์ auto_join.sh ตามเวลาที่จะเข้า meet เพียงแค่นี้เราก็ไม่เข้าเรียนสายแล้ว !!!
.
💥 Source : https://pythonawesome.com/a-automatically-script-login-to-your-account-and-joins-the-meeting/
.
ลองไปเล่นกันดูนะ หวังว่าทริคดี ๆ จะแบบนี้จะเป็นประโยชน์กับเพื่อน ๆ นะ
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
git script 在 BorntoDev Facebook 的最佳貼文
⌛ ปฏิเสธไม่ได้เลยว่าอาชีพ DevOps ก็กำลังมาแรงมากในยุคนี้เช่นกัน อีกทั้งยังเป็นอาชีพที่มีค่าตัวสูงมากๆ ทำให้ใครหลายๆ คนจึงอยากทำอาชีพนี้
.
💡 DevOps พูดกันง่ายๆ คืออาชีพที่จะช่วยเชื่อมกระบวนการพัฒนาโปรแกรม ไปจนถึงขั้น Deploy รวมถึงการติดตามสถานะการทำงานของโปรแกรม และนำมาปรับปรุงพัฒนาให้มีประสิทธิภาพยิ่งขึ้น
.
👉 สิ่งสำคัญที่ต้องเรียนรู้หากอยากจะทำอาชีพนี้มีอะไรบ้าง? วันนี้แอดสรุปคร่าวๆ มาให้แล้วจ้า
.
✨ 1) ต้องมีแนวคิดในการพัฒนาซอฟต์แวร์
ซึ่ง DevOps อาจจะไม่ต้องเขียนโปรแกรมโดยตรง แต่ต้องมีความรู้ที่ครอบคลุมและทำงานร่วมกับทีม Developer เพื่อพัฒนาปรับปรุงโปรแกรมให้เป็นไปตาม Flow มากที่สุด
.
✨ 2) ต้องมีความรู้พื้นฐาน Linux
การทำงานจะต้องจัดเตรียมโครงสร้างต่างๆ ซึ่งส่วนใหญ่จะทำบนเซิร์ฟเวอร์ และเซิร์ฟเวอร์ส่วนใหญ่ก็จะใช้ OS เป็น Linux ดังนั้นจึงต้องมีความรู้ด้านนี้มาบ้าง เช่น คำสั่ง Command Line พื้นฐาน, SSH Key เป็นต้น
.
✨ 3) Networking & Security
เช่นการ Configure Firewalls, HTTP/HTTPS, โครงสร้าง IP addresses และ DNS เป็นต้น
.
✨ 4) Docker
DevOps ส่วนใหญ่จะใช้งาน Docker กันเป็นหลัก หากใครยังไม่มีพื้นฐานสามารถเข้าไปเรียนได้ฟรีได้ที่ลิงค์นี้เลย >> https://www.youtube.com/watch?v=3c-iBn73dDE
.
✨ 5) CI/CD
เป็นกระบวนการ Monitor การพัฒนาแอปพลิเคชันแบบอัตโนมัติ ตั้งแต่การนำโค้ดมา Merge กัน ไปจนถึงการทดสอบเพื่อ Deploy ขึ้น Production ซึ่งเราควรเรียนรู้เครื่องมือต่างๆ ที่จะทำ CI/CD อย่างเช่น CI/CD pipeline, การ Set Up CI/CD, การใช้งาน Docker Image เป็นต้น
.
✨ 6) ผู้ให้บริการ Cloud
ซึ่งในหลายบริษัทใช้บริการโครงสร้าง Cloud สำเร็จรูป โดยที่ไม่ต้องออกแบบ IaaS เอง ซึ่งเราควรเรียนรู้ และใช้เครื่องมือต่างๆ ของระบบ Cloud นั้นๆ ไว้บ้าง ซึ่งที่ฮิตกันตอนนี้ก็มี AWS, Azure, และ Google Cloud เป็นต้น
✨ 7) Kubernetes
เป็นที่นิยมอย่างมากในการใช้จัดการ Containers บนเซิร์ฟเวอร์ต่างๆ และเราก็ควรเรียนรู้ว่ามันทำงานยังไง มีคำสั่งอะไรบ้าง หากใครสนใจอยากเรียนพื้นฐานการใช้งาน Kubernetes แบบฟรีๆ คลิกลิงค์ได้เลยจ้า >> https://www.youtube.com/watch?v=X48VuDVv0do
.
✨8) ภาษา Script
การจัดการแอปพลิเคชันแบบอัตโนมัติก็ต้องมีการเขียน Script เพื่อให้มันทำงานตาม Flow จึงจำเป็นที่จะต้องเขียนภาษา Script พื้นฐานให้เป็นด้วย เช่น Python, Ruby, NodeJS และ Go
.
✨ 9) การใช้งาน Git
จำเป็นต้องรู้โครงสร้าง และคำสั่งพื้นฐานในการใช้งาน Git เพื่อช่วยจัดการและติดตามการเปลี่ยนแปลงของโค้ด และการอัปเดตเวอร์ชันต่างๆ ก่อน Deploy ขึ้น Production
.
✨ 10) พื้นฐาน Infrastructure
ต้องรู้จักเครื่องมือต่างๆ ที่ใช้ในการจัดการ Infrastructure อย่างมีประสิทธิภาพ เช่น Ansible, Puppet, และ Chef เป็นต้น
.
หากใครมีประเด็นเพิ่มเติม หรือพี่ๆ คนไหนที่กำลังทำอาชีพนี้ มีสิ่งที่อยากจะแชร์ให้กับเพื่อนๆ หรือน้องๆ ที่สนใจ สามารถคอมเมนต์ไว้ใต้โพสนี้เลยนะคะ 😍
.
❤️ หวังว่าข้อมูลนี้จะเป็นประโยชน์กับเพื่อนๆ น้า
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
git script 在 prasertcbs Youtube 的最佳貼文
ดูวิธีการติดตั้ง Azure Data Studio ได้ที่ https://youtu.be/gQ-ElT0CNAs
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน git เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGsV1ZAyP4m_iyAbflQrKrX
สอน SQL เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEi5TcWdFY-X2XqXcEdvQiO
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน SQLite ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
การใช้ Excel ในการทำงานร่วมกับกับฐานข้อมูล (SQL Server, MySQL, Access) ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGA2sSqNRSXlw0OYuCfDwYk
#prasertcbs_SQL #prasertcbs #prasertcbs_MySQL #prasertcbs_mssql #prasertcbs_PostgreSQL
