জবাবযুক্ত বাইনারি ফাইলগুলি কীভাবে এনক্রিপ্ট করবেন?


9

আমরা আমাদের উত্তরীয় প্লেবুক গিট সংগ্রহস্থলে পাসওয়ার্ড, শংসাপত্রগুলির জন্য ব্যক্তিগত কীগুলি সঞ্চয় করতে আনসিবল ভল্ট ব্যবহার করছি । আমাদের বিদ্যমান সমস্ত ব্যক্তিগত ডেটা পাঠ্য আকারে রয়েছে, তাই আমরা এটিকে ভেরিয়েবলগুলিতে সঞ্চয় করতে পারি। এরপরে এটি টেমপ্লেটগুলিতে বা contentঅনুলিপি মডিউলটির প্যারামিটার সহ ব্যবহৃত হয় ।

এখন, আমাদের কাছে একটি জাভা কীস্টোর ফাইল রয়েছে, যা দুঃখজনকভাবে একটি বাইনারি ফর্ম্যাট রয়েছে। যেমন, এটি কোনও ভেরিয়েবলের মধ্যে সংরক্ষণ করা যায় না - বা কমপক্ষে আমি কীভাবে এটি করব তা জানি না। আমাদের ফাইলটি গিটে থাকা অবস্থায় সঠিকভাবে এনক্রিপ্ট করার সহজ উপায় কী হবে, তবে চলমান অবস্থায় পাওয়া যায় ansible-playbook?

যা আমি ইতিমধ্যে সাফল্য ছাড়া চেষ্টা করেছি:

  • বেস 64 এ বাইনারি ফাইল এনকোড করা হচ্ছে, একটি ভেরিয়েবলে এনকোডড ডেটা সংরক্ষণ করা এবং এর সাথে টেমপ্লেট মডিউলটি ব্যবহার করা {{base64_data | b64decode}}EF BF BDফলাফলের ফাইলের প্রচুর হেক্স ডাম্পে নিয়ে যায়। তিনটি বাইট ইউটিএফ -8 এ ইউনিকোড প্রতিস্থাপনের অক্ষরটি এনকোড করে, তাই বাইনারি ডেটাটিকে পাঠ্য হিসাবে ব্যাখ্যা করার সাথে একটি সমস্যা রয়েছে।
  • বেস 64 এ বাইনারি ফাইল এনকোড করা হচ্ছে, একটি ভেরিয়েবলে এনকোডড ডেটা সংরক্ষণ করা এবং এর সাথে অনুলিপি মডিউলটি ব্যবহার করা content="{{base64_data | b64decode}}"। "একটি পরিবর্তনশীল মডিউল আরগসে একটি নতুন প্যারামিটার sertedোকানো হয়েছে" এর সাথে উত্তরযোগ্য অভিযোগ করে। দ্বৈত উদ্ধৃতিগুলির পরিবর্তে একক উদ্ধৃতি ব্যবহার করার সময়, উত্তরীয় "ত্রুটি বিশ্লেষণকারী তর্ক স্ট্রিং" এবং টার্মিনালে ফেলে দেওয়া সমস্ত বাইনারি ডেটার একটি অনুলিপিতে অভিযোগ করে ...

গ্রুপ. google.com/d/topic/ansible-project/IinZK14FyX4 এ আলোচনা থেকে আমি এই সিদ্ধান্তে পৌঁছেছি যে উত্তরদাতা এটি সমর্থন করে না, এবং আপনাকে নিজের ভিত্তিতে কিছু বেস 64 জিনিস করতে হবে তবে তৃতীয় পক্ষের কিছু জিনিস থাকতে পারে এটি আরও সহজ করে তুলতে পারে।
আন্তোনিস ক্রিস্টোফাইডস

ধন্যবাদ, এটি ভাল দেখাচ্ছে। এটি চেষ্টা করে আবার রিপোর্ট করবে ...
ড্যানিয়েল সেয়ারে

না, দুঃখের সাথে এটি কাজ করে না (সম্পাদিত প্রশ্ন দেখুন)। একটি জবাবদিহি অনুরোধের চারপাশে কিছু আলোচনা রয়েছে যা প্রাসঙ্গিক হতে পারে: github.com/ansible/ansible-modules-extras/pull/142
ড্যানিয়েল সিয়ারেথ

