보안 저장소 사용

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

보안 저장소 서비스 API 사용

보안 저장소 서비스를 사용하면 백엔드 서비스의 보안 사용자 인증 정보와 같은 민감한 정보를 암호화된 형식으로 저장하여 무단 사용으로부터 보호할 수 있습니다. 이러한 안전한 스토리지 영역을 'Vault'라고 하며, Apigee Edge의 조직 수준 또는 환경 수준으로 범위를 지정할 수 있습니다.

예를 들어 보안 저장소는 데이터베이스 서버와 같은 보호되는 리소스에 도달하기 위해 Node.js 애플리케이션에서 요구하는 비밀번호를 저장하는 데 사용될 수 있습니다. 배포 전에 API를 통해 보안 저장소에 비밀번호를 저장할 수 있으며 애플리케이션이 런타임에 값을 조회할 수 있습니다.

따라서 소스 코드 제어 시스템에 비밀번호를 포함하거나 이를 Node.js 소스 코드와 함께 Apigee Edge에 배포할 필요가 없습니다. 대신 Apigee에서 암호화된 형식으로 이 값을 저장하며 이 값은 애플리케이션에서 필요할 때만 검색됩니다.

Secure Store API에 대한 문서는 Vault를 참조하세요. 다음 섹션에서는 보안 저장소 API 사용에 관한 개요도 제공합니다.

조직별 데이터 저장

각 Apigee Edge 조직에는 보안 저장소 집합이 있으며 각 환경에는 추가 저장소가 있습니다. 이렇게 하면 백엔드마다 보안 요구사항이 다른 조직에서도 서로 다른 보안 값을 저장할 수 있습니다. 이 섹션에서는 조직별 저장에 대해 설명합니다.

사용

  • 모든 보안 저장소의 이름을 검색합니다.
GET /o/{organization}/vaults
  • 이름이 지정된 Vault에서 항목 목록 (암호화된 값이 아님)을 가져옵니다.
GET /o/{organization}/vaults/{name}
  • 단일 항목 (암호화된 값은 아님)을 검색합니다.

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • 값이 없는 'name'이라는 새 Vault를 만듭니다.

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
  • Vault에 지정된 이름과 보안 값으로 새 항목을 입력합니다.

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'를 반환합니다. 두 경우 모두 HTTP 상태 코드 200이 사용됩니다. 저장소의 콘텐츠를 검증하는 데 사용할 수 있습니다. 저장된 후에는 암호화되지 않은 값을 검색하는 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
    
  • 지정된 Vault 항목을 삭제합니다.
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • 전체 Vault를 삭제합니다.

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

환경별 데이터 저장

Apigee Edge 환경별로 데이터를 저장할 수도 있습니다. 이 경우 데이터의 범위는 환경 (예: '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을 사용하려면 먼저 이를 설치해야 합니다. 예를 들면 다음과 같습니다.

  1. cd를 눌러 프로젝트의 루트 디렉터리로 이동합니다.
  2. 실행: npm install apigee-access --save

함수

apigee-access getVault() 함수는 조직별 또는 Node.js 코드가 실행되는 현재 환경에 따라 특정 Vault를 검색하는 데 사용됩니다.

getVault()는 다음 두 매개변수를 사용합니다.

  • 검색할 보안 저장소의 이름입니다.
  • 범위(organization 또는 environment일 수 있음) 지정하지 않으면 organization으로 간주됩니다.

getVault()에 의해 반환되는 객체에는 다음 두 함수가 있습니다.

  • getKeys(callback): 지정된 Vault에 있는 모든 키의 이름이 포함된 배열을 반환합니다. 콜백 함수는 두 개의 인수를 사용하여 호출됩니다. 작업이 실패하면 오류, 실패하는 경우 '정의되지 않음', 실제 배열이 두 번째 인수로 호출됩니다.
  • get(key, callback): 특정 키와 연결된 보안 값을 반환합니다. 콜백 함수는 두 개의 인수를 사용하여 호출됩니다. 작업이 실패하면 오류, 실패하는 경우 '정의되지 않음', 실제 값이 두 번째 인수로 호출됩니다.

다음은 Vault에서 값을 가져오는 방법을 보여주는 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
});