‫เอาล่ะคุณสมบัติใหม่ใน 1
‫13 1 ได้รับการสนับสนุนอย่างเต็มที่สำหรับความลับ
‫ถ้าฉันต้องสร้างบรรทัดแท็กว่านี่คืออะไรมันเป็น 'โซลูชั่นที่ปลอดภัยที่สุดในการจัดเก็บความลับใน Swarm
‫'ฉันบอกว่ามันง่ายที่สุดเพราะมันสร้างขึ้นใน Swarm
‫มันออกมาจากกล่องและไม่มีอะไรที่คุณต้องทำเพื่อใช้งาน ตราบใดที่คุณเริ่มต้นฝูงและรุ่นที่ 1 ของคุณ
‫13 หรือใหม่กว่าคุณมีความลับ
‫ฉันบอกว่ามันปลอดภัยเพราะมันถูกออกแบบมาจากพื้นดินขึ้นมาเพื่อเข้ารหัสบนดิสก์เพื่อเข้ารหัสในการขนส่งและใช้ได้เฉพาะในสถานที่ที่จำเป็นต้องใช้เท่านั้น
‫และนั่นคือสิ่งที่เราต้องการ
‫ดังนั้นความลับคืออะไร? ความลับในกรณีนี้คือการจำแนกสิ่งที่คุณไม่ต้องการในหน้าแรกของหนังสือพิมพ์
‫ถ้ามันอยู่ที่หน้าแรกและคุณต้องเปลี่ยนมันนั่นเป็นความลับ
‫มันเป็นชื่อผู้ใช้หรือรหัสผ่านมันเป็นใบรับรอง
‫TLS หรือกุญแจที่เป็นกุญแจ SSH มันเป็น
‫Twitter API คีย์เป็นกุญแจของ Amazon มันเป็นทุกสิ่งที่คุณต้องอนุญาตให้เชื่อมต่อระหว่างสิ่งต่าง ๆ
‫อาจเป็นความลับและคุณควร จะปกป้องมัน
‫จนถึงตอนนี้เรายังไม่มีทางเลือกที่ยอดเยี่ยมสำหรับ Swarm
‫มีตัวเลือกมากมายเช่น Vault
‫และเครื่องมือที่ยอดเยี่ยมอื่น ๆ สำหรับเก็บความลับ แต่พวกเขาไม่ได้สร้างขึ้นและพวกเขาต้องการการติดตั้งโครงสร้างพื้นฐานแยกต่างหากเพื่อให้คุณสามารถเริ่มใช้งานได้
‫เราสามารถเก็บอะไรก็ได้ที่เป็นสตริงหรือเลขฐานสองขึ้นไป ขนาด 5MB
‫และส่วนที่เจ๋งที่สุดเกี่ยวกับเรื่องนี้คือมันไม่ได้ต้องการให้แอปของคุณเขียนใหม่เพื่อใช้งาน
‫คุณไม่จำเป็นต้องให้แอปพูดคุยกับเว็บเซอร์วิสเพื่อรับสิ่งเหล่านี้
‫ดังนั้นเรามาดูวิธีการทำงาน
‫ณ วันที่ 1 13 0 ฐานข้อมูล Swarm Raft ถูกเข้ารหัสบนดิสก์ตามค่าเริ่มต้น
‫หากคุณติดตั้ง Docker และเริ่มต้นการจับกลุ่มอย่างที่เราเคยทำมาก่อนนั่นคือฐานข้อมูลที่เข้ารหัส
‫และเมื่อปิดบริการมันจะถูกเข้ารหัสด้วยกุญแจที่จัดเก็บอย่างปลอดภัย
‫มันจะถูกเก็บไว้ในดิสก์ของโหนดผู้จัดการเท่านั้นและมันเป็นเพียงกุญแจเดียวที่มีกุญแจเพื่อปลดล็อคหรือถอดรหัส
‫สิ่งนี้มีอยู่แล้วใน Swarm
‫แต่โดยพื้นฐานแล้ววิธีการที่กุญแจลงไปยังตู้บรรจุนั้นคือผ่านทางเครื่องบินควบคุมหรือการสื่อสารเครือข่าย TLS
‫ที่เข้ารหัสระหว่างผู้จัดการและพนักงาน และการเชื่อมต่อนั้นมีความปลอดภัยแล้วมันใช้
‫TLS และการตรวจสอบ PKI ร่วมกันแล้วดังนั้นจึงเป็นวิธีที่ยอดเยี่ยมในการใช้ช่องทางที่มีอยู่ในปัจจุบันเพื่อนำความลับเหล่านี้มาสู่ตู้คอนเทนเนอร์ของเรา
‫วิธีที่เรานำมาใช้คือก่อนอื่นเราต้องนำพวกมันไปไว้ในฐานข้อมูล Swarm โดยใช้คำสั่งลับของนักเทียบท่า
‫จากนั้นเราจะกำหนดให้กับบริการไม่ว่าเราจะใช้คำสั่งบริการด้วยตนเองหรือไฟล์สแต็กเพื่อบอก Swarm
‫ว่าใครได้รับอนุญาตให้ใช้ความลับนี้
‫กุญแจสำคัญในที่นี้คือเนื่องจากมีคอนเทนเนอร์ในโฮสต์หรือบนโหนดและคุณได้กำหนดรหัสให้กับบริการนั้นไม่ได้หมายความว่าคอนเทนเนอร์อื่นสามารถเข้าถึงได้
‫เนื่องจากสิ่งนี้ถูกสร้างไว้ใน Docker Engine แล้ว Docker
‫Worker จะเก็บคีย์นั้นไว้ในหน่วยความจำเท่านั้นและจะลงไปที่คอนเทนเนอร์บนโหนดนั้นที่ต้องการเท่านั้น
‫ตอนนี้วิธีการนำเสนอในระบบไฟล์ไปยังคอนเทนเนอร์ดูเหมือนว่าไฟล์ในฮาร์ดไดรฟ์ไปยังแอปของคุณภายในคอนเทนเนอร์
‫แต่มันไม่จริง พวกเขาไม่ได้ทำงานบนดิสก์จริง ๆ พวกเขาอยู่ในหน่วยความจำโดยใช้ระบบไฟล์
‫ramfs เท่านั้นและคุณจะได้รับภายใต้ไดเรกทอรี / run /
‫secret ซึ่งจะเป็นชื่อที่คุณให้ความลับเป็นไฟล์
‫จากนั้นเมื่อคุณเข้าถึงไฟล์นั้นคุณจะเห็นความลับหนึ่งที่อยู่ในนั้น
‫หากคุณคิดว่านี่เป็นเหมือนที่เก็บค่าคีย์คีย์คือชื่อของไฟล์และค่าคือสิ่งที่อยู่ในนั้น
‫นอกจากนี้เรายังสามารถตั้งค่าชื่อแทนเพื่อให้เราสามารถมีชื่อหลายชื่อสำหรับคีย์เดียวกันและเราจะดูว่ามันเข้ามาเล่นในภายหลังได้อย่างไร
‫สำหรับการพัฒนาในพื้นที่หากคุณใช้ไฟล์สแต็กที่มีการกำหนดความลับอยู่ในนั้นจริง ๆ แล้วมันจะทำงานใน Docker Compose
‫บนเครื่องของคุณ
‫ตอนนี้อีกครั้งนักเทียบท่าเขียนบรรทัดคำสั่งไม่ควรใช้ในการผลิตบนเซิร์ฟเวอร์การผลิต
‫โดยเฉพาะอย่างยิ่งในกรณีนี้มันปลอมความปลอดภัย
‫ดังนั้นสิ่งที่เกิดขึ้นคือเราต้องการให้นักพัฒนา Docker หรือผู้ใช้ Docker
‫บนเครื่องของพวกเขาสามารถใช้ไฟล์สแต็คให้ได้มากที่สุด
‫ดังนั้นภาชนะที่คุณใช้บนเครื่องของคุณจะเห็นความลับเหมือนกับที่เคยทำใน Swarm
‫แต่เราไม่มี Swarm ในเครื่องท้องถิ่นของเราเว้นแต่ว่าเราเริ่มต้นที่นั่นซึ่งคนส่วนใหญ่จะไม่ทำ
‫และวิธีที่เราเก็บความลับนั้นอยู่ในฐานข้อมูล Swarm
‫ดังนั้นนี่อาจเป็นสิ่งที่ชัดเจนสำหรับคุณ แต่ความลับขึ้นอยู่กับ Swarm มันเป็นสิ่งที่ Swarm เท่านั้น หากคุณไม่มี
‫Swarm คุณจะไม่สามารถใช้ความลับได้
‫อย่างไรก็ตามคำสั่ง docker-compose มีวิธีการแก้ปัญหาที่จริงเมาท์ความลับในไฟล์ข้อความที่ชัดเจนลงในคอนเทนเนอร์ท้องถิ่น
‫ตอนนี้มันไม่ปลอดภัย แต่มันทำให้เราสามารถใช้ความลับในเครื่องของเราได้
‫ไม่ใช่สิ่งที่คุณต้องการใช้ในการผลิตเท่านั้นซึ่งเป็นเหตุผลว่าทำไมเราถึงมีที่จัดเก็บที่ปลอดภัยสำหรับ Swarm