Como usar o armazenamento seguro

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Como usar as APIs de serviço de armazenamento seguro

O serviço de armazenamento seguro permite armazenar dados sensíveis, como credenciais de segurança para serviços de back-end, em formato criptografado para que eles sejam protegidos contra uso não autorizado. Essas áreas de armazenamento seguro são chamadas de "cofres" e podem ser definidas no nível da organização ou do ambiente no Apigee Edge.

Por exemplo, o armazenamento seguro pode ser usado para armazenar uma senha exigida por um aplicativo Node.js para acessar um recurso protegido, como um servidor de banco de dados. É possível armazenar a senha no armazenamento seguro por meio de uma API antes da implantação, e o aplicativo pode pesquisar o valor no momento da execução.

Ao fazer isso, não é necessário incluir a senha no sistema de controle de código-fonte ou implantá-la junto com o código-fonte do Node.js no Apigee Edge. Em vez disso, o valor é armazenado pela Apigee de forma criptografada e só será recuperado quando o aplicativo precisar dele.

Para conferir a documentação sobre as APIs de armazenamento seguro, consulte Cofres. As seções a seguir também oferecem uma visão geral do uso da API de armazenamento seguro.

Armazenar dados por organização

Cada organização do Apigee Edge tem um conjunto de armazenamentos seguros, e cada ambiente tem um armazenamento adicional. Dessa forma, as organizações que têm requisitos de segurança diferentes para back-ends diferentes podem armazenar valores seguros diferentes. Esta seção descreve o armazenamento por organização.

Uso

  • Recupere os nomes de todos os armazenamentos seguros:
GET /o/{organization}/vaults
  • Recupere uma lista de entradas (mas não os valores criptografados) de um cofre nomeado.
GET /o/{organization}/vaults/{name}
  • Recupere uma única entrada (mas não o valor criptografado).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • Crie um novo cofre chamado "name" sem valores:

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
  • Coloque uma nova entrada no cofre com o nome especificado e o valor seguro.

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
  • Substitua o valor da entrada especificada por um novo valor:

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

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

  -d 'verymoresecret' -X PUT
  • Retorne "true" se o valor especificado corresponder ao que já está no repositório e "false" se não corresponder. Em ambos os casos, um código de status HTTP 200 é usado. Isso pode ser usado para validar o conteúdo do repositório. Depois de armazenado, não há API para recuperar o valor não criptografado:

    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
  • Exclua a entrada de cofre especificada:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Exclua todo o cofre.

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

Armazenar dados por ambiente

Também é possível armazenar dados por ambiente do Apigee Edge. Nesse caso, os dados são definidos para um ambiente (como "prod"). Com esse recurso, no momento da execução, valores diferentes podem ser armazenados dependendo de onde o script Node.js está sendo executado.

Uso

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}

Como recuperar valores do armazenamento seguro em Node.js

Como instalar o apigee-access

Para usar apigee-access no código Node.js, primeiro é necessário instalá-lo. Exemplo:

  1. Acesse o diretório raiz do projeto.
  2. Execute: npm install apigee-access --save

Funções

A função apigee-access getVault() é usada para recuperar um cofre específico, por organização ou com base no ambiente atual em que o código Node.js está sendo executado.

getVault() usa dois parâmetros:

  • O nome do armazenamento seguro a ser recuperado.
  • O escopo, que pode ser organization ou environment. Se não especificado, então organization será usado.

O objeto retornado por getVault() tem duas funções:

  • getKeys(callback): retorna uma matriz que contém os nomes de todas as chaves no cofre especificado. A função de callback será chamada com dois argumentos: um erro se a operação falhar ou "undefined" se não falhar, e a matriz real como o segundo argumento.
  • get(key, callback): retorna o valor seguro associado a uma chave específica. A função de callback será chamada com dois argumentos: um erro se a operação falhar, ou "undefined" se não falhar, e o valor real como o segundo argumento.

Exemplo

Confira um exemplo de Node.js que demonstra como receber um valor de um cofre. O apigee-access módulo está instalado para que esse código funcione, conforme explicado anteriormente.

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