Apigee Edge 문서입니다.
Go to the
Apigee X 문서로 이동합니다. info
보안 저장소 서비스 API 사용
보안 저장소 서비스를 사용하면 백엔드 서비스의 보안 사용자 인증 정보와 같은 민감한 데이터를 암호화된 형식으로 저장하여 무단 사용으로부터 보호할 수 있습니다. 이러한 보안 저장 영역을 '볼트'라고 하며 Apigee Edge에서 조직 또는 환경 수준으로 범위를 지정할 수 있습니다.
예를 들어 보안 저장소는 데이터베이스 서버와 같은 보호된 리소스에 도달하기 위해 Node.js 애플리케이션에 필요한 비밀번호를 저장하는 데 사용될 수 있습니다. 배포 전에 API를 통해 보안 저장소에 비밀번호를 저장할 수 있으며 애플리케이션은 런타임에 값을 조회할 수 있습니다.
이렇게 하면 소스 코드 관리 시스템에 비밀번호를 포함하거나 Node.js 소스 코드와 함께 Apigee Edge에 배포할 필요가 없습니다. 대신 Apigee에서 암호화된 형식으로 값을 저장하며 애플리케이션에 필요할 때만 검색됩니다.
보안 저장소 API에 대한 문서는 볼트를 참조하세요. 다음 섹션에서는 보안 저장소 API 사용에 대한 개요도 제공합니다.
조직별 데이터 저장
각 Apigee Edge 조직에는 보안 저장소 집합이 있으며 각 환경에는 추가 저장소가 있습니다. 이렇게 하면 백엔드마다 보안 요구사항이 다른 조직에서 서로 다른 보안 값을 저장할 수 있습니다. 이 섹션에서는 조직별 저장에 대해 설명합니다.
사용
- 모든 보안 저장소의 이름을 검색합니다.
GET /o/{organization}/vaults
- 이름이 지정된 Vault에서 항목 목록 (암호화된 값은 제외)을 검색합니다.
GET /o/{organization}/vaults/{name}
-
단일 항목 (암호화된 값은 제외)을 검색합니다.
GET /o/{organization}/vaults/{name}/entries/{entryname}
-
값이 없는 'name'이라는 새 볼트를 만듭니다.
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
- 지정된 볼트 항목을 삭제합니다.
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
-
전체 볼트를 삭제합니다.
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 코드가 실행되는 현재 환경을 기반으로 특정 볼트를 검색하는 데 사용됩니다.
getVault()는 다음 두 가지 매개변수를 사용합니다.
- 검색할 보안 스토어의 이름입니다.
- 범위는
organization또는environment일 수 있습니다. 지정하지 않으면organization으로 간주됩니다.
getVault()에서 반환된 객체에는 다음 두 가지 함수가 있습니다.
- getKeys(callback): 지정된 볼트의 모든 키 이름이 포함된 배열을 반환합니다. 작업이 실패하면 오류가, 실패하지 않으면 'undefined'가 첫 번째 인수로, 실제 배열이 두 번째 인수로 콜백 함수가 호출됩니다.
- get(key, callback): 특정 키와 연결된 보안 값을 반환합니다. 작업이 실패하면 오류가, 실패하지 않으면 'undefined'가 첫 번째 인수로, 실제 값이 두 번째 인수로 콜백 함수가 호출됩니다.
예
다음은 볼트에서 값을 가져오는 방법을 보여주는 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 });