Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

セキュリティ保護されたストアの使用

Before you decide to use the Edge vault: The Edge secure store (vault) was created to provide an encrypted data store for sensitive information. After you create a vault, you can retrieve vault data only with Node.js. As of Edge for Public Cloud release 160921, you can create encrypted key value maps (KVMs) to store sensitive data. Encrypted KVMs have an advantage over the Edge vault, because encrypted values can be retrieved with the Key Value Map Operations policy as well as with Node.js (using the apigee-access KVM functions), giving you more flexibility in your API proxies or Node.js apps. For more information on KVMs, see Long-term persistence caching. Vaults will be deprecated in the future.

セキュリティで保護されたストアサービス API の使用

セキュリティで保護されたストアサービスでは、バックエンドサービスに対するセキュリティ資格情報などの機密データを、不正使用から保護できる暗号化形式で、格納できます。これらのセキュリティで保護されたストレージは「資格情報コンテナ」と呼ばれ、Apigee Edge では組織 (organization) または環境 (environment) のどちらかのレベルにスコープを設定できます。

例えば、データベースサーバーなどの保護されているリソースに到達するために、Node.js アプリケーションで必要なパスワードの格納にセキュリティで保護されたストアを使用できます。展開前に API を使用してセキュリティで保護されたストアにパスワードを保存すると、そのアプリケーションで実行時にその値を参照することができます。

こうすることで、ソースコード管理システムにパスワードを含めたり、Apigee Edge に Node.js のソースコードと一緒にパスワードを展開したりする必要がなくなります。このような処理を行うのではなく、Apigee によってパスワードの値が暗号化形式で格納され、アプリケーションで必要な場合に限り、その値が取得されます。

For documentation on the secure store APIs, see Vaults. The following sections also provide an overview of using the secure store API.

組織別のデータの格納

各 Apigee Edge 組織には、一連のセキュリティで保護されたストアがあり、各環境には追加ストアが 1 つあります。このようにして、バックエンドごとにセキュリティ要件が異なる組織で、さまざまなセキュリティで確保された値を格納することができます。このセクションでは、組織別の格納について説明します。

使用法

  • 次のコマンドでは、すべてのセキュリティで保護されたストアの名前を取得します。
GET /o/{organization}/vaults
  • 次のコマンドでは、指定された資格情報コンテナからエントリ (ただし、エントリの暗号化された値ではない) のリストを取得します。
GET /o/{organization}/vaults/{name}
  • 単一のエントリ (ただし、エントリの暗号化された値ではない) を取得します。

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • 次のコマンドでは、値を含まない「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
  • 指定された名前とセキュリティが確保された値と一緒に、新しいエントリを資格情報コンテナに配置します。

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」が返されます。どちらの場合も、200 個の HTTP ステータスコードが使用されます。これは、ストアの内容を検証するために使用できます。なお、格納後に、暗号化されていない値を取得するための 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 環境別にデータを保存することもできます。この場合、データが 1 つの環境 (「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 を使用するには、まず apigee-access をインストールする必要があります。次に例を示します。

  1. プロジェクトのルートディレクトリにディレクトリを変更します。
  2. コマンド npm install apigee-access --save 実行します。

関数

apigee-access getVault() 関数は、組織ごとまたは Node.js コードが実行されている現在の環境に基づいて、特定の資格情報コンテナを取得するために使用されます。  

getVault() は、次の 2 つのパラメータを取ります。  

  • 取得するセキュリティで保護されたストアの名前。
  • スコープ。organization または environment のいずれかです。指定のない場合は、organization を取ります。

getVault() によって返されるオブジェクトには、次の 2 つの関数があります。  

  • getKeys(callback): 指定された資格情報コンテナ内のすべてのキーの名前を含む配列を返します。コールバック関数は 2 つの引数を指定して呼び出されます。1 つ目の引数は、操作が失敗した場合は「error」、操作が失敗していない場合は「undefined」で、2 つ目の引数は実際の配列です。  
  • get(key, callback): 特定のキーに関連付けられたセキュリティ保護された値を返します。コールバック関数は 2 つの引数を指定して呼び出されます。1 つ目の引数は、操作が失敗した場合は「error」、操作が失敗していない場合は「undefined」で、2 つ目の引数は実際の配列です。  

例  

次は、資格情報コンテナから値を取得する方法を示す 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 
});  

Help or comments?