Edge Microgateway 설정 및 구성

Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요.
info

Edge Microgateway v. 3.1.5 이상

개요

이 설정 가이드의 단계를 완료하면 API 요청을 처리할 수 있는 완전히 구성된 Edge Microgateway 설치가 완료됩니다. Edge Microgateway를 통해 백엔드 타겟에 보안 API 호출을 수행하여 설정을 테스트합니다. 또한 Microgateway에 스파이크 방지 플러그인을 추가하는 방법도 알아봅니다.

이 가이드는 다음 부분으로 나뉩니다.

사전 요구사항: Edge Microgateway 설치

Edge Microgateway 설치의 안내를 따릅니다. 설치를 완료하면 이 튜토리얼의 단계를 따를 수 있습니다.

1부: Edge Microgateway 구성

이 부분에서는 명령줄 인터페이스 (CLI) 명령어를 사용하여 Apigee Edge와 통신하도록 Edge Microgateway를 구성합니다.

Apigee Edge Cloud 구성 단계

Apigee Edge Cloud에서 Edge Microgateway를 사용하려면 다음 단계를 따르세요.

  1. Edge Microgateway를 초기화합니다 (이 단계는 한 번만 실행하면 됨).
    edgemicro init
  2. default.yaml 파일이라는 구성 파일이 홈 디렉터리의 .edgemicro이라는 하위 디렉터리에 배치되었습니다. 지금 확인하여 이 파일이 있는지 확인하세요.
    ls ~/.edgemicro
    default.yaml

    참고: Edge Microgateway 문서에서는 홈 디렉터리를 물결표 (~)로 참조합니다. 이는 UNIX 바로가기입니다. Windows를 사용하는 경우 물결표를 지원하지 않는 셸을 실행하면 홈 디렉터리를 참조하는 명령어에서 물결표를 적절한 환경 변수로 대체해야 합니다. 예를 들면 %USERPROFILE%/.edgemicro입니다.

  3. 모든 CLI 명령어에는 도움말 기능이 있습니다. edgemicro configure 명령어의 도움말을 인쇄합니다.
    edgemicro configure -h
  4. 다음 명령어를 실행하여 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를 사용하려면 다음 단계를 따르세요.

  1. Edge Microgateway를 초기화합니다 (이 단계는 한 번만 실행하면 됨).
    edgemicro init
  2. edgemicro private configure 명령어의 도움말 정보를 출력합니다. 이 방법으로 모든 Edge Microgateway CLI 명령어 또는 명령어 옵션에 대한 도움말을 출력할 수 있습니다.
    edgemicro private configure -h
  3. 다음 명령어를 실행합니다. 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 프록시 만들기

  1. Apigee Edge에서 조직에 로그인합니다.
  2. 측면 탐색 메뉴에서 개발 > API 프록시를 선택합니다.
  3. +프록시를 클릭합니다. 프록시 빌드 마법사가 호출됩니다.
  4. 마법사의 첫 번째 페이지에서 리버스 프록시 (가장 일반적)를 선택합니다.
  5. 다음을 클릭합니다.
  6. 마법사의 세부정보 페이지에서 다음과 같이 구성합니다. 마법사를 표시된 대로 정확하게 작성해야 합니다.
    • 프록시 이름: edgemicro_hello
    • 프록시 기본 경로: /hello
    • 기존 API: http://mocktarget.apigee.net/
  7. 다음을 클릭합니다.
  8. 마법사의 보안 페이지에서 통과 (없음)을 선택합니다.
  9. 다음을 클릭합니다.
  10. 마법사의 가상 호스트 페이지에서 기본값을 수락합니다.
  11. 다음을 클릭합니다.
  12. 마법사의 빌드 페이지에서 프록시 설정을 검토합니다. test 환경이 선택되어 있는지 확인합니다.
  13. 빌드 및 배포를 클릭합니다.

