ট্র্যাভিস-সিআই-তে গোপন এপিআই কী ব্যবহার করা


92

আমি আমার একটি প্রকল্পের জন্য ট্র্যাভিস-সিআই ব্যবহার করতে চাই ।

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

উত্তর:


99

ট্র্যাভিসের পরিবেশ ভেরিয়েবলগুলি এনক্রিপ্ট করার বৈশিষ্ট্য রয়েছে ( " পরিবেশের ভেরিয়েবলগুলি এনক্রিপ্ট করা " )। এটি আপনার গোপনীয় API কীগুলি সুরক্ষিত করতে ব্যবহার করা যেতে পারে। আমি আমার হেরোকু এপিআই কী এর জন্য এটি সফলভাবে ব্যবহার করেছি।

আপনাকে যা করতে হবে তা হ'ল ট্র্যাভিস রত্ন ইনস্টল করা, আপনার পছন্দ মতো স্ট্রিং এনক্রিপ্ট করুন এবং আপনার এনক্রিপ্ট করা স্ট্রিংটি যুক্ত করুন .travis.yml। এনক্রিপশনটি কেবলমাত্র একটি সংগ্রহস্থলের জন্য বৈধ। travisকমান্ড আপনার রেপো জন্য আপনার সর্বজনীন কী পায় এবং তারপর বিল্ড সময় স্ট্রিং ডিক্রিপ্ট করতে পারেন।

gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo

এটি আপনাকে নিম্নলিখিত আউটপুট দেয়:

Please add the following to your .travis.yml file:

  secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="

12
আপনি কোন ভেরিয়েবলগুলি ব্যবহার করছেন তা ডকুমেন্ট করতে ভুলবেন না এবং কেন, কারণ একবার এগুলি এনক্রিপ্ট করলে কেবল মূল কীগুলির সাহায্যে কেউ তাদের পুনরুদ্ধার করতে পারে।
জার্সিবিয়

4
দেখে মনে হচ্ছে ট্র্যাভিস রত্নটির নতুন সংস্করণগুলি তাদের যুক্তিগুলি বিপরীত ক্রমে পছন্দ করে: travis encrypt [args..] [options]যেমন আপনি এটি করতে চাইবেন travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo। প্রথমে বিকল্পগুলি এবং এনক্রিপ্ট করা ডেটাটি সর্বশেষে রেখে দেওয়া একটি সতর্কতা প্রদর্শন করে।
জর্ডান

4
কমান্ডের বিকল্পের --add env.globalসাথে এটি travisস্বয়ংক্রিয়ভাবে আপনার .travis.yml সংশোধন করবে।
থমাস

4
@ র্যামআইডাবলাপতি: যেহেতু গোপনীয়তাগুলি এনক্রিপ্ট করা হয়েছে, তাই এটি নিরাপদ হিসাবে বিবেচিত হয়, হ্যাঁ।
ওডি

4
@ রমেশ-এক্স: হ্যাঁ এই এনক্রিপশনটি ট্র্যাভিসিসিআইয়ের জন্য for ট্র্যাভিসিসিআইয়ের কারও যদি নিয়ন্ত্রণ থাকে তবে তারা SECRET_ENV
ওডি

7

অনুযায়ী এই Travis CI ডকুমেন্টেশনে এটা যে বলা হয়ে থাকে:

যদি আপনার কাছে হেরোকু এবং ট্র্যাভিস সিআই কমান্ড লাইন ক্লায়েন্ট দুটি ইনস্টল থাকে তবে আপনি আপনার কীটি পেতে পারেন, এটি এনক্রিপ্ট করতে পারেন এবং আপনার প্রকল্প ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার .travis.yml এ যুক্ত করতে পারেন:

travis encrypt $(heroku auth:token) --add deploy.api_key

পড়ুন নিম্নলিখিত টিউটোরিয়াল heroku ক্লায়েন্ট ইনস্টল করতে আপনার OS অনুযায়ী


আমি কেবল যাচাই করতে চাই: এটি আপনার ফাইলটিতে যুক্ত করা কীটি সংস্করণ নিয়ন্ত্রণে আপলোড করা নিরাপদ, তাই না?
ভ্যালারমায়েড

