Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요. info
Edge Microgateway v. 3.2.x
개요
이 설정 가이드의 단계를 완료하면 API 요청을 처리할 수 있는 완전히 구성된 Edge Microgateway 설치가 완료됩니다. Edge Microgateway를 통해 백엔드 타겟에 보안 API 호출을 수행하여 설정을 테스트합니다. 또한 Microgateway에 스파이크 방지 플러그인을 추가하는 방법도 알아봅니다.
이 가이드는 다음 부분으로 나뉩니다.
- 선행 조건: Edge Microgateway 설치
- 1부: Edge Microgateway 구성
- 2부: Apigee Edge에서 항목 만들기
- 3부: Edge Microgateway 운영
- 4부: Edge Microgateway 보안
- 5부: 급증 저지 플러그인 추가
- 6부: Apigee Edge에서 분석 데이터 보기
사전 요구사항: Edge Microgateway 설치
Edge Microgateway 설치의 안내를 따릅니다. 설치를 완료하면 이 튜토리얼의 단계를 따를 수 있습니다.
1부: Edge Microgateway 구성
이 부분에서는 명령줄 인터페이스 (CLI) 명령어를 사용하여 Apigee Edge와 통신하도록 Edge Microgateway를 구성합니다.
- Apigee Edge Cloud를 사용하는 경우 Apigee Edge Cloud 구성 단계를 따르세요.
- Apigee Private Cloud를 사용하는 경우 Apigee Edge Private Cloud 단계를 따르세요.
Apigee Edge Cloud 구성 단계
Apigee Edge Cloud에서 Edge Microgateway를 사용하려면 다음 단계를 따르세요.
- Edge Microgateway를 초기화합니다 (이 단계는 한 번만 실행하면 됨).
edgemicro init
default.yaml파일이라는 구성 파일이 홈 디렉터리의.edgemicro이라는 하위 디렉터리에 배치되었습니다. 지금 확인하여 이 파일이 있는지 확인하세요.ls ~/.edgemicro default.yaml
참고: Edge Microgateway 문서에서는 홈 디렉터리를 물결표 (
~)로 참조합니다. 이는 UNIX 바로가기입니다. Windows를 사용하는 경우 물결표를 지원하지 않는 셸을 실행하면 홈 디렉터리를 참조하는 명령어에서 물결표를 적절한 환경 변수로 대체해야 합니다. 예를 들면%USERPROFILE%/.edgemicro입니다.- 모든 CLI 명령어에는 도움말 기능이 있습니다. edgemicro configure 명령어의 도움말을 인쇄합니다.
edgemicro configure -h
- 다음 명령어를 실행하여 Edge Microgateway를 구성합니다.
edgemicro configure -o [org] -e [env] -u [username]
각 항목의 의미는 다음과 같습니다.
org:Edge 조직 이름 (조직 관리자여야 함)env:조직의 환경 (예: test 또는 prod)username:Apigee 계정과 연결된 이메일 주소입니다.
참고: configure 명령어는 추가 매개변수를 허용합니다. 전체 목록은 Apigee Edge Cloud용 Edge Microgateway 구성을 참고하세요.
예
edgemicro configure -o docs -e test -u jdoe@example.com
출력
./edgemicro configure -o docs -e test -u jdoe@apigee.com password: current nodejs version is v12.5.0 current edgemicro version is 3.1.0 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM error checking for cert. Installing new cert. creating KVM adding private_key adding public_key configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1 saving configuration information to: $HOME/.edgemicro/docs-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCQ2mJZJGbPPTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTcwOTA3MjA0ODA4WhcNMTcwOTA4MjA0ODA4WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDw yzmqi5CelqqtTr6IaFe1ssrMXEDnNtkBh95U6F5zHLsNQhJcyNUAO9um6FLMSqSd fTztXfWUZzDgmbb6sfbx/9cqpvQ8TIjxyIz8xGM9H4legRQmsCQoYGkLjpPE5ZOa wZrI5IaVm8LY6vbopPFwxgKOQ9bphx6k9Na055DmNyZAOTMD+4I0m/RdsrnZnYih 3DaFj1tXHKZI1jfAt/QOif5Nmk4+JckYwF+9HBysWUbbvj/gnBjVYF2Isb7q7oFD lPGhwFoIebMqHMWD8lG7+9RJDO9dDV6f1g1/9waIrq1D+MoVXos9VMstNrPp0cKF Ue+lAkct8tylH+2MosF7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJMRdcQh3ayy csVVT4TYwxV7MKWRfhDRz6X+MM9frB+Z7sI4+ZoZbXKOoZI2hSjmbdLpkNR/m9eJ +1Uk0JKmpSY7Q+1rRrvcHsWNysGf4z+zDJXYECTrtSnXKBXtb9SJ8JAfoZOQD0lA zmKuJjQMLTdiYMHOBR6ZWnaKaRvrQwGHcQrheJm4a90XgZF6jcRR8CPrBzkmsbCp IU/Ux3E17wDGYPxjJs5otyQG8rN/88RGyaSeXK8rjKr9D4KFGJeasXBKmTG2afAr yfBvS4h6s42FCOR/eLpmMllVoO9up71Fa3EtV+aK+FNNY9uMbgUHeLQE7z9nn06q PTmvExZLkLQ= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb secret: 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
Apigee 프라이빗 클라우드 구성 단계
Apigee Private Cloud에서 Edge Microgateway를 사용하려면 다음 단계를 따르세요.
- Edge Microgateway를 초기화합니다 (이 단계는 한 번만 실행하면 됨).
edgemicro init
- edgemicro private configure 명령어의 도움말 정보를 출력합니다. 이 방법으로 모든 Edge Microgateway CLI 명령어 또는 명령어 옵션에 대한 도움말을 출력할 수 있습니다.
edgemicro private configure -h
- 다음 명령어를 실행합니다. Apigee Edge Private Cloud 계정에 관한 표준 정보(조직 이름, 환경 이름, 사용자 이름(이메일 주소), 비밀번호, 관리 서버 IP, 라우터 IP)가 필요합니다. 이 명령어를 사용하려면 Edge 조직 관리자여야 합니다.
edgemicro private configure -o [org] -e [env] -u [username] -r [runtime_url] -m [mgmt_url] -v [virtual_host]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.runtime_url은 프라이빗 클라우드 인스턴스의 런타임 URL입니다.mgmt_url은 프라이빗 클라우드 인스턴스의 관리 서버 URL입니다.username은 Apigee 계정과 연결된 이메일 주소입니다.-
virtual_host는 쉼표로 구분된 가상 호스트 이름 목록입니다. 기본값은default,secure입니다.
예
edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.52.106:9001 -m http://192.162.52.106:8080 -v default
또는 myorg-test.mycompany.com의 가상 호스트 별칭이 있는 경우 다음과 같은 명령어를 사용합니다.
edgemicro private configure -o docs -e test -u jdoe@example.com -r myorg-test.mycompany.com -m http://192.162.52.106:8080 -v default
출력
delete cache config checking for previously deployed proxies configuring edgemicro internal proxy deploying edgemicro internal proxy deploying edgemicro-auth app copy auth app into tmp dir copy config into tmp deer Give me a minute or two... this can take a while... App edgemicro-auth added to your org. Now adding resources. checking org for existing KVM error checking for cert. Installing new cert. creating KVM adding private_key adding public_key configuring host http://192.168.52.106:9001 for region dc-1 saving configuration information to: $HOME/.edgemicro/jdoe-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWsKWBDP9o Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik245yfBku7olooXKRKTRKOUoXa q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz pFkIxepyr/0= -----END CERTIFICATE----- The following credentials are required to start edge micro key: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4ad09389b645147151ba3 secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac10ace944c097a726a1263 edgemicro configuration complete!
설치 확인
다음 명령어를 실행하여 설치를 확인합니다. 오류가 보고되지 않으면 모든 항목이 올바르게 설정된 것이므로 Edge Microgateway를 시작할 수 있습니다.
edgemicro verify -o [org] -e [env] -k [key] -s [secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.key는 이전에 구성 명령어에 의해 반환된 키입니다.secret는 이전에 구성 명령어에 의해 반환된 키입니다.
예
edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c
구성 정보
지금까지 수행한 모든 구성을 통해 Edge Microgateway가 Apigee Edge에 자체적으로 부트스트랩할 수 있습니다. 부트스트랩이 성공하면 Edge Microgateway가 Apigee Edge에서 추가 구성 정보의 페이로드를 가져옵니다.
이 구성 정보는 어떤 용도로 사용되나요? 이 튜토리얼의 다음 부분에서 살펴보겠지만 Edge Microgateway가 시작되면 Apigee Edge에서 Edge Microgateway 인식 특수 API 프록시 목록을 수신해야 합니다. 이 튜토리얼의 다음 부분에서는 Microgateway를 인식하는 프록시를 만듭니다. Edge Microgateway는 클라이언트가 이러한 Microgateway 인식 API 프록시가 앞에 있는 API만 호출하도록 제한하며, 클라이언트는 각 호출에 대해 유효한 보안 토큰을 제시해야 합니다 (기본값). 이러한 프록시에 대해 자세히 알아보려면 Edge Microgateway 개요의 'Edge Microgateway 인식 프록시에 대해 알아야 할 사항'을 참고하세요.
Edge 조직 관리자는 Edge Microgateway를 인식하는 프록시를 다른 프록시와 마찬가지로 Edge 제품에 추가할 수 있다는 점에 관심을 가질 것입니다. 제품과 개발자 앱을 사용하여 클라이언트별 보안 토큰을 생성하여 Edge Microgateway를 통해 호출되는 API에 대한 액세스를 제어할 수 있습니다. 여기서도 Apigee Edge에서 API 프록시, 제품, 개발자 앱을 사용하는 것과 동일한 패턴이 적용됩니다. 제품에 대해 자세히 알아보려면 Edge 문서의 API 제품이란 무엇인가요?를 참고하세요.
다음으로 Edge Microgateway 인식 프록시를 만드는 방법을 살펴보고 그 후에 Edge Microgateway를 시작하고 설정을 테스트합니다.
2부: Apigee Edge에서 엔티티 만들기
이 파트에서는 Edge에 다음 항목을 만듭니다.
-
마이크로게이트웨이 인식 프록시 - Edge Microgateway가 시작 시 검색할 수 있는 특수 프록시입니다. 마이크로게이트웨어를 인식하는 프록시에는 따라야 하는 이름 지정 규칙이 있습니다. 이름은
edgemicro_로 시작해야 합니다. 예를 들면edgemicro_hello또는edgemicro_userinfo입니다. Edge Microgateway가 시작되면 Edge Microgateway를 시작할 때 지정한 동일한 Edge 조직 및 환경에서 마이크로게이트웨이 인식 프록시 목록을 Edge에서 가져옵니다.
Edge Microgateway는 각 마이크로게이트웨이 인식 프록시에 대해 프록시의 타겟 URL과 기본 경로를 가져옵니다. Microgateway 인식 프록시는 Edge Microgateway에서 생성된 분석 데이터를 Edge 플랫폼의 프록시와 연결하는 편리한 방법도 제공합니다. Microgateway는 API 호출을 처리하므로 분석 데이터를 Edge에 비동기적으로 푸시합니다. 애널리틱스 데이터는 다른 프록시와 마찬가지로 Edge 애널리틱스 UI의 마이크로게이트웨이 인식 프록시 이름 아래에 표시됩니다.
- 제품, 개발자, 개발자 앱 - Edge Microgateway는 제품, 개발자, 개발자 앱을 사용하여 OAuth2 액세스 토큰 또는 API 키 보안을 사용 설정합니다. Edge Microgateway가 시작되면 Apigee Edge 조직에서 모든 제품 구성을 다운로드합니다. 이 정보는 API 키 또는 OAuth2 액세스 토큰을 사용하여 Edge Microgateway를 통해 이루어진 API 호출을 확인하는 데 사용됩니다.
1. Edge에서 Edge Microgateway 인식 API 프록시 만들기
- Apigee Edge에서 조직에 로그인합니다.
- 측면 탐색 메뉴에서 개발 > API 프록시를 선택합니다.
- +프록시를 클릭합니다. 프록시 빌드 마법사가 호출됩니다.
- 마법사의 첫 번째 페이지에서 리버스 프록시 (가장 일반적)를 선택합니다.
- 다음을 클릭합니다.
- 마법사의 세부정보 페이지에서 다음과 같이 구성합니다. 마법사를 표시된 대로 정확하게 작성해야 합니다.
- 프록시 이름: edgemicro_hello
- 프록시 기본 경로: /hello
- 기존 API: http://mocktarget.apigee.net/
- 다음을 클릭합니다.
- 마법사의 보안 페이지에서 통과 (없음)을 선택합니다.
- 다음을 클릭합니다.
- 마법사의 가상 호스트 페이지에서 기본값을 수락합니다.
- 다음을 클릭합니다.
- 마법사의 빌드 페이지에서 프록시 설정을 검토합니다. test 환경이 선택되어 있는지 확인합니다.
- 빌드 및 배포를 클릭합니다.
2. 제품 만들기
- 측면 탐색 메뉴에서 게시 > API 제품을 선택합니다.
- +API 제품을 클릭합니다. 제품 세부정보 페이지가 표시됩니다.
- 다음과 같이 제품 세부정보 페이지를 작성합니다.
- 이름: EdgeMicroTestProduct
- 표시 이름: EdgeMicroTestProduct
- 환경: 테스트 및 프로덕션
- 액세스: 공개
- Key Approval Type: Automatic(키 승인 유형: 자동)
- 리소스에서 +API 프록시를 클릭합니다.
- edgemicro-auth를 선택합니다.
- +API 프록시를 다시 클릭합니다.
- edgemicro_hello를 선택합니다.
- + 맞춤 리소스를 선택합니다.
- /**를 입력합니다.
- + 맞춤 리소스를 다시 선택합니다.
- /를 입력합니다.
- 저장을 클릭합니다.
3. (선택사항) 테스트 개발자 만들기
이 튜토리얼에서는 다음 단계에서 개발자 앱을 만들 때 기존 개발자를 사용할 수 있습니다. 원하는 경우 지금 테스트 개발자를 만드세요.
- 측면 탐색 메뉴에서 게시 > 개발자를 선택합니다.
- + Developer를 클릭합니다.
- 대화상자를 작성하여 테스트 개발자를 만듭니다.
4. 개발자 앱 만들기
이 앱의 클라이언트 사용자 인증 정보를 사용하여 Edge Microgateway를 통해 보안 API 호출을 실행합니다.
- 측면 탐색 메뉴에서 게시 > 앱을 선택합니다.
- + 앱을 클릭합니다. 개발자 앱 세부정보 페이지가 표시됩니다.
- 다음과 같이 개발자 앱 페이지를 작성합니다.
- 이름: EdgeMicroTestApp
- 표시 이름: EdgeMicroTestApp
- 개발자: 테스트 개발자를 만든 경우 이를 선택합니다. 또는 이 튜토리얼의 목적으로 기존 개발자를 사용할 수 있습니다.
-
사용자 인증 정보:
- 만료를 사용 안함으로 선택합니다.
- + 제품을 클릭하고 EdgeMicroTestProduct(방금 만든 제품)을 선택합니다.
- 저장을 클릭합니다.
- 앱 목록 페이지로 돌아갑니다.
- 방금 만든 앱 EdgeMicroTestApp을 선택합니다.
- 고객 키 및 고객 보안 비밀 옆에 있는 표시를 클릭합니다.

3부: Edge Microgateway 운영
이제 Edge에 구성된 Edge Microgateway와 하나 이상의 Edge Microgateway 인식 프록시가 있으므로 Edge Microgateway를 시작할 차례입니다. Edge Microgateway HTTP 서버가 로컬 머신에서 실행되고 API 호출이 해당 서버로 직접 이루어집니다.
1. Edge Microgateway 시작
edgemicro start 명령어를 사용하여 Edge Microgateway를 시작합니다.
- edgemicro configure 명령어를 실행했을 때 이전에 반환된 키가 있어야 합니다. 출력은 다음과 같이 표시됩니다.
You need key and secret while starting edgemicro instance key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
- (선택사항)
edgemicro start명령어의 도움말 정보를 인쇄합니다.
edgemicro start -h
- Edge Microgateway를 시작하려면 다음 명령어를 실행합니다.
edgemicro start -o [org] -e [env] -k [key] -s [secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.key는 이전에 구성 명령어에 의해 반환된 키입니다.secret는 이전에 구성 명령어에 의해 반환된 키입니다.
예
edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824
출력
시작 명령어는 Apigee Edge에서 많은 구성 정보를 가져옵니다 (터미널 창으로 스크롤됨). 출력에는 검색된 마이크로게이트웨이 인식 프록시 및 제품 목록이 표시됩니다. 출력 끝에 다음과 같은 내용이 표시됩니다.
... current nodejs version is v12.5.0 current edgemicro version is 3.1.0 info: jwk_public_keys download from null returned 200 undefined info: jwt_public_key download from https://docs-test.apigee.net/edgemicro-auth/publicKey returned 200 OK info: products download from https://docs-test.apigee.net/edgemicro-auth/products returned 200 OK info: config download from https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test returned 200 OK PROCESS PID : 17991
- 마이크로게이트웨이 상태를 확인합니다. 다른 터미널 창에서 Edge Micro를 시작한 동일한 디렉터리로 cd하고 다음 명령어를 입력합니다.
edgemicro status current nodejs version is v12.5.0 current edgemicro version is 3.1.0 edgemicro is running with 8 workers
무슨 문제가 있나요?
Edge Microgateway 구성 정보 페이로드가 Apigee Edge에서 다운로드되고 로컬에 캐시됩니다. 이러한 정보에는 다음이 포함됩니다.
- 이전에 암호화된 키-값 맵 (KVM)에 만들어 저장한 공개 키
- 조직/환경에 있는 모든 Edge Microgateway 인식 프록시의 표현입니다. 이러한 프록시는 모두 edgemicro_ 접두사로 이름이 지정됩니다.
- 조직/환경에 있는 모든 API 제품의 표현입니다.
이 정보를 통해 Edge Microgateway는 처리할 수 있는 프록시와 프록시 경로를 알 수 있습니다. 제품 정보를 사용하여 보안을 적용합니다 (개발자 앱 키가 제품과 연결된 Apigee Edge에서 API 프록시가 하는 방식과 정확히 동일). 잠시 후 Edge Microgateway를 보호하는 단계를 살펴보겠습니다.
2. Edge Microgateway 테스트
Edge Microgateway가 실행되면 프록시를 호출할 수 있습니다. edgemicro_hello 프록시의 구성은 Edge Microgateway를 시작할 때 Edge에서 다운로드되었습니다. 프록시 기본 경로는 /hello입니다.
Edge Microgateway를 테스트하려면 기본 경로로 시작하여 리소스 경로 /echo를 추가합니다. 기본 경로 뒤에 나오는 모든 항목 (쿼리 매개변수 포함)은 백엔드 타겟에 그대로 전달됩니다.
curl -i http://localhost:8000/hello/echo
{"error":"missing_authorization","error_description":"Missing Authorization header"}요청과 함께 유효한 API 키 또는 액세스 토큰을 전송하지 않았기 때문에 이 오류가 발생합니다. 기본적으로 Edge Microgateway는 모든 API 호출에 API 키 또는 액세스 토큰이 필요합니다. 튜토리얼의 다음 단계에서는 이 API를 적절하게 보호하고 유효한 액세스 토큰을 획득하여 요청에 포함하는 방법을 보여줍니다.
4. Edge Microgateway 중지
- 별도의 터미널 창에서 Edge Microgateway를 시작한 동일한 디렉터리로
cd합니다. - 중지 명령어를 입력합니다.
edgemicro stop
4부: Edge Microgateway 보안
API 키 또는 액세스 토큰을 사용하여 Edge Microgateway를 통해 이루어진 API 호출을 보호할 수 있습니다.
OAuth2 액세스 토큰으로 API 호출 보안
OAuth2 액세스 토큰으로 API 호출을 인증하려면 다음 단계를 따르세요.
1. 필요한 키 가져오기
- Edge UI에서 이전에 만든 개발자 앱으로 이동합니다. 앱 이름이 EdgeMicroTestApp이었습니다.
- 개발자 앱 페이지에서 고객 키와 고객 보안 비밀을 표시하고 복사합니다. 다음 단계에서 액세스 토큰을 가져오려면 이 값이 필요합니다.
2. 액세스 토큰 가져오기
액세스 토큰을 가져오는 방법에는 두 가지가 있습니다. 두 가지 방법을 모두 보여드리겠습니다.
CLI를 사용하여 액세스 토큰 가져오기
첫 번째 방법은 편리하며 튜토리얼 전반에서 사용한 패턴을 따릅니다. 두 번째 방법은 일반적으로 토큰을 요청해야 하는 클라이언트 앱 개발자에게 더 유용합니다. 실제 토큰 엔드포인트는 Edge Microgateway를 구성할 때 배포된 edgemicro-auth 프록시에 구현됩니다.
- (선택사항) token get 명령어의 도움말을 확인합니다.
edgemicro token get -h
- -i 및 -s 매개변수에서 Apigee Edge에 만든 개발자 앱의 고객 키 및 고객 보안 비밀 값을 대체하여 토큰을 생성합니다.
edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.consumer_id는 이전에 만든 개발자 앱의 소비자 ID입니다.consumer_secret은 이전에 만든 개발자 앱의 컨슈머 보안 비밀입니다.
예
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
출력 (샘플)
current nodejs version is v12.5.0 { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIsVkZ2VNaWNyb1Rlc 3RQcm9kdWN0IlmlhdCI6MTQ3ODIwODMzMiwiZXhwIjoxNDc4MjEwMTMxfQ. v3Q8Rs0W9FO_XpERwIAMMXhjGamRmmmWgrAy1wJv0-99oajx5ASI5qjNubM nCF14xxwlVXHcz1VfedA8Nx7Ih145zhWWuPKL9muzhXXnVBRFeBMeeLqJk4 QQ7Bhst7xH_68nJSTE20Egu95DHOCUemfrepDFH0VggY4BmzvwLkBNfz_te E_YqwKZbpGOLMdKK1vMk0fk0x19SieIMS_aJYeOAklrzUhnFxWJFrsAWsax NLx_BbQcZzYfK1JSDUrhRNVBuPHMnGjNA_oHw2J4qa6Hsp62PfchG-DIW_t -0BFnYf3rYXmqyNORqFrOMdl4VxqQ' }
(선택사항) API를 사용하여 토큰 가져오기
curl 또는 다른 HTTP 클라이언트를 사용하여 Edge 프록시를 호출하는 데 익숙한 경우 edgemicro token 명령어를 사용하는 대신 토큰 엔드포인트를 직접 호출할 수 있습니다. 다음은 curl 예시입니다. URL에서 조직 및 환경 이름을 대체하고 콜론으로 구분된 소비자 키:소비자 보안 비밀 값을 기본 인증 헤더에 전달하면 됩니다.
curl -i -X POST "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{ "client_id": "your consumer key", "client_secret": "your consumer secret", "grant_type": "client_credentials" }' -H "Content-Type: application/json"
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.client_id는 이전에 만든 개발자 앱의 소비자 ID입니다.client_secret은 이전에 만든 개발자 앱의 컨슈머 보안 비밀입니다.
출력 (샘플)
edgemicro token CLI 명령어를 사용했는지 curl을 사용하여 엔드포인트를 호출했는지에 관계없이 이 명령어는 클라이언트 호출을 수행하는 데 사용할 수 있는 서명된 액세스 토큰을 반환합니다. 예를 들면 다음과 같습니다.
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls
b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3
OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFsnhB0Yvg6JKWxKWBDP9o
Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik241yfBku7olooXKRKTRKOUoXa
q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd
xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho
7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L
hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j
gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ
57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X
s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd
ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ
1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz
pFkIxepyr/0=
3. Edge Microgateway에서 구성 확인
$HOME/.edgemicro/org-env-config.yaml파일을 엽니다. 이 파일을 찾을 수 없는 경우 Edge Microgateway가 설치된 위치를 참고하세요.- 이러한 oauth 플러그인 속성이 false로 설정되어 있는지 확인합니다. 기본적으로 false이지만 다음을 통해 다시 확인하는 것이 좋습니다.
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
org-env-config.yaml파일에서 oauth 플러그인이 다음과 같이plugins:sequence요소에 추가되었는지 확인합니다.plugins: dir: ../plugins sequence: - oauth
- 파일을 변경하는 경우 실행 중인 Edge Microgateway 인스턴스에 변경사항을 다시 로드합니다. 이 명령어는 다운타임 없이 Edge Microgateway를 재구성합니다.
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.key는 이전에 구성 명령어에 의해 반환된 키입니다.secret는 이전에 구성 명령어에 의해 반환된 키입니다.
예
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
4. API를 안전하게 호출하세요
이제 액세스 토큰을 사용하여 안전하게 API를 호출할 수 있습니다. 예를 들면 다음과 같습니다.
curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl 9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PL30Y6uK1W1f2ONPEsBDB_BT31c6 IsjWGfwpz-p6Vak8r767tAT4mQAjuBpQYv7_IU4DxSrnxXQ_q536QYCP4p4YKfBvyqbnW0Rb2CsPFziy_n8HIczsWO s0p4czcK63SjONaUpxV9DbfGVJ_-WrSdqrqJB5syorD2YYJPSfrCcgKm-LpJc6HCylElFDW8dHuwApaWcGRSV3l5Wx 4A8Rr-WhTIxDTX7TxkrfI4THgXAo37p3au3_7DPB_Gla5dWTzV4j93xLbXPUbwTHzpaUCFzmPnVuYM44FW5KgvBrV0 64RgPmIFUxSqBWGQU7Z1w2qFmWuaDljrMDoLEreI2g" http://localhost:8000/hello/echo
API는 모의 서버에서 헤더와 기타 정보를 반환합니다.
API 키로 API 보호
승인을 위해 API 키를 사용하려면 다음 단계를 따르세요.
1. API 키 가져오기
- Edge UI에서 이전에 만든 개발자 앱으로 이동합니다. 앱 이름이 EdgeMicroTestApp이었습니다.
- 개발자 앱 페이지에서 고객 키를 표시하고 복사합니다. 이 값은 API 키입니다. 이 키를 사용하여 인증된 API 호출을 수행합니다.
2. Edge Microgateway에서 구성 확인
$HOME/.edgemicro/org-env-config.yaml.파일을 엽니다. 이 파일을 찾을 수 없는 경우 Edge Microgateway가 설치된 위치를 참고하세요.- 이러한 oauth 플러그인 속성이 false로 설정되어 있는지 확인합니다. 기본적으로 false이지만 원하는 경우 다시 확인할 수 있습니다.
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
org-env-config.yaml파일에서 oauth 플러그인이 다음과 같이plugins:sequence요소에 추가되었는지 확인합니다.plugins: dir: ../plugins sequence: - oauth- 파일을 변경하는 경우 실행 중인 Edge Microgateway 인스턴스에 변경사항을 다시 로드합니다. 이 명령어는 다운타임 없이 Edge Microgateway를 재구성합니다.
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.key는 이전에 구성 명령어에 의해 반환된 키입니다.secret는 이전에 구성 명령어에 의해 반환된 키입니다.
예
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d
3. API 키로 안전하게 API 호출하기
다음과 같이 x-api-key 헤더로 API를 호출합니다. 개발자 앱에서 복사한 고객 키 값이 API 키입니다. 기본적으로 Edge Microgateway는 다음과 같이 x-api-key라는 헤더에 키를 전달할 것으로 예상합니다.
curl -i http://localhost:8000/hello/echo -H "x-api-key: [apikey]"
각 항목의 의미는 다음과 같습니다.
apikey은 EdgeMicroTestApp에서 가져온 소비자 키 값입니다.
예를 들면 다음과 같습니다.
curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'
이제 완전히 작동하고 안전한 Edge Microgateway가 있습니다. 튜토리얼의 다음 부분에서는 Edge Microgateway에 기능을 추가하는 플러그인을 살펴봅니다.
5부: 급증 저지 플러그인 추가
이 파트에서는 스파이크 방지라는 속도 제한 기능을 Edge Microgateway 인스턴스에 추가합니다.
플러그인이란 무엇인가요?
플러그인은 Edge Microgateway에 기능을 추가하는 Node.js 모듈입니다. 플러그인 모듈은 일관된 패턴을 따르며 Edge Microgateway가 알고 있는 위치에 저장되므로 마이크로게이트웨이가 이를 자동으로 검색하고 로드할 수 있습니다. 플러그인에 대한 자세한 내용은 플러그인 사용을 참고하세요.
스파이크 방지 플러그인 추가
급증 저지 플러그인은 트래픽 급증으로부터 보호합니다. Edge Microgateway 인스턴스에서 처리하는 요청 수를 제한합니다.
Edge Microgateway에서 급증 방지는 플러그인 모듈로 구현됩니다. 이 기능을 사용 설정하려면 Edge Microgateway 구성 파일에 추가해야 합니다.
- 이 파일을 찾을 수 없는 경우
$HOME/.edgemicro/org-env-config.yaml.파일을 엽니다.Edge Microgateway가 설치된 위치 - 다음 요소를 추가합니다. 파일의 어느 위치에나 추가할 수 있습니다.
spikearrest: timeUnit: minute allow: 10 buffersize: 0 - 아래와 같이
edgemicro:sequence요소에spikearrest을 추가합니다. 시퀀스 구성 속성은 플러그인 모듈이 실행되는 순서를 Edge Microgateway에 알려줍니다.edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest
- 구성 파일을 저장합니다.
- reload 명령어로 Edge Microgateway를 다시 로드합니다. Edge Microgateway를 시작한 디렉터리에서 이 명령어를 실행해야 합니다.
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.key는 이전에 구성 명령어에 의해 반환된 키입니다.secret는 이전에 구성 명령어에 의해 반환된 키입니다.
예
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- API를 연속으로 여러 번 호출해 보세요. 두 번째 호출 후 Edge Microgateway는 다음 오류를 반환합니다.
{"message":"SpikeArrest engaged","status":503}
스파이크 방지는 지정된 시간 단위로 이루어질 수 있는 호출 수를 평활화하기 때문입니다. 따라서 이 경우 1분에 10번 호출하거나 6초마다 한 번 호출할 수 있습니다.
추가 크레딧: 할당량 플러그인 추가
스파이크 방지를 구성하는 데 사용된 것과 동일한 패턴에 따라 할당량 플러그인과 같은 다른 플러그인을 추가할 수 있습니다. 스파이크 방지와 마찬가지로 할당량 플러그인은 모든 Edge Microgateway 설치에 포함됩니다. 할당량은 앱이 지정된 시간 간격 (분 또는 시간) 동안 API에 제출할 수 있는 요청 메시지 수를 지정합니다.
6부: Apigee Edge에서 분석 보기
이제 완전히 작동하는 Edge Microgateway 인스턴스가 있습니다. 어떤 작업을 수행했는지 살펴보겠습니다. 기본적으로 분석 플러그인 모듈은 Edge Micro에 추가됩니다. 이 모듈은 Edge 애널리틱스 시스템에서 사용하는 분석 데이터를 Edge Micro에서 Apigee Edge로 자동으로 푸시합니다. 다음과 같습니다.
- Apigee Edge에서 조직에 로그인합니다.
- 분석 > 프록시 성능을 선택합니다.
- 프록시 성능 대시보드에서 edgemicro_hello proxy를 선택합니다.
- 그래프에는 총 트래픽, 평균 응답 시간, 평균 타겟 응답 시간 등 프록시의 트래픽 패턴에 관한 정보가 표시됩니다.
Edge 문서의 분석 대시보드 홈페이지에서 Edge 분석 대시보드에 대해 자세히 알아볼 수 있습니다. 플러그인에 대해 자세히 알아보려면 플러그인 사용