كيفية الوصول إلى الأسرار من Google Secret Manager باستخدام Apps Script
يشرح هذا الدليل التفصيلي كيفية الوصول إلى كلمات المرور ومفاتيح API والبيانات الحساسة الأخرى المخزنة في Google Secret Manager باستخدام Google Apps Script.
Google Secret Manager عبارة عن خدمة سحابية حيث يمكنك تخزين البيانات الحساسة مثل كلمات المرور أو بيانات اعتماد قاعدة البيانات أو مفاتيح التشفير أو أي معلومات سرية أخرى لا تريد ترميزها بشكل ثابت في الكود المصدري لتطبيقك. يمكنك أيضًا إعداد وقت انتهاء صلاحية للسر وسيقوم Google Secret Manager بحذف السر تلقائيًا بعد الوقت المحدد.
يشرح الدليل التالي كيف يمكنك استخدام Google Apps Script للوصول إلى الأسرار المخزنة في Google Secret Manager. ولكن قبل المتابعة، دعونا أولاً ننشئ سرًا في Google Secret Manager.
تمكين مدير جوجل السري
1. افتح Google Cloud Console وأنشئ مشروعًا جديدًا.
2. انتقل إلى قسم المكتبة في مشروع Google Cloud الخاص بك وقم بتمكين Secret Manager API.
3. انتقل إلى قسم IAM & Admin > IAM في Google Cloud الخاص بك. انقر فوق Grant Access
وإضافة Secret Manager Secret Accessor
الدور إلى حساب Google الذي تريد الوصول من خلاله إلى الأسرار المخزنة في Google Secret Manager.
قم بإنشاء سر في Google Secret Manager
الآن بعد أن قمت بتمكين Secret Manager API ومنحت حق الوصول إلى حساب Google الخاص بك، فلنقم بإنشاء سر جديد في Google Secret Manager.
انتقل إلى المدير السري وانقر على Create Secret
زر لإنشاء سر جديد.
قم بتسمية السر الخاص بك وأضف القيمة السرية – يمكن أن تكون هذه سلسلة نصية عادية، أو يمكنك تحميل ملف ثنائي يصل حجمه إلى 64 كيلو بايت. إذا كنت تريد أن تنتهي صلاحية السر بعد فترة زمنية معينة، فيمكنك تعيين وقت انتهاء صلاحية السر.
في المثال أعلاه، قمت بإنشاء سر اسمه MyBankPassword
مع القيمة MySuperSecretPassword
. سيقوم Google Secret Manager تلقائيًا بتعيين رقم الإصدار (1) للسر. لا يمكنك تغيير قيمة السر بمجرد حفظه، ولكن يمكنك إنشاء نسخة جديدة من السر بقيمة مختلفة.
قم بالوصول إلى Google Secret Manager من Google Apps Script
الآن بعد أن أنشأت سرًا في Google Secret Manager، دعنا نكتب برنامج Google Apps Script الذي سيجلب القيمة السرية من Google Secret Manager.
اذهب إلى script.new
لإنشاء مشروع Google Apps Script جديد. اذهب الى Project Settings
وتمكين Show appsscript.json manifest file in editor
خيار. التبديل إلى appsscript.json
علامة التبويب وأضف نطاقات OAuth التالية إلى ملف البيان:
{
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/cloud-platform"
]
}
بعد ذلك، قم بإضافة الوظيفة التالية إلى مشروع Google Apps Script الخاص بك. استبدل project_id
, secret_id
، و version_id
المتغيرات مع القيم الفعلية للسر الخاص بك.
ال project_id
هو رقم مشروع مشروع Google Cloud الخاص بك ويمكن العثور عليه في Google Cloud Console هنا.
بعد إضافة الوظيفة إلى مشروع Google Apps Script، قم بتشغيل main
وظيفة لجلب القيمة السرية من Google Secret Manager وتسجيلها في Google Apps Script Logger.
const main = () => {
const project_id = '<<YourProjectId>>';
const secret_id = '<<YourSecretId>>';
const secret_value = getSecretValue_({ project_id, secret_id });
Logger.log('The secret value for %s is %s', secret_id, secret_value);
};
const getSecretValue_ = ({ project_id, secret_id, version_id = 1 }) => {
const endpoint = `projects/${project_id}/secrets/${secret_id}/versions/${version_id}:access`;
const api = `https://secretmanager.googleapis.com/v1/${endpoint}`;
const response = UrlFetchApp.fetch(api, {
method: 'GET',
headers: {
Authorization: `Bearer ${ScriptApp.getOAuthToken()}`,
'Content-Type': 'application/json',
},
muteHttpExceptions: true,
});
const { error, payload } = JSON.parse(response.getContentText());
if (error) {
throw new Error(error.message);
}
const bytes = Utilities.base64Decode(payload.data);
const base64 = bytes.map((byte) => `%${byte.toString(16).padStart(2, '0')}`).join('');
const secretValue = decodeURIComponent(base64);
return secretValue;
};
اكتشاف المزيد من مرابع التكنولوجيا
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.