使用安全存放區

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

使用安全商店服務 API

透過安全商店服務,您可以儲存機密資料,例如 並採用加密格式,防止未經授權人士使用服務。這些 安全儲存區域稱為「保管箱」,範圍可限定為機構 部署在 Apigee Edge 的環境層級

例如,您可以使用安全儲存庫來儲存 Node.js 需要的密碼 以取得受保護的資源,例如資料庫伺服器。您可以將 在部署前透過 API 在安全存放區中儲存密碼,而且應用程式可以 在執行階段指定這個值

如此一來,您就不需要在原始碼控制項中加入密碼 也可以將其與 Node.js 原始碼一起部署至 Apigee Edge而該值會是 Apigee 以加密形式儲存,且只會在應用程式需要時擷取 基礎架構

如需安全儲存 API 的說明文件,請參閱保管箱。下列各節也會概略介紹如何使用 安全的儲存 API

資料儲存依據 機構組織

每個 Apigee Edge 機構都有一組安全儲存庫,每個環境都有 讓機構對不同的安全性要求具有不同的安全性要求 後端可儲存不同的安全值本節說明依機構儲存資料。

用量

  • 擷取所有安全存放區的名稱:
GET /o/{organization}/vaults
  • 從已命名的保管箱擷取項目清單 (而非加密值)。
GET /o/{organization}/vaults/{name}
  • 擷取單一項目 (但不擷取加密值)。

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • 建立名為「名稱」的新保管箱沒有值:

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
  • 使用指定的名稱與安全值在保管箱中放置新項目。

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」如果 但實際上不會在這兩種情況下,都會使用 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
    
  • 刪除指定的保管箱項目:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • 刪除整個保管箱。

    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

如要在 Node.js 程式碼中使用 apigee-access,請先安裝 首先。例如:

  1. cd 到專案的根目錄。
  2. 執行:npm install apigee-access --save

函式

Apigee-access getVault() 函式可用來擷取特定的保管箱, 或是根據目前執行 Node.js 程式碼的環境

getVault() 使用兩個參數:

  • 要擷取的安全儲存庫名稱。
  • 範圍,可以是 organizationenvironment。如果不是 則假設為 organization

getVault() 傳回的物件有兩個函式:

  • getKeys(callback):傳回一個陣列,其中包含所有索引鍵的名稱 指定的保管箱系統會用兩個引數呼叫回呼函式:如果 作業失敗,或「未定義」傳回時,實際陣列做為第二個引數。
  • get(key, 回呼):傳回與特定項目相關聯的安全值 鍵。系統會用兩個引數呼叫回呼函式:如果作業失敗,就會發生錯誤。 或「未定義」傳回時,將實際值做為第二個引數。

範例

以下 Node.js 範例示範如何從保管箱中取得值。 已安裝 apigee-access 模組,因此這個程式碼可以運作,如上所述 像是剛才說過,即便 VM 正在運作 您還是能變更 VM 可用性政策

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