تقنية

كيفية الوصول إلى الأسرار من 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.


أضف أدوار IAM

قم بإنشاء سر في 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;
};



Source link

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى