উত্তর-ভল্টের পাসওয়ার্ড কোথায় রাখবেন


26

গিটে পাসওয়ার্ড বা কীগুলি ফাঁস রোধ করতে আমরা আমাদের প্রকল্পে উত্তরযোগ্য ভল্ট ব্যবহার করার পরিকল্পনা করছি।

ধারণাটি হ'ল আমাদের সমস্ত সংবেদনশীল ডেটা একটি প্লেইন ফাইলে রেখে তারপরে গিটকে চাপ দেওয়ার আগে একটি পাসওয়ার্ড ব্যবহার করে এই ফাইলটি উত্তরীয়-ভল্টের সাথে এনক্রিপ্ট করে।

ফাইলটি ডিক্রিপ্ট করতে আমাদের ভল্টের পাসওয়ার্ডটি জবাবদিহি করতে হবে, আমি 3 টি সম্ভাবনার কথা ভাবছি:

  • এটি একটি সার্ভার এনভায়রনমেন্ট ভেরিয়েবলের ভিতরে সঞ্চয় করুন
  • জবাবদিহি-প্লেবুক কমান্ডের বিকল্প হিসাবে এটি পাস করুন
  • এটি কোনও সংস্করণযুক্ত ফাইলের মধ্যে সঞ্চয় করুন।

অন্য যে কোনও বিকল্প রয়েছে, যা উত্তরযোগ্য-ভল্ট পাসওয়ার্ড সংরক্ষণের সেরা (এবং সুরক্ষিত) উপায়, উত্তরযোগ্য সর্বোত্তম অনুশীলনের ডকুমেন্টেশন এ বিষয়ে কিছু বলছে না।



সেখানে কিছু ভাল উত্তর এখানে আছেন: devops.stackexchange.com/questions/3806/...
Vish

উত্তর:


13

ধারণাটি হ'ল আমাদের সমস্ত সংবেদনশীল ডেটা রাখুন [...]

আপনার পরিকল্পনার সমাধানটি কার্যকর করার আগে এই বাক্যটির "সমস্ত" অর্থটি খুব সতর্কতার সাথে বিশ্লেষণ করা উচিত।

জবাবদিহি ভল্ট একটি খুব দরকারী সরঞ্জাম, তবে এটি কেবল সেই গোপনীয় জিনিসগুলি সংরক্ষণ করতে ব্যবহার করা উচিত:

  1. বিশেষভাবে জবাবদিহি মোতায়েনের জন্য প্রয়োজন
  2. মালিকদের কাছে সহজেই অকেজো হয়ে পড়েছে যা তাদের সম্পর্কে অজানা হওয়া উচিত তবে এটি তাদের অবৈধভাবে "মনে" রাখতে পারে (সাধারণত অফ-বোর্ডযুক্ত কর্মচারী)

দ্বিতীয় বিষয়টি সমালোচনামূলক।

অনেক লোক এবং সম্ভাব্যভাবে পুরো ডিওঅপ্স টিমের উত্তরীয় ভল্টের পাসওয়ার্ড এবং এর ফলে সমস্ত গোপনীয়তা অ্যাক্সেস থাকবে।

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

কড়া কথায়, যদি আপনি কোনও ডাটাবেস এবং তার ব্যবহারকারীদের স্থাপন করতে জবাবদিহিতা ব্যবহার করেন তবে আপনি পাসওয়ার্ডগুলি ভল্টে সংরক্ষণ করতে পারেন, তবে আপনাকে পরিষেবাটি যদি ইন্টারনেট থেকে পাওয়া যায় তবে আপনাকে খুব সতর্কতা অবলম্বন করতে হবে (এবং সম্ভবত অন্য কোনও সমাধান বিবেচনা করতে হবে) এবং কোনও ভিপিএন প্রমাণীকরণের প্রয়োজন ছাড়াই!

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

এই অবস্থার অধীনে, উত্তরযোগ্য ভল্ট একটি খুব দরকারী সরঞ্জাম।

ভল্টে কোনও ব্যক্তি বা মেশিনের দ্বারা ইন্টারনেটে ব্যবহার করা যেতে পারে এমন একটি গোপন সংরক্ষণের চেষ্টা করা পরিবর্তে একটি ভুল (যেমন, ব্যবহারকারীদের ভিপিএন শংসাপত্র) হতে পারে।

অন্য কোনও বিকল্প রয়েছে কি, যা উত্তরযোগ্য-ভল্টের পাসওয়ার্ড সংরক্ষণের সেরা (এবং সুরক্ষিত) উপায়

