Como usar o armazenamento seguro

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Como usar as APIs do serviço de armazenamento seguro

O serviço de armazenamento seguro permite armazenar dados confidenciais, como credenciais de segurança para serviços de back-end, em formato criptografado. Assim, eles ficam protegidos contra uso não autorizado. Essas áreas de armazenamento seguras são chamadas de "seguros" e podem ser definidas para os níveis 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 procurar o valor no ambiente de execução.

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

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

Como armazenar dados por organização

Cada organização do Apigee Edge tem um conjunto de armazenamentos seguros, e cada ambiente tem um armazenamento extra. Dessa forma, as organizações que têm requisitos de segurança distintos para back-ends distintos podem armazenar valores seguros distintos. 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}
  • Recuperar uma única entrada (mas não o valor criptografado dela).

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

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
  • Retorna "true" se o valor especificado corresponde ao que já está na loja e "false" se não corresponder. Em ambos os casos, é usado um código de status HTTP 200. 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
    
  • Excluir a entrada do Vault especificada:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • Excluir o cofre inteiro.

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

Como armazenar dados por ambiente

Também é possível armazenar dados pelo ambiente do Apigee Edge. Nesse caso, o escopo dos dados é definido para um ambiente (como "prod"). Com esse recurso, é possível armazenar diferentes valores no ambiente de execução, 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

Instalando 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

remotas

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 do 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 for especificado, organization será usado.

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

  • getKeys(callback): retorna uma matriz contendo os nomes de todas as chaves no Vault especificado. A função de callback é chamada com dois argumentos: um erro em caso de falha da operação ou "indefinida" em caso negativo 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 "indefinida" se não ocorrer, e o valor real como o segundo argumento.

Exemplo

Este é um exemplo em Node.js que demonstra como acessar um valor de um Vault. O módulo apigee-access 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
});