참고자료

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

apigee-remote-service-cli 명령줄 인터페이스(CLI)는 Envoy용 Apigee 어댑터를 프로비저닝하고 관리하는 데 도움이 됩니다.

binding 명령어

binding은 Istio 메시에 배포된 서비스를 Apigee API 제품과 연결합니다. CLI를 사용하면 binding을 만들고 삭제하고 나열할 수 있습니다.

참고: Create Product UI에서 1개 이상의 서비스를 제품과 함께 지정할 수 있습니다. 이는 CLI를 사용하여 binding을 만드는 것과 같습니다.

binding 추가

원격 대상 binding을 API 제품에 추가합니다.

사용

Apigee Hybrid의 경우:

apigee-remote-service-cli bindings add [service_name] [product_name]  -o [organization] -e [environment] -t [token]

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다. : 이 옵션을 지정하면 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
--legacy Apigee Cloud를 사용하는 경우 이 플래그를 설정합니다. Edge Cloud의 관리 및 런타임 URL을 설정합니다.
--opdk 프라이빗 클라우드용 Apigee를 사용하는 경우 이 플래그를 설정합니다.
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-p, --password 문자열 (기본 인증에만 필수) Apigee 비밀번호입니다. 선택적으로 .netrc 파일에 비밀번호를 지정할 수 있습니다. 이 경우 명령줄에 비밀번호를 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-r, --runtime 문자열 (하이브리드 또는 opdk에 필수) Apigee 런타임 기본 URL입니다.
-t, --token 문자열 (OAuth 토큰 인증에만 필수) Apigee 계정 정보에서 생성하는 OAuth 또는 SAML 토큰입니다. 토큰 생성에 대한 상세 정보는 OAuth 2.0 액세스 토큰 가져오기SAML 개요를 참조하세요.
-u, --username 문자열 (기본 인증에만 필수) Apigee 사용자 이름(일반적으로 이메일 주소)입니다. 선택적으로 .netrc 파일에 사용자 이름을 지정할 수 있습니다. 이 경우 명령줄에 사용자 이름을 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

./apigee-remote-service-cli bindings add httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx
product envoy-test is now bound to: httpbin.org

결합 나열

원격 서비스에 binding되는 모든 API 제품을 나열합니다.

사용

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다. : 이 옵션을 지정하면 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
--legacy Apigee Cloud를 사용하는 경우 이 플래그를 설정합니다. Edge Cloud의 관리 및 런타임 URL을 설정합니다.
--opdk 프라이빗 클라우드용 Apigee를 사용하는 경우 이 플래그를 설정합니다.
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-p, --password 문자열 (기본 인증에만 필수) Apigee 비밀번호입니다. 선택적으로 .netrc 파일에 비밀번호를 지정할 수 있습니다. 이 경우 명령줄에 비밀번호를 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-r, --runtime 문자열 (하이브리드 또는 opdk에 필수) Apigee 런타임 기본 URL입니다.
-t, --token 문자열 (OAuth 토큰 인증에만 필수) Apigee 계정 정보에서 생성하는 OAuth 또는 SAML 토큰입니다. 토큰 생성에 대한 상세 정보는 OAuth 2.0 액세스 토큰 가져오기SAML 개요를 참조하세요.
-u, --username 문자열 (기본 인증에만 필수) Apigee 사용자 이름(일반적으로 이메일 주소)입니다. 선택적으로 .netrc 파일에 사용자 이름을 지정할 수 있습니다. 이 경우 명령줄에 사용자 이름을 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

apigee-remote-service-cli bindings list -o myorg -e test -u user@example.com -c config.yaml -p abc123
PI Products
============
Bound
-----
envoy-test:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
httpbin:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
    /httpbin
    /

Unbound
-------
product-1:
  Quota: 100 requests every 1 hour
product-2:
  Quota: 1000 requests every 1 month
product-3:
product-4:

binding 삭제

API 제품에서 Envoy의 원격 서비스 binding을 삭제합니다.

참고: UI의 제품에서 서비스 이름을 삭제하여 Envoy용 원격 서비스 binding을 삭제할 수도 있습니다.

사용

Apigee Hybrid의 경우:

apigee-remote-service-cli bindings remove [service_name] [product_name]  -o [organization] -e [environment] -t [token]

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다. : 이 옵션을 지정하면 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
--legacy Apigee Cloud를 사용하는 경우 이 플래그를 설정합니다. Edge Cloud의 관리 및 런타임 URL을 설정합니다.
--opdk 프라이빗 클라우드용 Apigee를 사용하는 경우 이 플래그를 설정합니다.
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-p, --password 문자열 (기본 인증에만 필수) Apigee 비밀번호입니다. 선택적으로 .netrc 파일에 비밀번호를 지정할 수 있습니다. 이 경우 명령줄에 비밀번호를 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-r, --runtime 문자열 (하이브리드 또는 opdk에 필수) Apigee 런타임 기본 URL입니다.
-t, --token 문자열 (OAuth 토큰 인증에만 필수) Apigee 계정 정보에서 생성하는 OAuth 또는 SAML 토큰입니다. 토큰 생성에 대한 상세 정보는 OAuth 2.0 액세스 토큰 가져오기SAML 개요를 참조하세요.
-u, --username 문자열 (기본 인증에만 필수) Apigee 사용자 이름(일반적으로 이메일 주소)입니다. 선택적으로 .netrc 파일에 사용자 이름을 지정할 수 있습니다. 이 경우 명령줄에 사용자 이름을 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

