คำถามติดแท็ก ansible-vault

4
จะใส่รหัสผ่าน ansible-vault ได้ที่ไหน
เราวางแผนที่จะใช้ตู้เซฟนิรภัยในโครงการของเราเพื่อป้องกันการรั่วไหลของรหัสผ่านหรือกุญแจในคอมไพล์ แนวคิดคือการใส่ข้อมูลที่ละเอียดอ่อนทั้งหมดของเราลงในไฟล์ธรรมดาจากนั้นเข้ารหัสไฟล์นี้ด้วย ansible-vault โดยใช้รหัสผ่านก่อนที่จะพุชเข้าคอมไพล์ ในการถอดรหัสไฟล์เราจะต้องส่งรหัสผ่านห้องนิรภัยไปยัง Ansible ฉันคิดว่ามีความเป็นไปได้ 3 อย่าง: เก็บไว้ในตัวแปรสภาพแวดล้อมของเซิร์ฟเวอร์ ส่งเป็นตัวเลือกไปยังคำสั่ง ansible-playbook เก็บไว้ในไฟล์ที่ไม่ใช่เวอร์ชัน มีตัวเลือกอื่น ๆ หรือไม่ซึ่งเป็นวิธีที่ดีที่สุด (และปลอดภัย) ในการจัดเก็บรหัสผ่าน ansible-vault เอกสารประกอบวิธีปฏิบัติที่ดีที่สุดของ ansible ไม่ได้พูดอะไรเกี่ยวกับเรื่องนี้

1
Git clean / smudge filter สำหรับความลับของห้องนิรภัย
ฉันกำลังพยายามตั้งค่าตัวกรอง clean / smudgeใน git ให้มีการเข้ารหัสและถอดรหัสไฟล์ที่มีความลับโดยอัตโนมัติผ่านคำสั่งansible-vault ความผิดปกติของคำสั่ง ansible-vault คือมันไม่ใช่ idempotent (มันสร้างไบนารีที่แตกต่างกันในแต่ละครั้งที่เรียกใช้กับข้อมูลเดียวกัน) ฉันเริ่มต้นด้วยการดำเนินงานข้อเสนอแนะในหน้าบล็อกนี้ น่าเสียดายที่มันไม่ทำงานอย่างถูกต้องเนื่องจากเมื่อใดก็ตามที่มีการเรียกรอยเปื้อน (ไม่ว่าจะเป็นเช็คเอาต์ git หรือเพียงแค่สถานะ git) ไฟล์ลับดูเหมือนว่าแก้ไขสำหรับ git แม้ว่ามันจะไม่ ดังนั้นฉันสงสัยว่า git จะเปรียบเทียบไบนารี่ที่เขามีในดัชนีกับไฟล์ปัจจุบันที่กรองแล้วหรือไม่และฉันพยายามสร้างสคริปต์เหล่านั้นดังนี้: #!/bin/sh -x # clean filter, it is invoked with %f if [ ! -r "$HOME/.vault_password" ]; then exit 1 fi tmp=`mktemp` cat > $tmp # get the …

2
ฉันจะรันเพลย์บุ๊ค Ansible Azure ในขณะที่หลีกเลี่ยงการจัดเก็บข้อมูลรับรองในไฟล์ได้อย่างไร
พื้นหลัง เราใช้ Ansible เพื่อจัดเตรียมและจัดการโครงสร้างพื้นฐาน Azure ในขณะนี้เราเรียกใช้ Ansible "ด้วยตนเอง" นั่นคือเราเรียกใช้ playbooksสำหรับงานอัตโนมัติต่างๆ ไม่มีโครงสร้างพื้นฐาน CI อาจจะไม่ได้เกี่ยวข้อง azure_rm.pyแต่เราจัดการสินค้าคงคลังของเราใช้สคริปต์แบบไดนามิก เราได้รับการสนับสนุนให้มีความปลอดภัยมากที่สุดเช่น อย่าเก็บรหัสผ่านห้องนิรภัยใน~/.vault_passหรือในไฟล์ภายในเครื่อง อย่าเก็บความลับของ Azure ~/.azure/credentials อย่าเก็บสิ่งที่ปลอดภัย.bashrcไว้ ในสถานการณ์ดังกล่าวฉันมีปัญหาในการหากลยุทธ์ที่สอดคล้องกันเพื่อให้แน่ใจว่า playbooks ของฉันสามารถเข้าถึงความลับของ Azure ได้ในขณะที่ทำตามแนวทางข้างต้น คำถาม ฉันจะหลีกเลี่ยงการจัดเก็บข้อมูลประจำตัวของ Ansible Vault และ Azure บนไฟล์ได้อย่างไรในขณะที่ยังมั่นใจได้ว่า playbooks ของฉันสามารถเข้าถึงได้ สิ่งที่ฉันได้ลอง จนถึงตอนนี้ฉันได้สร้างสคริปต์ตัวคลุมขึ้นมา ขอให้ผู้ใช้รหัสผ่าน Vault ใช้เพื่อถอดรหัส Vaulted Shell script ประเมินสคริปต์ซึ่งโหลดตัวแปรสภาพแวดล้อม Azure ลงในสภาพแวดล้อม เรียกใช้ playbook บนสภาพแวดล้อมที่ตั้งค่าไว้ มีโซลูชัน "Ansible" …

3
อะไรคือแนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้ Ansible Vault บนที่เก็บข้อมูลสาธารณะและ CI ของแหล่งควบคุมเช่น BitBucket?
บทนำ บน CI ส่วนตัวและที่เก็บข้อมูลการควบคุมแหล่งเช่น Gitlab-ce คุณสามารถคัดลอก ~ / .vault_pass.txt ไปยังเซิร์ฟเวอร์และปล่อยให้ CI ใช้ถอดรหัสไฟล์โดยใช้ Ansible ปัญหา ในที่สาธารณะ CI และแหล่งที่มาการควบคุมแหล่งที่มาเช่น Bitbucket ไม่สามารถคัดลอก ~ / .vault_pass.txt ไปยังเซิร์ฟเวอร์ CI ได้ด้วยตนเอง อภิปรายผล ใน Bitbucket เป็นไปได้ที่จะกำหนดตัวแปรที่เข้ารหัส แต่เมื่อไฟล์นี้ถูกตรวจสอบตัวแปรที่เกี่ยวข้องกับ VAULT เท่านั้น: ANSIBLE_ASK_VAULT_PASS ANSIBLE_VAULT_PASSWORD_FILE ตัวแปรเหล่านี้ไม่ใช่ตัวเลือกในการแก้ไขปัญหาเมื่อANSIBLE_ASK_VAULT_PASSตั้งค่าansible-vaultพร้อมท์: user@host $ Vault password: เมื่อป้อนรหัสผ่านเดียวกันก็สามารถเปิดไฟล์ที่เข้ารหัสได้ แต่เป้าหมายคือการเปิดไฟล์โดยไม่จำเป็นต้องใช้ไฟล์หรือป้อนรหัสผ่านในพร้อมต์ ความพยายามในการแก้ไขปัญหาอื่นกำลังทำงานอยู่export ANSIBLE_ASK_VAULT_PASS=<ansible-vault-password>แต่โหมดโต้ตอบยังคงมีอยู่ อีกตัวเลือกหนึ่งคือexport ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtแต่ต้องส่งไฟล์นี้ไปยังที่เก็บ แต่ที่เก็บควบคุมแหล่งที่มาไม่ควรมีรหัสผ่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.