5

আপনি সংগ্রহস্থল সেটিংসে গোপন ভেরিয়েবলগুলিও সংজ্ঞায়িত করতে পারেন :

সংগ্রহস্থল সেটিংসে সংজ্ঞায়িত ভেরিয়েবলগুলি সমস্ত বিল্ডের জন্য একই এবং আপনি যখন কোনও পুরানো বিল্ড পুনরায় চালু করেন তখন এটি সর্বশেষ মানগুলি ব্যবহার করে। এই ভেরিয়েবলগুলি কাঁটাচামচগুলিতে স্বয়ংক্রিয়ভাবে উপলব্ধ হয় না।

সংগ্রহস্থল সেটিংসে ভেরিয়েবলগুলি সংজ্ঞায়িত করুন যে:

  • সংগ্রহস্থল প্রতি পৃথক।
  • সংবেদনশীল ডেটা রয়েছে যেমন তৃতীয় পক্ষের শংসাপত্রগুলি।

সংগ্রহস্থল সেটিংসে ভেরিয়েবলগুলি সংজ্ঞায়িত করতে, নিশ্চিত হয়ে নিন যে আপনি লগ ইন করেছেন, প্রশ্নে থাকা সংগ্রহস্থলে নেভিগেট করুন, কগ মেনু থেকে "সেটিংস" নির্বাচন করুন এবং "পরিবেশ পরিবর্তনশীল" বিভাগে "নতুন পরিবর্তনশীল যুক্ত করুন" এ ক্লিক করুন।


4
কীভাবে গোপন ভেরিয়েবল তৈরি করবেন তা বুঝতে পারিনি । এটি গুগল করার সময়, ফলাফলগুলি কীভাবে এনক্রিপ্ট করতে হয় তা ব্যাখ্যা করে।
Xedin অজ্ঞাত

@ এক্সিডিনউন্নড এটি গোপন ভেরিয়েবলের জন্য ব্যবহার করা যেতে পারে। লিঙ্কটি থেকে: "ডিফল্টরূপে, এই নতুন পরিবেশের ভেরিয়েবলগুলির মান লগগুলিতে রফতানি লাইন থেকে গোপন করা হয় This এটি আপনার .travis.yml এ এনক্রিপ্ট করা ভেরিয়েবলগুলির আচরণের সাথে মিলে যায় The ভেরিয়েবলগুলি আমাদের সিস্টেমে এনক্রিপ্টযুক্ত সংরক্ষণ করা হয়, এবং বিল্ড স্ক্রিপ্ট উত্পন্ন হওয়ার পরে ডিক্রিপ্ট করা হবে।
bmaupin

0

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


4
"এটি একইভাবে করুন" বলতে কী বোঝ? আমি নিজেই রেপোতে (যেমন। ট্র্যাভিস.আইএমএল ফাইলে) এপিআই কীগুলি সংরক্ষণ করার ধারণাটি পছন্দ করি না তবে ট্র্যাভিসে পরিবেশগত পরিবর্তনগুলি কনফিগার করার অন্য কোনও উপায় বলে মনে হয় না।
BM5k

Env ভেরিয়েবলটি একটি সর্বজনীন কী দিয়ে এনক্রিপ্ট করা হবে, সুতরাং কেবল গোপন কীটির মালিক এটি ডিক্রিপ্ট করতে পারবেন। আপনার একটি গুরুত্বপূর্ণ টোকেন ব্যবহার করা উচিত নয়। আমার ক্ষেত্রে আমি ট্র্যাভিসটি ইতিমধ্যে গিটহাবের জন্য ব্যবহার করেছি। এটি বেশ ভালভাবে কাজ করেছে এবং গিথাবের মধ্যে থেকে আমি যখনই ট্র্যাভিসকে ঝুঁকি বলে মনে করি তখন আমি এই টোকনটি প্রত্যাহার করতে পারি। আমার রেপোতে এনক্রিপ্ট করা টোকেন থাকা আমার খারাপ ঘুমায় না। github.com/ecki/GCViewer/blob/topic-ciupload/.travis.yml
eckes
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.