./apigee-remote-service-cli bindings remove httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx
product envoy-test is no longer bound to: httpbin.org

도움말 명령어

모든 apigee-remote-service-cli 명령어에 온라인 도움말이 제공됩니다. 다음을 입력하세요.

apigee-remote-service-cli help

모든 명령어에 대한 도움말을 보려면 다음을 입력합니다.

apigee-remote-service-cli [command] help

예를 들면 다음과 같습니다.

apigee-remote-service-cli provision help

프로비저닝 명령어

apigee-remote-service-cli provision 명령어는 Apigee 조직에 프록시를 설치하고, 인증서를 설정하고, Envoy용 Apigee 어댑터를 구성하는 데 필요한 사용자 인증 정보를 생성합니다.

사용

매개변수

매개변수 유형 설명
-c, --config 문자열 Apigee 원격 서비스 구성 파일의 경로입니다. : 이 옵션을 지정하면 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --environment 문자열 (필수) 조직의 환경입니다.
-f, --force-proxy-install (선택사항) 조직에 remote-service 프록시가 이미 설치된 경우 강제로 이를 다시 설치합니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
-k, --key 문자열 apigee-remote-service-cli provision 명령어에서 반환된 키를 지정합니다.
--legacy Apigee Edge(관리 및 런타임 URL 설정)입니다.
-m, --management 문자열 (Apigee Private Cloud를 사용하는 경우 필수) Apigee 관리 기준 URL입니다. 기본값: https://api.enterprise.apigee.com
-n, --namespace 문자열 지정된 네임스페이스에서 Envoy ConfigMap으로 구성을 내보냅니다.
--opdk 문자열 Apigee OPDK.
-o, --organization 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-p, --password 문자열 (기본 인증에만 필수) Apigee 비밀번호입니다. 선택적으로 .netrc 파일에 비밀번호를 지정할 수 있습니다. 이 경우 명령줄에 비밀번호를 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
--rotate-int 정수 n > 0인 경우 새 비공개 키를 생성하고 n개의 공개 키를 보관합니다(하이브리드만 해당).
-r, --runtime 문자열 (하이브리드 또는 opdk에 필수) Apigee 런타임 기본 URL입니다.
-s, --secret 문자열 apigee-remote-service-cli provision 명령어에서 반환된 보안 비밀을 지정합니다.
--strength 정수 (선택사항) 어댑터 프로비저닝에 사용된 SSL 인증서의 암호화 강도를 지정합니다. 기본값: 2048.
-t, --token 문자열 (하이브리드만 해당) Apigee OAuth 또는 SAML 토큰
-u, --username 문자열 (기본 인증에만 필수) Apigee 사용자 이름(일반적으로 이메일 주소)입니다. 선택적으로 .netrc 파일에 사용자 이름을 지정할 수 있습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-v, --verbose (선택사항) 상세 출력을 생성합니다.
--virtual-hosts 문자열 기본 가상 호스트를 재정의합니다.
--years 정수 (선택사항) 프로비저닝에 사용된 SSL 인증서가 만료되기 전의 연수입니다. 기본값: 1

예시

다른 Envoy용 Apigee 어댑터 작업의 입력으로 사용되는 파일의 provision 명령어 출력을 캡처해야 합니다.

다음은 Apigee Hybrid 예시입니다.

apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME --namespace $NAMESPACE --token $TOKEN > config.yaml

토큰 명령어

API 키를 사용하는 대신 JWT 토큰을 사용하여 인증된 API 프록시 호출을 수행할 수 있습니다. 토큰 명령어를 사용하면 이 목적으로 JWT 토큰을 생성, 검사, 순환할 수 있습니다.

JWT 토큰 만들기

JWT 토큰을 사용하여 원격 서비스 대상에 인증된 API 프록시 호출을 수행할 수 있습니다. JWT 기반 인증 사용도 참조하세요.

사용

Apigee Hybrid의 경우:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다. : 이 옵션을 지정하면 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-r, --runtime 문자열 (하이브리드 또는 opdk에만 필수) Apigee 런타임 기본 URL입니다.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

apigee-remote-service-cli token create -o myorg -e test -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 -s icTARgaKHqvUH1dq -c config.yaml

출력

성공하면 다음과 비슷한 JST 토큰 출력이 표시됩니다.
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

