Como usar o armazenamento seguro

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

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 sejam protegidos contra uso não autorizado. Esses essas áreas de armazenamento seguro são chamadas de "cofres" e podem ter o escopo da organização ou níveis de ambiente no Apigee Edge.

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

Ao fazer isso, não há necessidade de incluir a senha no controle de código-fonte ou implantá-lo junto com o código-fonte Node.js no Apigee Edge. Em vez disso, o valor é armazenados pela Apigee em formato criptografado e só serão recuperados quando o aplicativo precisar reimplantá-lo.

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

Armazenamento de dados por organização

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

Uso

  • Recupere os nomes de todos os armazenamentos seguros:
GET /o/{organization}/vaults
  • Recuperar uma lista de entradas (mas não os valores criptografados) de um cofre nomeado.
GET /o/{organization}/vaults/{name}
  • Recupera uma única entrada (mas não seu 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
  • Fazer 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
  • Retornar "true" se o valor especificado corresponder ao que já está no repositório, e "false" se mas não tem. Nos dois casos, é usado o código de status HTTP 200. Isso pode ser usado para validar o conteúdo da loja. Depois de armazenado, não há API para recuperar os dados não criptografados :

    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 do Vault especificada:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Excluir todo o cofre.

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

Como armazenar dados por ambiente

Também é possível armazenar dados por ambiente do Apigee Edge. Nesse caso, o escopo dos dados é delimitado de produção (como "prod"). Com esse recurso, diferentes valores podem ser armazenados no ambiente de execução dependendo do local em que o script em Node.js é 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}

A recuperação de valores do armazenamento seguro em Node.js

Instalação apigee-access

Para usar apigee-access no seu código Node.js, você precisa instalá-lo primeiro. Exemplo:

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

Funções

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

getVault() recebe dois parâmetros:

  • O nome do armazenamento seguro a ser recuperado.
  • O escopo, que pode ser organization ou environment. Caso contrário especificado, organization é usado.

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

  • getKeys(callback): retorna uma matriz contendo os nomes de todas as chaves na no cofre especificado. A função de retorno de chamada será chamada com dois argumentos: um erro se o falha na operação ou o estado "indefinido" caso contrário, e a matriz real como o segundo argumento.
  • get(key, callback): retorna o valor seguro associado a uma determinada de dados. A função de callback será chamada com dois argumentos: um erro se a operação falhar; ou "indefinido" caso contrário, e o valor real como segundo argumento.

Exemplo

Este é um exemplo de Node.js que demonstra como receber um valor de um Vault. A O módulo apigee-access foi instalado para que esse código funcione, conforme explicado antes.

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