การใช้ที่เก็บที่ปลอดภัย

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

การใช้ API ของบริการที่เก็บข้อมูลที่ปลอดภัย

บริการที่เก็บข้อมูลที่ปลอดภัยช่วยให้คุณจัดเก็บข้อมูลที่ละเอียดอ่อน เช่น ข้อมูลเข้าสู่ระบบสำหรับ บริการแบ็กเอนด์ ในรูปแบบที่เข้ารหัส เพื่อให้ข้อมูลดังกล่าวได้รับการปกป้องจากการใช้งานที่ไม่ได้รับอนุญาต พื้นที่เก็บข้อมูลที่ปลอดภัยเหล่านี้เรียกว่า "Vault" และสามารถกำหนดขอบเขตได้ทั้งในระดับองค์กรหรือระดับสภาพแวดล้อมใน Apigee Edge

ตัวอย่างเช่น คุณอาจใช้ที่เก็บข้อมูลที่ปลอดภัยเพื่อจัดเก็บรหัสผ่านที่แอปพลิเคชัน Node.js ต้องใช้เพื่อเข้าถึงทรัพยากรที่ได้รับการปกป้อง เช่น เซิร์ฟเวอร์ฐานข้อมูล คุณสามารถจัดเก็บรหัสผ่านในที่เก็บข้อมูลที่ปลอดภัยผ่าน API ก่อนการติดตั้งใช้งาน และแอปพลิเคชันจะค้นหาค่าได้ในระหว่างรันไทม์

การดำเนินการเช่นนี้จึงไม่จำเป็นต้องใส่รหัสผ่านในระบบควบคุมซอร์สโค้ด หรือติดตั้งใช้งานรหัสผ่านควบคู่กับซอร์สโค้ด Node.js ใน Apigee Edge แต่ Apigee จะจัดเก็บค่าในรูปแบบที่เข้ารหัสและจะดึงข้อมูลดังกล่าวก็ต่อเมื่อแอปพลิเคชันต้องการเท่านั้น

ดูเอกสารประกอบเกี่ยวกับ API ของที่เก็บข้อมูลที่ปลอดภัยได้ที่ Vault นอกจากนี้ ส่วนต่อไปนี้ยังให้ภาพรวมของการใช้ API ของที่เก็บข้อมูลที่ปลอดภัยด้วย

การจัดเก็บข้อมูลตาม องค์กร

องค์กร Apigee Edge แต่ละองค์กรจะมีชุดที่เก็บข้อมูลที่ปลอดภัย และแต่ละสภาพแวดล้อมจะมีที่เก็บข้อมูลเพิ่มเติม ด้วยวิธีนี้ องค์กรที่มีข้อกำหนดด้านความปลอดภัยที่แตกต่างกันสำหรับแบ็กเอนด์ที่ต่างกัน จะสามารถจัดเก็บค่าที่ปลอดภัยที่แตกต่างกันได้ ส่วนนี้จะอธิบายการจัดเก็บตามองค์กร

การใช้งาน

  • ดึงชื่อของที่เก็บข้อมูลที่ปลอดภัยทั้งหมด
GET /o/{organization}/vaults
  • ดึงรายการข้อมูล (แต่ไม่ใช่ค่าที่เข้ารหัส) จาก Vault ที่มีชื่อ
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" หากค่าที่ระบุตรงกับค่าที่มีอยู่ในที่เก็บข้อมูล และ "false" หาก ไม่ตรง ทั้ง 2 กรณีจะใช้รหัสสถานะ 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}
  • ลบ Vault ทั้งหมด

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

การจัดเก็บข้อมูลตามสภาพแวดล้อม

นอกจากนี้ คุณยังจัดเก็บข้อมูลตามสภาพแวดล้อม Apigee Edge ได้ด้วย ในกรณีนี้ ข้อมูลจะมีขอบเขตเป็นสภาพแวดล้อม (เช่น "prod") ฟีเจอร์นี้ช่วยให้จัดเก็บค่าที่แตกต่างกันได้ในระหว่างรันไทม์ ทั้งนี้ขึ้นอยู่กับตำแหน่งที่สคริปต์ Node.js ทำงาน

การใช้งาน

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

การติดตั้ง apigee-access

หากต้องการใช้ apigee-access ในโค้ด Node.js คุณต้องติดตั้งก่อน ตัวอย่างเช่น

  1. เปลี่ยนไดเรกทอรีเป็นไดเรกทอรีรากของโปรเจ็กต์
  2. เรียกใช้ npm install apigee-access --save

ฟังก์ชัน

ฟังก์ชัน apigee-access getVault() ใช้เพื่อดึง Vault ที่เฉพาะเจาะจง ไม่ว่าจะดึงตาม องค์กรหรือตามสภาพแวดล้อมปัจจุบันที่โค้ด Node.js ทำงานอยู่

getVault() มี 2 พารามิเตอร์ดังนี้

  • ชื่อของที่เก็บข้อมูลที่ปลอดภัยที่จะดึง
  • ขอบเขต ซึ่งอาจเป็น organization หรือ environment หากไม่ได้ ระบุไว้ ระบบจะถือว่าเป็น organization

ออบเจ็กต์ที่แสดงผลโดย getVault() มี 2 ฟังก์ชันดังนี้

  • getKeys(callback): แสดงผลอาร์เรย์ที่มีชื่อคีย์ทั้งหมดใน Vault ที่ระบุ ระบบจะเรียกฟังก์ชัน Callback โดยมี 2 อาร์กิวเมนต์ ได้แก่ ข้อผิดพลาดหากการ ดำเนินการล้มเหลว หรือ "ไม่ระบุ" หากไม่ล้มเหลว และอาร์เรย์จริงเป็นอาร์กิวเมนต์ที่ 2
  • get(key, callback): แสดงผลค่าที่ปลอดภัยที่เชื่อมโยงกับคีย์ที่เฉพาะเจาะจง ระบบจะเรียกฟังก์ชัน Callback โดยมี 2 อาร์กิวเมนต์ ได้แก่ ข้อผิดพลาดหากการดำเนินการล้มเหลว หรือ "ไม่ระบุ" หากไม่ล้มเหลว และค่าจริงเป็นอาร์กิวเมนต์ที่ 2

ตัวอย่าง

ต่อไปนี้คือตัวอย่าง Node.js ที่แสดงวิธีรับค่าจาก Vault คุณต้องติดตั้งโมดูล apigee-access เพื่อให้โค้ดนี้ทำงานได้ตามที่อธิบายไว้ ก่อนหน้านี้

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