JWT 토큰 검사

이 명령어로 JWT 토큰을 검사할 수 있습니다. 토큰 검사도 참조하세요.

사용

Apigee Hybrid의 경우:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다. : 이 옵션을 지정하면 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-r, --runtime 문자열 (하이브리드 또는 opdk에만 필수) Apigee 런타임 기본 URL입니다.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

apigee-remote-service-cli token inspect -c config.yaml <<< $TOKEN

출력

성공하면 다음과 비슷한 출력이 표시됩니다.
{
	"aud": [
		"remote-service-client"
	],
	"exp": 1591741549,
	"iat": 1591740649,
	"iss": "https://apigee-docs-test.apigee.net/remote-service/token",
	"jti": "99325d2e-6440-4278-9f7f-b252a1a79e53",
	"nbf": 1591740649,
	"access_token": "VfzpXzBGAQ07po0bPMKY4JgQjus",
	"api_product_list": [
		"httpbin"
	],
	"application_name": "httpbin",
	"client_id": "GYDGHy5TRpV8AejXCOlreP7dPVepA8H",
	"developer_email": "user@example.com",
	"scope": ""
}
verifying...
token ok.

JWT 토큰 순환

JWT를 처음 생성한 후 어느 정도 지나면 Apigee에서 저장된 공개 키/비공개 키 쌍을 암호화된 키-값 맵(KVM)으로 변경해야 할 수 있습니다. 새 키 쌍을 생성하는 이 프로세스를 키 순환이라고 합니다. 키를 순환하면 새 비공개/공개 키 쌍이 생성되고 Apigee 조직/환경의 'istio' KVM에 저장됩니다. 또한 이전 공개 키는 원래 키 ID 값과 함께 보관됩니다.

사용

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다. : 이 옵션을 지정하면 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
--truncate 정수 jwks에 보관할 인증서의 수(기본값: 2)
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-r, --runtime 문자열 (하이브리드 또는 opdk에 필수) Apigee 런타임 기본 URL입니다.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

apigee-remote-service-cli token rotate-cert -c config.yaml -o myorg -e test -k 2e238ffa15dc5ab6a1e97868e7581f6c60ddb8575478582c256d8b7e5b2677a8 -s 51058077223fa7b683c3bea845c5cca138340d1d5583922b6d465f9f918a4b08

출력

certificate successfully rotated

사용자 인증 정보에 .netrc 사용

Apigee를 사용 중이며 머신 api.enterprise.apigee.com에 항목이 있는 경우 apigee-remote-service-cli가 홈 디렉터리의 .netrc 파일에서 usernamepassword(기본 인증이 필요한 경우)를 자동으로 선택합니다. Apigee Private Cloud를 사용 중인 경우 머신 값은 management URL(예: http://192.162.55.100)과 동일합니다.

버전 명령어

CLI 버전을 표시합니다.

apigee-remote-service-cli version

--config 명령어 옵션 사용

--config 옵션은 provision 명령어로 생성된 구성 파일의 위치를 지정합니다. 이 옵션에는 CLI가 구성 파일에서 가져오는 대부분의 다른 명령어 매개변수를 생략할 수 있다는 유용한 이점이 있습니다. 이러한 옵션에는 다음과 같은 항목이 포함됩니다.
  • 조직
  • 환경
  • 런타임
  • management
  • 안전하지 않음
  • 네임스페이스
  • legacy
  • opdk

예를 들어 다음과 같이 provision 명령어를 실행할 수 있습니다.

apigee-remote-service-cli provision --config='old-config.yaml' > new-config.yaml

구성 파일

이 섹션에서는 사용 가능한 모든 옵션이 포함된 구성 파일의 예시를 보여줍니다.

global:
  temp_dir: /tmp/apigee-istio
  keep_alive_max_connection_age: 10m
  api_address: :5000
  metrics_address: :5001
  tls:
    cert_file: tls.crt
    key_file: tls.key
tenant:
  internal_api: https://istioservices.apigee.net/edgemicro
  remote_service_api: https://org-test.apigee.net/remote-service
  org_name: org
  env_name: env
  key: mykey
  secret: mysecret
  client_timeout: 30s
  allow_unverified_ssl_cert: false
products:
  refresh_rate: 2m
analytics:
  legacy_endpoint: false
  file_limit: 1024
  send_channel_size: 10
  collection_interval: 10s
  fluentd_endpoint: apigee-udca-myorg-test.apigee.svc.cluster.local:20001
  tls:
    ca_file: /opt/apigee/tls/ca.crt
    cert_file: /opt/apigee/tls/tls.crt
    key_file: /opt/apigee/tls/tls.key
    allow_unverified_ssl_cert: false
auth:
  api_key_claim: claim
  api_key_cache_duration: 30m
  api_key_header: x-api-key
  api_target_header: :authority
  reject_unauthorized: true
  jwks_poll_interval: 0s