পূর্ববর্তী অনুচ্ছেদ থেকে শর্ত অনুযায়ী, আমি মনে করি যে একটি ভাল অনুশীলন হবে:

  1. ভল্টের পাসওয়ার্ডটি একটি বাহ্যিক সুরক্ষিত ভল্টে সংরক্ষণ করুন ( হাসি কর্পাসের ভল্ট বা শংসাপত্র পরিচালনার জন্য কোনও সাস)
  2. ডিভোপ্সে বাহ্যিক ভল্ট আইটেমের অ্যাক্সেসের অনুমতি দিন (তাদের পরীক্ষার জন্য পাসওয়ার্ডের প্রয়োজন হবে) এবং সিআই / সিডি সিস্টেম বা উত্তরীয় নিয়ন্ত্রণকারী
  3. গোপনীয়তা ব্যবহারের জন্য একটি সম্মেলন রাখুন ! আপনি গোপনীয়তার পরিবর্তনগুলি পর্যালোচনা করতে পারবেন না এবং আপনি গোপনীয় ফাইলগুলিতে উত্তরযোগ্য ভেরিয়েবলের জন্য গ্রেপ করতে সক্ষম হবেন না! সুতরাং শুরু থেকে পুরোপুরি করা। একটি উত্তম কনভেনশন হ'ল একটি secret_উপসর্গ সহ উত্তরযোগ্য ভল্টে সঞ্চিত সমস্ত ভেরিয়েবলের নাম দেওয়া । আপনি যখন এমন কিছু দেখতে পাবেন:

    postgres.yml:

    postgres_password: "{{ secret_postgres_password }}"
    

    আপনি জানবেন যে মানটি উত্তরযোগ্য ভল্টে সঞ্চিত আছে।


1
জবাবদিহি ভল্ট পাসওয়ার্ড কোথাও নিরাপদ (হাসি কর্পস ভল্ট বা সাএস ভল্ট যেমন এডাব্লুএস সিক্রেটস ম্যানেজার) সংরক্ষণ করার জন্য ভাল বিষয়। যাইহোক, কেউ টিম ছেড়ে চলে গেলে এখনও এটিকে ঘোরানো (পরিবর্তিত) করা দরকার, কারণ সংক্ষিপ্তভাবে হলেও তাদের কাছে এটির অ্যাক্সেস ছিল। এটি পৃথক ভল্টস (দেব, পরীক্ষা, উত্পাদন) অর্থাৎ ওয়াইএএমএলে সিক্রেট ফাইল ব্যবহার করে সম্ভবত প্রশমিত করা যেতে পারে। উত্তরযোগ্য ২.৪++ আপনাকে একটি 'ভল্ট আইডি' - ডক্স পৃষ্ঠা
রিচভেল

1
জবাবদিহিত ২.৩ একটি বৈশিষ্ট্য প্রবর্তন করেছে যা পুরো ফাইল নয়, কেবল ওয়াইএএমএল ফাইলগুলিতে মানগুলি এনক্রিপ্ট করে - এই উত্তরটির শেষে 3 পয়েন্টে আপনি যে পুরানো কনভেনশনটি উল্লেখ করেছেন তার চেয়ে এটি বজায় রাখা সহজ।
রিচভেল

7

গিটে পাসওয়ার্ড বা কীগুলি ফাঁস রোধ করতে আমরা আমাদের প্রকল্পে উত্তরযোগ্য ভল্ট ব্যবহার করার পরিকল্পনা করছি।

যেহেতু আপনি এখনও কিছু বাস্তবায়ন করেন নি, আপনি এটি পুনর্বিবেচনা করতে পারেন। আনসিবল্ট ভল্টের মতো সিস্টেম ব্যবহারে বেশ কয়েকটি সুরক্ষা ডাউনসাইড রয়েছে:

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

সম্ভাব্য অনেক বেশি সুরক্ষিত, আরও জটিল হলেও, যে সিস্টেমে এই ডাউনসাইড নেই তা হ্যাশিকর্প ভল্টটি আপনার গোপনীয়তাগুলি সংরক্ষণ করার জন্য ব্যবহার করা। তারপরেও আপনি এখনও https://github.com/jhaals/ansible-vault ব্যবহার করে আনিসিবল্ট ভল্টের কাছ থেকে প্রায় সহজেই এ থেকে মানগুলি টানতে পারেন ।

