Menggunakan toko aman

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Menggunakan API layanan toko yang aman

Layanan penyimpanan yang aman memungkinkan Anda menyimpan data sensitif, seperti kredensial keamanan untuk layanan back-end, dalam format terenkripsi sehingga data tersebut terlindungi dari penggunaan yang tidak sah. Area penyimpanan yang aman ini disebut "vault", dan dapat mencakup tingkat organisasi atau lingkungan di Apigee Edge.

Misalnya, penyimpanan aman dapat digunakan untuk menyimpan sandi yang diperlukan oleh aplikasi Node.js untuk menjangkau resource yang dilindungi, seperti server database. Anda dapat menyimpan sandi di penyimpanan aman melalui API sebelum deployment, dan aplikasi dapat mencari nilainya saat runtime.

Dengan begitu, Anda tidak perlu menyertakan sandi dalam sistem kontrol kode sumber, atau menerapkannya bersama kode sumber Node.js ke Apigee Edge. Sebagai gantinya, nilai disimpan oleh Apigee dalam bentuk terenkripsi dan hanya akan diambil saat aplikasi membutuhkannya.

Untuk dokumentasi tentang API penyimpanan aman, lihat Vault. Bagian berikut juga memberikan ringkasan penggunaan API toko aman.

Menyimpan data berdasarkan organisasi

Setiap organisasi Apigee Edge memiliki sekumpulan penyimpanan yang aman, dan setiap lingkungan memiliki toko tambahan. Dengan demikian, organisasi yang memiliki persyaratan keamanan berbeda untuk backend yang berbeda dapat menyimpan nilai aman yang berbeda. Bagian ini menjelaskan penyimpanan berdasarkan organisasi.

Penggunaan

  • Ambil nama semua penyimpanan aman:
GET /o/{organization}/vaults
  • Mengambil daftar entri (tetapi bukan nilai terenkripsinya) dari vault bernama.
GET /o/{organization}/vaults/{name}
  • Mengambil satu entri (tetapi bukan nilai terenkripsinya).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Buat vault baru bernama "name" tanpa nilai:

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
  • Masukkan entri baru di vault dengan nama dan nilai aman yang ditentukan.

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
  • Ganti nilai entri yang ditentukan dengan nilai baru:

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

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

  -d 'verymoresecret' -X PUT
  • Menampilkan "true" jika nilai yang ditentukan sesuai dengan nilai yang sudah ada di toko, dan "false" jika tidak. Dalam kedua kasus tersebut, kode status HTTP 200 akan digunakan. Ini dapat digunakan untuk memvalidasi isi toko. Perhatikan bahwa setelah disimpan, tidak ada API yang dapat mengambil nilai yang tidak dienkripsi:

    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
    
  • Hapus entri vault yang ditentukan:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Hapus seluruh vault.

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

Menyimpan data berdasarkan lingkungan

Anda juga dapat menyimpan data berdasarkan lingkungan Apigee Edge. Dalam hal ini, data dimasukkan ke dalam lingkungan (seperti "prod"). Dengan fitur ini, pada runtime, nilai yang berbeda dapat disimpan, bergantung pada tempat skrip Node.js dijalankan.

Penggunaan

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}

Mengambil nilai dari penyimpanan aman di Node.js

Menginstal apigee-access

Untuk menggunakan apigee-access dalam kode Node.js, Anda harus menginstalnya terlebih dahulu. Contoh:

  1. {i>cd<i} ke direktori {i>root<i} proyek Anda.
  2. Jalankan: npm install apigee-access --save

Fungsi

Fungsi getVault() akses apigee digunakan untuk mengambil vault tertentu, baik per organisasi maupun berdasarkan lingkungan saat ini tempat kode Node.js dijalankan.

getVault() menggunakan dua parameter:

  • Nama penyimpanan aman yang akan diambil.
  • Cakupan, yang mungkin berupa organization atau environment. Jika tidak ditentukan, organization diasumsikan sebagai rating tertinggi.

Objek yang ditampilkan oleh getVault() memiliki dua fungsi:

  • getKeys(callback): Menampilkan array yang berisi nama semua kunci di vault yang ditentukan. Fungsi callback akan dipanggil dengan dua argumen: Error jika operasi gagal, atau "undefined" jika tidak, dan array sebenarnya sebagai argumen kedua.
  • get(key, callback): Menampilkan nilai aman yang terkait dengan kunci tertentu. Fungsi callback akan dipanggil dengan dua argumen: Error jika operasi gagal, atau "undefined" jika tidak, dan nilai sebenarnya sebagai argumen kedua.

Contoh

Berikut adalah contoh Node.js yang menunjukkan cara mendapatkan nilai dari vault. Modul apigee-access diinstal agar kode ini berfungsi, seperti yang dijelaskan sebelumnya.

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