참고자료

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

Apigee Edge 문서 보기

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

binding 명령어

binding은 Istio 메시에 배포된 서비스를 Apigee API 제품과 연결합니다. CLI를 통해 binding을 생성, 삭제, 나열, 확인할 수 있습니다.

결합 나열

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

사용

Apigee Hybrid의 경우:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -t [token] -r [runtime]

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다.
: 이 플래그를 사용하면 CLI가 구성 파일에서 명령어 매개변수를 직접 가져올 수 있으므로 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --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 문자열 하이브리드 구성에서 정의된 가상 호스트의 hostAlias가 포함된 URL입니다. URL은 https://으로 시작해야 합니다. 예를 들면 https://apitest.apigee-hybrid-docs.net입니다.
-t, --token 문자열 (필수)액세스 토큰입니다.
-u, --username 문자열 (기본 인증에만 필요 - 하이브리드에서는 사용할 수 없음) Apigee 사용자 이름(일반적으로 이메일 주소)입니다. 선택적으로 .netrc 파일에 사용자 이름을 지정할 수 있습니다. 이 경우 명령줄에 사용자 이름을 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

apigee-remote-service-cli bindings list -o myorg -e test -c config.yaml \
-r $RUNTIME -t $TOKEN
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 확인

이 명령어는 지원 중단되었습니다. 버전 1.4에서 개발자 앱은 원격 서비스 대상과 함께 사용되는 API 제품과의 연결이 더 이상 필요하지 않습니다.

도움말 명령어

모든 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 어댑터를 구성하는 데 필요한 사용자 인증 정보를 생성합니다.

사용

Apigee Hybrid의 경우:

apigee-remote-service-cli provision  -o $ORG -e $ENV -r $RUNTIME -t $TOKEN

매개변수

매개변수 유형 설명
--analytics-sa 문자열 이 플래그를 사용하여 서비스 계정에 Apigee Analytics Agent 역할이 있는 Google Cloud 서비스 계정 키 파일에 대한 경로를 지정합니다. 이 SA는 어댑터가 Apigee에 분석 데이터를 직접 업로드하기 위해 사용됩니다. Apigee Hybrid를 사용하는 경우 이 옵션을 통해 한 클러스터에 하이브리드 런타임을 설치하고 다른 클러스터에 어댑터를 설치할 수 있습니다. 이 플래그는 Google Cloud 설치 시 Apigee Hybrid 및 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으로 구성을 내보냅니다. 기본값: apigee
--opdk 문자열 프라이빗 클라우드용 Apigee를 사용하는 경우 이 플래그를 설정합니다.
-o, --organization 문자열

(필수) Apigee 조직입니다.

-p, --password 문자열 (기본 인증에만 필요 - 하이브리드에서는 사용할 수 없음) Apigee 비밀번호입니다. 선택적으로 .netrc 파일에 비밀번호를 지정할 수 있습니다. 이 경우 명령줄에 비밀번호를 제공할 필요가 없습니다. 사용자 인증 정보에 .netrc 사용도 참조하세요.
--rotate-int 정수 n > 0인 경우 새 비공개 키를 생성하고 n개의 공개 키를 보관합니다(하이브리드만 해당).
-r, --runtime 문자열 하이브리드 구성에서 정의된 가상 호스트의 hostAlias가 포함된 URL입니다. URL은 https://으로 시작해야 합니다. 예를 들면 https://apitest.apigee-hybrid-docs.net입니다.
-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

샘플 명령어

샘플 구성 파일 만들기

기본 Envoy 또는 Istio 배포를 위한 샘플 구성 파일을 만듭니다.

사용

apigee-remote-service-cli samples create [flags]

설명

이 명령어를 사용하려면 프로비저닝을 통해 생성되는 유효한 config.yaml 파일이 필요합니다. 기본적으로 샘플 파일은 ./samples라는 디렉터리에 출력됩니다. 이 디렉터리는 이 명령어로 자동으로 생성됩니다.

기본 Envoy를 사용하는 경우 명령어에 대상 서비스 호스트 및 원하는 클러스터 이름이 사용됩니다. 또한 tls.keytls.crt가 포함된 폴더가 --tls를 통해 제공되는 경우 Envoy 프록시에서 원격 서비스 클러스터로의 커스텀 SSL 연결이 설정됩니다.

