현재 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
을 사용하려면 먼저 이를 설치해야 합니다. 예를 들면 다음과 같습니다.
- cd를 눌러 프로젝트의 루트 디렉터리로 이동합니다.
- 실행:
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 });