এর পরে আপনি, Hashicorp ভল্টের প্রমাণীকরণের পরিচালনা করতে যদিও আছে, এবং যে কচ্ছপ প্রশ্ন । মানুষের জন্য, আমি মনে করি সবচেয়ে ভাল সমাধান হ'ল পর্যায়ক্রমে একটি পাসওয়ার্ড প্রম্পট করা এবং স্বল্প সময়ের পরে টোকেনের মেয়াদ শেষ করা; মেশিনগুলির জন্য, AWS প্রমাণীকরণ ব্যাকএন্ড বা অনুরূপ ব্যবহার করতে । আপনি কখনও কোথাও প্রমাণীকরণের প্রয়োজনীয়তা থেকে সম্পূর্ণরূপে মুক্তি পেতে পারবেন না তবে আক্রমণকারীটির অ্যাক্সেস পেতে আপনি এটি আরও শক্ত করে তুলতে পারেন।

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


2
জবাবদিহি ভল্ট ব্যবহার করার সর্বোত্তম উপায় এটি ব্যবহার না করা .. এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ!
ঝড়

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

3

সংবেদনশীল ডেটা পরিচালনা করার ক্ষেত্রে আপনার অভ্যন্তরীণ নীতিগুলি কী তা এতে চলে আসে।

আমি আপনাকে এটি সম্পর্কে আমার দৃষ্টিভঙ্গি বলতে চাই এবং আমি কী মতামত হিসাবে দেখি তা ব্যাখ্যা করতে চাই। আমি কন্ট্রোল মেশিনের একটি ফাইলে আনসিবল্ট ভল্টের পাসওয়ার্ডটি রাখি এবং এতে পরিবেশের পরিবর্তনশীলটি এতে নির্দেশিত হয়:

export ANSIBLE_VAULT_PASSWORD_FILE=/deep/dark/place

আমার কাছে এটি আমার ওয়ার্কস্টেশনটিতে রয়েছে (যেমন আমার প্লেবুকগুলি পরীক্ষা ও বিকাশ করা দরকার), কিছু সহকর্মীর কাছে এটিও রয়েছে এবং অবশ্যই এটি আমাদের মূল উত্তরীয় নিয়ন্ত্রণ মেশিনে রয়েছে।

পেশাদাররা:

  • কোনও ভাগ করা অবস্থান / সংগ্রহস্থলগুলিতে নয় (এটি যেমন আপনি বলছেন তেমন একটি সংস্করণযুক্ত ফাইল নয়)
  • কোনও প্লে চালানোর জন্য আপনার উত্তরীয় ভল্টের পাসওয়ার্ড জানতে হবে না (এটি এমন একটি শর্তাধীন যা আপনার কাছে সিআই সরঞ্জাম রয়েছে, যেমন জেনকিনস, আপনি সহজেই প্লেবুক চালু করতে পারবেন)

কনস:

  • পাসওয়ার্ডটি ঘোরানো সহজ নয়
  • আপনার প্লেবুকগুলিতে কাজ করে এমন প্রত্যেকেরই তার ওয়ার্কস্টেশনে থাকা দরকার

এই কনসটির প্রশ্রয় আছে, তবে এটি আপনার নীতি ও নিয়মগুলির উপর নির্ভর করে যা আপনি নিজেরাই প্রতিদিন পরিচালনা করেন।


1
ভাল কম্বিনাইসন .. অন্য উত্তরটি পরীক্ষা করুন যদিও এটি আপনার আগ্রহী হতে পারে।
ঝড়

0

আপনার উত্তরযোগ্য ভল্ট এনক্রিপ্টিং পাসওয়ার্ডগুলি পরিচালনা করতে এই প্রকল্পটি একবার দেখুন: https://github.com/Smile-SA/ansible-vault-manager

এটি প্লাগইনগুলির সাথে একাধিক কিরিং স্টোরেজ প্ল্যাটফর্মগুলি পরিচালনা করে (বর্তমানে কেবলমাত্র এডাব্লুএস এসএসএম প্রয়োগ করা হয়েছে)। বর্তমান উত্তরযোগ্য প্রকল্পের সাথে মোরহোভার সংহতকরণ খুব সহজ ...


আপনি জেনেরিক কিছু যুক্ত করার চেয়ে সহজতর কংক্রিট তৈরি করলে এটি সহায়তা করবে। আমি গিথুব পৃষ্ঠার README পড়েছি, তবে আপনি কি উত্তরটি পরিবর্তন করতে পারবেন যাতে এটির একটি সুস্পষ্ট উদাহরণ রয়েছে? আমি এটা চেষ্টা করতে চাই.
030
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.