Envoy 프록시가 사이드카로 작동하는 Istio를 사용하는 경우, 대상을 지정하지 않으면 httpbin 예시가 생성됩니다. 그렇지 않으면 대상 서비스 배포와 관련된 구성 파일을 준비해야 합니다.

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다.
: 이 플래그를 사용하면 CLI가 구성 파일에서 명령어 매개변수를 직접 가져올 수 있으므로 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-f, --force 기존 디렉터리를 강제로 덮어씁니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--host 대상 서비스 호스트(기본값 'httpbin.org')
-n, --name 대상 서비스 이름(기본값 'httpbin')
--out 샘플 구성 파일을 만들 디렉터리입니다. 기본값: ./samples
-t, --template

템플릿 이름입니다. Istio 배포를 수행하는 경우(하이브리드만 해당) 사용 가능한 Istio 옵션 중 하나를 선택합니다. 기본 Envoy 배포를 위한 기본 옵션을 사용합니다. 사용 가능한 옵션은 다음과 같습니다.

  • istio-1.6(기본값)
  • istio-1.7
  • native
--tls TLS 키와 crt 파일을 저장할 디렉터리입니다.

apigee-remote-service-cli samples create -c ./config.yaml

사용 가능한 템플릿 옵션 나열

--templates 매개변수와 함께 사용할 수 있는 옵션을 나열합니다.

사용

apigee-remote-service-cli samples templates

매개변수

없음.

apigee-remote-service-cli samples templates
Supported templates (native is deprecated):
  envoy-1.14
  envoy-1.15
  envoy-1.16
  istio-1.5
  istio-1.6
  istio-1.7
  istio-1.8
  native

토큰 명령어

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 원격 서비스 구성 파일의 경로입니다.
: 이 플래그를 사용하면 CLI가 구성 파일에서 명령어 매개변수를 직접 가져올 수 있으므로 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-r, --runtime 문자열 하이브리드 구성에서 정의된 가상 호스트의 hostAlias가 포함된 URL입니다. URL은 https://으로 시작해야 합니다. 예를 들면 https://apitest.apigee-hybrid-docs.net입니다.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

출력

성공하면 다음과 비슷한 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 원격 서비스 구성 파일의 경로입니다.
: 이 플래그를 사용하면 CLI가 구성 파일에서 명령어 매개변수를 직접 가져올 수 있으므로 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-r, --runtime 문자열 하이브리드 구성에서 정의된 가상 호스트의 hostAlias가 포함된 URL입니다. URL은 https://으로 시작해야 합니다. 예를 들면 https://apitest.apigee-hybrid-docs.net입니다.
-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 값과 함께 보관됩니다.

사용

Apigee Hybrid의 경우

apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -t [token] -r [runtime] -k [provision_key] -s [provision_secret] --kid [new_key_id]

매개변수

매개변수 유형 설명
-c, --config 문자열 (필수) Apigee 원격 서비스 구성 파일의 경로입니다.
: 이 플래그를 사용하면 CLI가 구성 파일에서 명령어 매개변수를 직접 가져올 수 있으므로 대부분의 다른 명령어 매개변수를 생략할 수 있습니다. --config 옵션 사용을 참조하세요.
-e, --env 문자열 (필수) 조직의 환경입니다.
-h, --help 명령어 매개변수에 관한 도움말을 표시합니다.
--insecure SSL 사용 시 안전하지 않은 서버 연결을 허용합니다.
--truncate 정수 jwks에 보관할 인증서의 수(기본값: 2)
-o, --org 문자열 (필수) Apigee 조직입니다. 사용하려면 조직 관리자여야 합니다.
-r, --runtime 문자열 하이브리드 구성에서 정의된 가상 호스트의 hostAlias가 포함된 URL입니다. URL은 https://으로 시작해야 합니다. 예를 들면 https://apitest.apigee-hybrid-docs.net입니다.
-v, --verbose (선택사항) 상세 출력을 생성합니다.

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

출력

certificate successfully rotated

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

Edge Public Cloud를 사용하고 머신 api.enterprise.apigee.com에 항목이 있는 경우 apigee-remote-service-cli가 홈 디렉터리의 .netrc 파일에서 usernamepassword(기본 인증이 필요한 경우)를 자동으로 선택합니다. Apigee Private Cloud를 사용하는 경우 머신 값은 management URL과 동일합니다(예: http://192.162.55.100). Edge Public Cloud의 예시는 다음과 같습니다.
machine api.enterprise.apigee.com
login jdoe@google.com
password abc123
Edge Private Cloud의 예시는 다음과 같습니다.
machine http://192.162.55.100
login jdoe@google.com
password abc123

버전 명령어

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: 1m
  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
  jwt_provider_key: https://org-test.apigee.net/remote-service/token