2. 제품 만들기

  1. 측면 탐색 메뉴에서 게시 > API 제품을 선택합니다.
  2. +API 제품을 클릭합니다. 제품 세부정보 페이지가 표시됩니다.
  3. 다음과 같이 제품 세부정보 페이지를 작성합니다.
    • 이름: EdgeMicroTestProduct
    • 표시 이름: EdgeMicroTestProduct
    • 환경: 테스트 및 프로덕션
    • 액세스: 공개
    • Key Approval Type: Automatic(키 승인 유형: 자동)
  4. 리소스에서 +API 프록시를 클릭합니다.
  5. edgemicro-auth를 선택합니다.
  6. +API 프록시를 다시 클릭합니다.
  7. edgemicro_hello를 선택합니다.
  8. + 맞춤 리소스를 선택합니다.
  9. /**를 입력합니다.
  10. + 맞춤 리소스를 다시 선택합니다.
  11. /를 입력합니다.
  12. 저장을 클릭합니다.

3. (선택사항) 테스트 개발자 만들기

이 튜토리얼에서는 다음 단계에서 개발자 앱을 만들 때 기존 개발자를 사용할 수 있습니다. 원하는 경우 지금 테스트 개발자를 만드세요.

  1. 측면 탐색 메뉴에서 게시 > 개발자를 선택합니다.
  2. + Developer를 클릭합니다.
  3. 대화상자를 작성하여 테스트 개발자를 만듭니다.

4. 개발자 앱 만들기

이 앱의 클라이언트 사용자 인증 정보를 사용하여 Edge Microgateway를 통해 보안 API 호출을 실행합니다.

  1. 측면 탐색 메뉴에서 게시 > 앱을 선택합니다.
  2. + 앱을 클릭합니다. 개발자 앱 세부정보 페이지가 표시됩니다.
  3. 다음과 같이 개발자 앱 페이지를 작성합니다.
    1. 이름: EdgeMicroTestApp
    2. 표시 이름: EdgeMicroTestApp
    3. 개발자: 테스트 개발자를 만든 경우 이를 선택합니다. 또는 이 튜토리얼의 목적으로 기존 개발자를 사용할 수 있습니다.
    4. 사용자 인증 정보:
      1. 만료를 사용 안함으로 선택합니다.
      2. + 제품을 클릭하고 EdgeMicroTestProduct(방금 만든 제품)을 선택합니다.
  4. 저장을 클릭합니다.
  5. 앱 목록 페이지로 돌아갑니다.
  6. 방금 만든 앱 EdgeMicroTestApp을 선택합니다.
  7. 고객 키고객 보안 비밀 옆에 있는 표시를 클릭합니다.

3부: Edge Microgateway 운영

이제 Edge에 구성된 Edge Microgateway와 하나 이상의 Edge Microgateway 인식 프록시가 있으므로 Edge Microgateway를 시작할 차례입니다. Edge Microgateway HTTP 서버가 로컬 머신에서 실행되고 API 호출이 해당 서버로 직접 이루어집니다.

1. Edge Microgateway 시작

edgemicro start 명령어를 사용하여 Edge Microgateway를 시작합니다.

  1. edgemicro configure 명령어를 실행했을 때 이전에 반환된 키가 있어야 합니다. 출력은 다음과 같이 표시됩니다.
    You need key and secret while starting edgemicro instance
    
    key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
  2. (선택사항) edgemicro start 명령어의 도움말 정보를 인쇄합니다.
    edgemicro start -h
  3. 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
  4. 마이크로게이트웨이 상태를 확인합니다. 다른 터미널 창에서 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 중지

  1. 별도의 터미널 창에서 Edge Microgateway를 시작한 동일한 디렉터리cd합니다.
  2. 중지 명령어를 입력합니다.
    edgemicro stop

4부: Edge Microgateway 보안

API 키 또는 액세스 토큰을 사용하여 Edge Microgateway를 통해 이루어진 API 호출을 보호할 수 있습니다.

OAuth2 액세스 토큰으로 API 호출 보안

OAuth2 액세스 토큰으로 API 호출을 인증하려면 다음 단계를 따르세요.

1. 필요한 키 가져오기

  1. Edge UI에서 이전에 만든 개발자 앱으로 이동합니다. 앱 이름이 EdgeMicroTestApp이었습니다.
  2. 개발자 앱 페이지에서 고객 키와 고객 보안 비밀을 표시하고 복사합니다. 다음 단계에서 액세스 토큰을 가져오려면 이 값이 필요합니다.

2. 액세스 토큰 가져오기

액세스 토큰을 가져오는 방법에는 두 가지가 있습니다. 두 가지 방법을 모두 보여드리겠습니다.

CLI를 사용하여 액세스 토큰 가져오기

첫 번째 방법은 편리하며 튜토리얼 전반에서 사용한 패턴을 따릅니다. 두 번째 방법은 일반적으로 토큰을 요청해야 하는 클라이언트 앱 개발자에게 더 유용합니다. 실제 토큰 엔드포인트는 Edge Microgateway를 구성할 때 배포된 edgemicro-auth 프록시에 구현됩니다.

  1. (선택사항) token get 명령어의 도움말을 확인합니다.
    edgemicro token get -h
  2. -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에서 구성 확인

  1. $HOME/.edgemicro/org-env-config.yaml 파일을 엽니다. 이 파일을 찾을 수 없는 경우 Edge Microgateway가 설치된 위치를 참고하세요.
  2. 이러한 oauth 플러그인 속성이 false로 설정되어 있는지 확인합니다. 기본적으로 false이지만 다음을 통해 다시 확인하는 것이 좋습니다.
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
  3. org-env-config.yaml 파일에서 oauth 플러그인이 다음과 같이 plugins:sequence 요소에 추가되었는지 확인합니다.
    plugins:
       dir: ../plugins
       sequence:
       - oauth
  4. 파일을 변경하는 경우 실행 중인 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 키 가져오기

  1. Edge UI에서 이전에 만든 개발자 앱으로 이동합니다. 앱 이름이 EdgeMicroTestApp이었습니다.
  2. 개발자 앱 페이지에서 고객 키를 표시하고 복사합니다. 이 값은 API 키입니다. 이 키를 사용하여 인증된 API 호출을 수행합니다.

2. Edge Microgateway에서 구성 확인

  1. $HOME/.edgemicro/org-env-config.yaml. 파일을 엽니다. 이 파일을 찾을 수 없는 경우 Edge Microgateway가 설치된 위치를 참고하세요.
  2. 이러한 oauth 플러그인 속성이 false로 설정되어 있는지 확인합니다. 기본적으로 false이지만 원하는 경우 다시 확인할 수 있습니다.
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
  3. org-env-config.yaml 파일에서 oauth 플러그인이 다음과 같이 plugins:sequence 요소에 추가되었는지 확인합니다.
    plugins:
       dir: ../plugins
       sequence:
       - oauth
        
  4. 파일을 변경하는 경우 실행 중인 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 구성 파일에 추가해야 합니다.

  1. 이 파일을 찾을 수 없는 경우 $HOME/.edgemicro/org-env-config.yaml. 파일을 엽니다.Edge Microgateway가 설치된 위치
  2. 다음 요소를 추가합니다. 파일의 어느 위치에나 추가할 수 있습니다.
       spikearrest:
          timeUnit: minute   
          allow: 10   
          buffersize: 0   
  3. 아래와 같이 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
  4. 구성 파일을 저장합니다.
  5. 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
  6. 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로 자동으로 푸시합니다. 다음과 같습니다.

  1. Apigee Edge에서 조직에 로그인합니다.
  2. 분석 > 프록시 성능을 선택합니다.
  3. 프록시 성능 대시보드에서 edgemicro_hello proxy를 선택합니다.
  4. 그래프에는 총 트래픽, 평균 응답 시간, 평균 타겟 응답 시간 등 프록시의 트래픽 패턴에 관한 정보가 표시됩니다.

Edge 문서의 분석 대시보드 홈페이지에서 Edge 분석 대시보드에 대해 자세히 알아볼 수 있습니다. 플러그인에 대해 자세히 알아보려면 플러그인 사용