שימוש בחנות המאובטחת

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

באמצעות ממשקי ה-API של שירות החנות המאובטח

שירות החנות המאובטחת מאפשר לאחסן נתונים רגישים, כמו פרטי כניסה לאבטחה של שירותים לקצה העורפי, בפורמט מוצפן כדי שיהיו מוגנים מפני שימוש לא מורשה. אזורי האחסון המאובטחים האלה נקראים 'כספת', ואפשר להגביל אותם לרמות של הארגון או של הסביבה ב-Apigee Edge.

לדוגמה, אפשר להשתמש באחסון המאובטח כדי לאחסן סיסמה שנדרשת על ידי אפליקציית Node.js כדי להגיע למשאב מוגן, כמו שרת מסדי נתונים. אפשר לאחסן את הסיסמה בחנות המאובטחת באמצעות ממשק API לפני הפריסה, והאפליקציה יכולה לחפש את הערך בזמן ריצה.

כך אין צורך לכלול את הסיסמה במערכת הבקרה של קוד המקור, או לפרוס אותה לצד קוד המקור של Node.js ב-Apigee Edge. במקום זאת, הערך מאוחסן על ידי Apigee בצורה מוצפנת, והוא יאוחזר רק כשהאפליקציה תצטרך אותו.

למידע נוסף על ממשקי API של חנות מאובטחת, אפשר לעיין במאמר Vault. בקטעים הבאים מופיעה גם סקירה כללית לגבי השימוש ב-Secure Store API.

אחסון נתונים לפי ארגון

לכל ארגון Apigee Edge יש קבוצה של חנויות מאובטחות, ולכל סביבה יש חנות נוספת. כך ארגונים עם דרישות אבטחה שונות לקצה עורפי שונים יכולים לאחסן ערכי אבטחה שונים. בקטע הזה מתואר אחסון לפי ארגון.

Usage

  • מאחזרים את השמות של כל החנויות המאובטחות:
GET /o/{organization}/vaults
  • אחזור רשימה של רשומות (אבל לא את הערכים המוצפנים שלהם) מכספת עם שם.
GET /o/{organization}/vaults/{name}
  • אחזר רשומה בודדת (אבל לא את הערך המוצפן שלה).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • יצירת Vault חדש בשם "name" ללא ערכים:

POST /o/{organization}/vaults

{ "name": "{name}" }

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults
  -H "Content-Type: application/json"
  -d '{"name": "test2" }' -X POST
  • צריך להוסיף ל-Vault רשומה חדשה עם השם והערך המאובטחים.

POST /o/{organization}/vaults/{vaultname}/entries

{ "name": "{entryname}", "value": "{securevalue}" }


curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries
  -H "Content-Type: application/json"
  -d '{"name": "value1", "value": "verysecret" }' -X POST
  • החלפת הערך של הערך שצוין בערך חדש:

PUT /o/{organization}/vaults/{vaultname}/entries/{entryname}

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1

  -d 'verymoresecret' -X PUT
  • ניתן להחזיר את הערך "true" אם הערך שצוין תואם לערך שכבר קיים ב-Google Store. אם הערך לא זהה לערך "false", בשני המקרים, נעשה שימוש בקוד מצב HTTP של 200. זה עשוי לשמש לאימות תוכן החנות. שימו לב: אחרי השמירה, אין API לאחזור הערך הלא מוצפן:

    POST /o/{organization}/vaults/{vaultname}/entries/{entryname}?action=verify
    
    curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1?action=verify
      -d 'verymoresecret'  -X POST
    
  • מחיקת הרשומה שצוינה ב-Vault:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • למחוק את כל הכספת.

    DELETE /o/{organization}/vaults/{name}
    

אחסון נתונים לפי סביבה

ניתן לאחסן נתונים גם לפי סביבת Apigee Edge. במקרה הזה, הנתונים מוגבלים לסביבה (כמו "prod"). בעזרת התכונה הזו, בזמן הריצה אפשר לאחסן ערכים שונים, בהתאם למיקום שבו הסקריפט של Node.js פועל.

Usage

GET /o/{organization}/e/{env}/vaults

GET /o/{organization}/e/{env}/vaults/{name}

GET /o/{organization}/e/{env}/vaults/{name}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries

PUT /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}?action=verify

DELETE /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

DELETE /o/{organization}/e/{env}/vaults/{name}

המערכת מאחזרת ערכים מהחנות המאובטחת ב-Node.js

התקנת גישה לממשק API

כדי להשתמש ב-apigee-access בקוד של Node.js, צריך קודם להתקין אותו. לדוגמה:

  1. cd לספריית הבסיס של הפרויקט.
  2. ביצוע: npm install apigee-access --save

פונקציות

הפונקציה getVault() של גישה לממשק API משמשת לאחזור כספת ספציפית, לפי ארגון או על סמך הסביבה הנוכחית שבה פועל קוד Node.js.

getVault() לוקח שני פרמטרים:

  • שם החנות המאובטחת שיש לאחזר.
  • ההיקף, שיכול להיות organization או environment. אם לא צוין, ההנחה תהיה organization.

לאובייקט שהוחזר על ידי getVault() יש שתי פונקציות:

  • getKeys(callback): החזרת מערך שמכיל את השמות של כל המפתחות בכספת שצוינה. פונקציית הקריאה החוזרת תופעל עם שני ארגומנטים: שגיאה אם הפעולה נכשלת, או 'undefined' אם היא לא פועלת, והמערך בפועל כארגומנט השני.
  • get(key, callback): החזרת הערך המאובטח שמשויך למפתח מסוים. המערכת תפעיל את פונקציית הקריאה החוזרת עם שני ארגומנטים: שגיאה אם הפעולה נכשלת, או 'לא מוגדר' אם הפעולה לא מתבצעת, והערך בפועל בתור הארגומנט השני.

דוגמה

הנה דוגמה של Node.js שמדגימה איך לקבל ערך מכספת. כדי שהקוד הזה יפעל, המודול apigee-access מותקן, כפי שהוסבר קודם.

var apigee = require('apigee-access');
   var orgVault = apigee.getVault('vault1', 'organization');
   orgVault.get('key1', function(err, secretValue) {
   // use the secret value here
});