আপনি কি জিপিজি কল দিয়ে এটি মোড়ানো সম্পর্কে ভেবে দেখেছেন? আপনার কাছে আনসিবল্ট ভল্টে জিপিজি প্রাইভেট কীটির ASCII উপস্থাপনা থাকতে পারে এবং আপনার বাইনারি ফাইলটি ডিক্রিপ্ট করার জন্য এটি ব্যবহার করুন, যা কোনও সমস্যা ছাড়াই গিটের মধ্যে সংরক্ষণ করা যেতে পারে।
ক্রিস্টোফার কারেল

আপনার পরামর্শের জন্য ধন্যবাদ, তবে এই কাজটি আমি যতটা চাই তার চেয়ে কিছুটা বেশি জড়িত। আমি ইতিমধ্যে টার্গেট মেশিনে বেস 64৪-এনকোডেড কীস্টোর অনুলিপি করতে এবং একটি হ্যান্ডলার যা ফাইলটি আপডেটে ডিকোড করে রাখার বিষয়ে ভেবেছিলাম তবে আমি এমন একটি সমাধান পছন্দ করব যা অস্থায়ী ফাইলগুলির আশেপাশে ছুঁড়ে না ফেলে।
ড্যানিয়েল সেথর

উত্তর:


4

এটি করতে আপনি বেস 64 ভেরিয়েবলের সাথে শেল কমান্ড ব্যবহার করতে পারেন।

- vars:
  - myvar: "<my_base64_var>"
- name: Create binary file
  shell: "echo '{{myvar}}' | base64 -d > /var/tmp/binary.dat"

এরিক


এটি অবশ্যই একটি বিকল্প, বিশেষত যেহেতু এটি কোনও অস্থায়ী ফাইল ব্যবহার করে না। দুঃখের বিষয়, এটি পরিবর্তনযোগ্য হয়েছে কিনা তা সনাক্ত করার অনুমতি দেয় না, তবে আমি যে সমস্ত সমাধান দেখেছি তার চেয়ে এটি ভাল।
ড্যানিয়েল সেথর

1
আমার মনে হয় ভল্টটি এখন এটি সমর্থন করে: "ভল্ট বৈশিষ্ট্যটি স্বেচ্ছাসেবী ফাইলগুলি এমনকি বাইনারি ফাইলও এনক্রিপ্ট করতে পারে If যদি একটি ভল্ট-এনক্রিপ্ট করা ফাইলটি অনুলিপি হিসাবে ম্যাসেজের src হিসাবে দেওয়া হয়, ফাইলটি লক্ষ্য হোস্টের গন্তব্যস্থলে স্থাপন করা হবে will ডিক্রিপ্টেড (ধরে নিচ্ছি যে বৈধ ভল্টের পাসওয়ার্ডটি প্লে চলাকালীন সরবরাহ করা হবে)। - ডকসস.সানসিল.স্যাবসিল
মাইক গ্লিসন জুনিয়র

2
মনে রাখবেন যে তারা @ মাইকগ্লেসনজার কৌতুরিয়ার দ্বারা উদ্ধৃত পাঠ্যটি উত্তরীয় নথির বিভিন্ন পৃষ্ঠায় সরিয়ে নিয়েছে; এখনই docs.ansible.com/ansible/latest/vault.html দেখুন ।
লিয়াম

2

আমাদের জবাবদিহি করার জন্য যেভাবে আমরা তা করি তা হ'ল:

-আমরা https://www.agwa.name/projects/git-crypt/ ব্যবহার করে স্বতন্ত্র সংবেদনশীল উপাদানগুলি (আমাদের ভাণ্ডারের একটি ছোট উপসেট) এনক্রিপ্ট করে থাকি-আমরা সবসময়ই গিট সাইন ট্যাগ ব্যবহার করে প্রতিশ্রুতিবদ্ধ করি - আমরা পর্যায়ক্রমে পরীক্ষা করে দেখি যে কোনও স্বাক্ষরযুক্ত ফাইল রয়েছে কিনা?

গিট-ক্রিপ্টের সুবিধা হ'ল এটি গিট ফিল্টারগুলির উপর নির্ভর করে, এনক্রিপশনটি স্বচ্ছ। এছাড়াও আপনি এনক্রিপ্ট হওয়া সামগ্রীর সাথে আপস না করে বিকাশকারীদের ভান্ডারগুলিতে অ্যাক্সেস দিতে পারবেন (কোনও ডিক্রিপশন কী না পাওয়া গেলে এটি এনক্রিপ্ট করা ফাইলগুলি উপেক্ষা করবে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.