CLI リファレンス

apigee-istio コマンドライン インターフェース(CLI)で、Apigee アダプタの制御と管理が行えます。

Help コマンド

すべての apigee-istio コマンドについて、オンライン ヘルプが用意されています。次のコマンドを入力してください。

apigee-istio help

特定のコマンドのヘルプを表示するには、次のコマンドを入力します。

apigee-istio <command> help

例:

apigee-istio provision help

Version コマンド

CLI のバージョンを出力します。

apigee-istio version

Provision コマンド

プロビジョニングでは、Apigee Edge 組織にプロキシをインストールし、証明書を設定して、Apigee アダプタの構成で必要になる認証情報を生成します。

使用方法

Edge Public Cloud の場合:

apigee-istio provision -o [organization] -e [environment] -u [username] -p [password]

Edge for Private Cloud の場合:

apigee-istio provision -o [organization] -e [environment] -u [username] --managementBase [mgmt server url] -p [password]

パラメータ

パラメータ 説明
-o, --org String (必須)Apigee の組織。組織管理者である必要があります。
-e, --env String (必須)組織の環境。
-u, --username String (Basic 認証の場合にのみ必須)Apigee ユーザー名。通常はメールアドレスです。必要に応じて、ユーザー名を .netrc ファイルでも指定できます。.netrc に認証情報を指定するもご覧ください。
-p, --password String (Basic 認証の場合にのみ必須)Apigee パスワード。必要に応じて、パスワードを .netrc ファイルでも指定できます。その場合、コマンドラインにパスワードを入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-t, --token String (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用および SAML を使用して Management API にアクセスするをご覧ください。
-f, --forceProxyInstall (省略可)組織にすでにインストールされている istio-auth プロキシを、強制的に再インストールします。
-h, --help コマンド パラメータのヘルプを表示します。
-k, --key String --verifyOnly を使用する場合のみ必須)--verifyOnly ではキーが再生成されないため、apigee-istio provision コマンドから返されるキーを指定します。
-s, --secret String --verifyOnly を使用する場合のみ必須)--verifyOnly ではシークレットが再生成されないため、apigee-istio provision コマンドから返されるシークレットを指定します。
--verifyOnly (省略可)Apigee Edge にプロビジョニングを行わずにコマンドを実行します。
-m, --managementBase String (Apigee Private Cloud を使用する場合は必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
-n, --netrc String (省略可).netrc ファイルのパスを指定します。デフォルトは $HOME/.netrc です。.netrc に認証情報を指定するもご覧ください。
-r, --routerBase String (省略可)組織環境の仮想ホスト エイリアスを指定します。デフォルトは apigee.net です。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
--strength int (省略可)アダプタのプロビジョニングで使用した SSL 証明書の暗号強度を指定します。デフォルトは 2048 です。
-v, --verbose (省略可)冗長な出力を生成します。
--virtualHosts String デフォルトの仮想ホスト("default,secure")をオーバーライドします。仮想ホストがデフォルト以外の Edge 組織 / 環境に指定されている場合に使用します。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
--years int (省略可)プロビジョニングで使用した SSL 証明書の有効年数。デフォルト: 1

Edge Public Cloud の場合:

apigee-istio provision -o docs -e test -u jdoe@example.com -p abc123

Edge for Private Cloud の場合:

apigee-istio provision -o docs -e test -u jdoe@example.com --managementBase http://192.162.55.100:8080

出力

成功すると、次のような出力が表示されます。

verifying internal proxy...
  ok: https://edgemicroservices.apigee.net/edgemicro/analytics/organization/myorg/environment/myenv
  ok: https://edgemicroservices.apigee.net/edgemicro/quotas/organization/myorg/environment/myenv
verifying customer proxy...
  ok: https://myorg-myenv.apigee.net/istio-auth/certs
  ok: https://myorg-myenv.apigee.net/istio-auth/products
  ok: https://myorg-myenv.apigee.net/istio-auth/verifyApiKey

# istio handler configuration for apigee adapter
apiVersion: config.istio.io/v1alpha2
kind: apigee
metadata:
  name: apigee-handler
  namespace: istio-system
spec:
  apigee_base: https://edgemicroservices.apigee.net/edgemicro
  customer_base: https://myorg-myenv.apigee.net/istio-auth
  org_name: myorg
  env_name: myenv
  key: 06a40b65005d03ea24c0d53de69ab795590b0c332526e97fed549471bdea00b9
  secret: 93550179f344150c6474956994e0943b3e93a3c90c64035f378dc05c98389633

Binding コマンド

バインディングでは、Istio メッシュにデプロイされたサービスを Apigee API プロダクトに関連付けます。CLI では、バインディングの作成、削除、一覧表示を行うことができます。

バインディングの追加

Istio サービスを API プロダクトにバインドします。

使用方法

Edge Public Cloud の場合:

apigee-istio bindings add [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password]

Edge for Private Cloud の場合:

apigee-istio bindings add [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] --managementBase [mgmt server url] --routerBase [host alias]

パラメータ

パラメータ 説明
-o, --org String (必須)Apigee 組織。組織管理者である必要があります。
-e, --env String (必須)組織の環境。
-u, --username String (Basic 認証の場合にのみ必須)Apigee ユーザー名。通常はメールアドレスです。必要に応じて、ユーザー名を .netrc ファイルでも指定できます。その場合、コマンドラインにユーザー名を入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-p, --password String (Basic 認証の場合にのみ必須)Apigee パスワード。必要に応じて、パスワードを .netrc ファイルでも指定できます。その場合、コマンドラインにパスワードを入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-t, --token String (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用および SAML を使用して Management API にアクセスするをご覧ください。
-m, --managementBase String (Apigee Private Cloud を使用する場合は必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
service_name String (必須)バインディングするサービスの ID。例: helloworld.default.svc.cluster.local
product_name String (必須)バインドする API プロダクトの名前。例: hello-istio-product
-r, --routerBase String (省略可)組織環境の仮想ホスト エイリアスを指定します。デフォルトは apigee.net です。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
-n, --netrc String (省略可).netrc ファイルのパスを指定します。デフォルトは $HOME/.netrc です。.netrc に認証情報を指定するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。
-h, --help コマンド パラメータのヘルプを表示します。

apigee-istio bindings add helloworld.default.svc.cluster.local hello-istio-product -o myorg -e test

出力

成功すると、次のような出力が表示されます。

product hello-istio-product is now bound to: helloworld.default.svc.cluster.local

バインディングの一覧表示

すべての Istio サービス バインディングを一覧表示します。

使用方法

Edge Public Cloud の場合:

apigee-istio bindings list -o [organization] -e [environment] -u [username] -p [password]

Edge for Private Cloud の場合:

apigee-istio bindings list -o [organization] -e [environment] -u [username] -p [password] --managementBase [mgmt server url] --routerBase [host alias]

パラメータ

パラメータ 説明
-o, --org String (必須)Apigee 組織。組織管理者である必要があります。
-e, --env String (必須)組織の環境。
-u, --username String (Basic 認証の場合にのみ必須)Apigee ユーザー名。通常はメールアドレスです。必要に応じて、ユーザー名を .netrc ファイルでも指定できます。その場合、コマンドラインにユーザー名を入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-p, --password String (Basic 認証の場合にのみ必須)Apigee パスワード。必要に応じて、パスワードを .netrc ファイルでも指定できます。その場合、コマンドラインにパスワードを入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-t, --token String (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用および SAML を使用して Management API にアクセスするをご覧ください。
-m, --managementBase String (Apigee Private Cloud を使用する場合は必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
-r, --routerBase String (省略可)組織環境の仮想ホスト エイリアスを指定します。デフォルトは apigee.net です。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
-n, --netrc String (省略可).netrc ファイルのパスを指定します。デフォルトは $HOME/.netrc です。.netrc に認証情報を指定するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。
-h, --help コマンド パラメータのヘルプを表示します。

apigee-istio bindings list -o myorg -e test

出力

成功すると、次のような出力が表示され、組織内でバインドされたプロダクトとバインドされていないプロダクトを確認できます。

API Products
============
Bound
-----
hello-istio-product:
  Quota: 5 requests every 1 minute
  Service bindings:
    helloworld.default.svc.cluster.local
  Paths:
    /

Unbound
-------
Generic Product:
streetcarts_product:
users:
  Quota: 50 requests every 1 minute
jdoe:

バインディングの削除

API プロダクトから Istio サービスのバインディングを削除します。

使用方法

Edge Public Cloud の場合:

apigee-istio bindings remove [service_name] [product_name] -o [organization] -e [environment] -u [username] -p [password]

Edge for Private Cloud の場合:

apigee-istio bindings remove [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] --managementBase [mgmt server url] --routerBase [host alias]

パラメータ

パラメータ 説明
-o, --org String (必須)Apigee 組織。組織管理者である必要があります。
-e, --env String (必須)組織の環境。
-u, --username String (Basic 認証の場合にのみ必須)Apigee ユーザー名。通常はメールアドレスです。必要に応じて、ユーザー名を .netrc ファイルでも指定できます。その場合、コマンドラインにユーザー名を入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-p, --password String (Basic 認証の場合にのみ必須)Apigee パスワード。必要に応じて、パスワードを .netrc ファイルでも指定できます。その場合、コマンドラインにパスワードを入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-t, --token String (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用および SAML を使用して Management API にアクセスするをご覧ください。
-m, --managementBase String (Apigee Private Cloud を使用する場合は必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
service_name String (必須)削除するサービスの ID。例: helloworld.default.svc.cluster.local
product_name String (必須)バインディングを削除する API プロダクトの名前。例: hello-istio-product
-r, --routerBase String (省略可)組織環境の仮想ホスト エイリアスを指定します。デフォルトは apigee.net です。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
-n, --netrc String (省略可).netrc ファイルのパスを指定します。デフォルトは $HOME/.netrc です。.netrc に認証情報を指定するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。
-h, --help コマンド パラメータのヘルプを表示します。

apigee-istio bindings remove helloworld.default.svc.cluster.local hello-istio-product -o myorg -e test

出力

成功すると、次のような出力が表示されます。

product hello-istio-product is no longer bound to: helloworld.default.svc.cluster.local

Token コマンド

Token コマンドでは、JWT トークンの作成、検査、ローテーションを行います。JWT ベースの認証を使用するもご覧ください。

JWT トークンの作成

トークンを使用すると、Istio メッシュで実行され、API プロダクトにバインドされているサービスに認証済みの API 呼び出しを行うことができます。JWT ベースの認証を使用するもご覧ください。

使用方法

Edge Public Cloud の場合:

apigee-istio token create -o [organization] -e [environment] -u [username] -p [password] -i [consumer_key] -s [consumer_secret]

Edge for Private Cloud の場合:

apigee-istio token create -o [organization] -e [environment] -u [username] -p [password] -i [consumer_key] -s [consumer_secret] --managementBase [mgmt server url] --routerBase [host alias]

パラメータ

パラメータ 説明
-o, --org String (必須)Apigee 組織。組織管理者である必要があります。
-e, --env String (必須)組織の環境。
-u, --username String (Basic 認証の場合にのみ必須)Apigee ユーザー名。通常はメールアドレスです。必要に応じて、ユーザー名を .netrc ファイルでも指定できます。その場合、コマンドラインにユーザー名を入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-p, --password String (Basic 認証の場合にのみ必須)Apigee パスワード。必要に応じて、パスワードを .netrc ファイルでも指定できます。その場合、コマンドラインにパスワードを入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-t, --token String (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用および SAML を使用して Management API にアクセスするをご覧ください。
-m, --managementBase String (Apigee Private Cloud を使用する場合は必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
-i, --id String (必須)Apigee Edge で作成したデベロッパー アプリのコンシューマ キー。API キーを取得するをご覧ください。.
-s, --secret String (必須)Apigee Edge で作成したデベロッパー アプリのコンシューマ シークレット。API キーを取得するをご覧ください。.
-r, --routerBase String (省略可)組織環境の仮想ホスト エイリアスを指定します。デフォルトは apigee.net です。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
-n, --netrc String (省略可).netrc ファイルのパスを指定します。デフォルトは $HOME/.netrc です。.netrc に認証情報を指定するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。
-h, --help コマンド パラメータのヘルプを表示します。

apigee-istio token create -o myorg -e test -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 -s icTARgaKHqvUH1dq

出力

成功すると、次のような JST トークンの出力が表示されます。

eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

JWT トークンの検査

このコマンドでは、JWT トークンを検査します。JWT ベースの認証を使用するもご覧ください。

使用方法

Edge Public Cloud の場合:

apigee-istio token inspect -o [organization] -e [environment] -u [username] -p [password] -f [token_file]

Edge for Private Cloud の場合:

apigee-istio token inspect -o [organization] -e [environment] -u [username] -p [password] -f [token_file] --managementBase [mgmt server url] --routerBase [host alias]

パラメータ

パラメータ 説明
-f, --file String トークンを含むファイル。標準入力の使用も可能です。
-o, --org String (必須)Apigee 組織。組織管理者である必要があります。
-e, --env String (必須)組織の環境。
-u, --username String (Basic 認証の場合にのみ必須)Apigee ユーザー名。通常はメールアドレスです。必要に応じて、ユーザー名を .netrc ファイルでも指定できます。その場合、コマンドラインにユーザー名を入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-p, --password String (Basic 認証の場合にのみ必須)Apigee パスワード。必要に応じて、パスワードを .netrc ファイルでも指定できます。その場合、コマンドラインにパスワードを入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-t, --token String (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用および SAML を使用して Management API にアクセスするをご覧ください。
-m, --managementBase String (Apigee for Private Cloud の場合に必須)Apigee 管理ベース。デフォルト: https://api.enterprise.apigee.com
-r, --routerBase String (省略可)組織環境の仮想ホスト エイリアスを指定します。デフォルトは apigee.net です。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
-n, --netrc String (省略可).netrc ファイルのパスを指定します。デフォルトは $HOME/.netrc です。.netrc に認証情報を指定するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。
-h, --help

コマンド パラメータのヘルプを表示します。

apigee-istio token inspect -o myorg -e test -u jdoe@google.com -p abc123 -f ./mytoken

出力

成功すると、次のような出力が表示されます。

{
        "access_token": "eeiZQz07tdTot6VeZfv7HEv1BlSQ",
        "api_product_list": [
                "istio-product"
        ],
        "application_name": "istio-app",
        "aud": "istio",
        "client_id": "YUmlZAcBKNsTAelKqPYFl3sh58ObATX9",
        "developer_email": "jdoe@google.com",
        "exp": 1530150142,
        "iat": 1530339242,
        "iss": "https://apigeesearch-test.apigee.net/istio-auth/token",
        "jti": "e8a0eb3f-395a-4f90-8446-b1b015986cb1",
        "nbf": 1530339242
}

verifying...
token ok.

JWT トークンのローテーション

JWT を最初に生成した後、Apigee Edge の暗号化された Key-Value マップ(KVM)に格納されている公開鍵 / 秘密鍵のペアの変更が必要になることがあります。新しい鍵ペアを生成するこのプロセスは、鍵のローテーションと呼ばれます。鍵をローテーションすると、新しい公開鍵 / 秘密鍵のペアが生成され、Apigee Edge 組織または環境の istio KVM に格納されます。また、古い公開鍵は元の鍵 ID 値とともに保持されます。

使用方法

Edge Public Cloud の場合:

apigee-istio token rotate-cert -o [organization] -e [environment] -u [username] -p [password] -k [provision_key] -s [provision_secret] --kid [new_key_id]

Edge for Private Cloud の場合:

apigee-istio token rotate-cert -o [organization] -e [environment] -u [username] -p [password] -k [provision_key] -s [provision_secret] --kid [new_key_id] --managementBase [mgmt server url] --routerBase [host alias]

パラメータ

パラメータ 説明
-k, --key String (必須)Apigee アダプタのプロビジョニング時に取得したシークレットの値。
--kid String (省略可)新しいキーの ID(デフォルトは「1」)
-s, --secret String (必須)Apigee アダプタのプロビジョニング時に取得したシークレットの値。
--strength int (省略可)アダプタのプロビジョニングで使用した SSL 証明書の暗号強度を指定します。デフォルトは 2048 です。
--years int (省略可)プロビジョニングで使用した SSL 証明書の有効年数。デフォルト: 1
-o, --org String (必須)Apigee 組織。組織管理者である必要があります。
-e, --env String (必須)組織の環境。
-u, --username String (Basic 認証の場合にのみ必須)Apigee ユーザー名。通常はメールアドレスです。必要に応じて、ユーザー名を .netrc ファイルでも指定できます。その場合、コマンドラインにユーザー名を入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-p, --password String (Basic 認証の場合にのみ必須)Apigee パスワード。必要に応じて、パスワードを .netrc ファイルでも指定できます。その場合、コマンドラインにパスワードを入力する必要はありません。.netrc に認証情報を指定するもご覧ください。
-t, --token String (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用および SAML を使用して Management API にアクセスするをご覧ください。
-m, --managementBase String (Apigee for Private Cloud の場合に必須)Apigee 管理ベース。デフォルト: https://api.enterprise.apigee.com
-r, --routerBase String (省略可)組織環境の仮想ホスト エイリアスを指定します。デフォルトは apigee.net です。仮想ホストの詳細については、Edge のドキュメントをご覧ください。
-n, --netrc String (省略可).netrc ファイルのパスを指定します。デフォルトは $HOME/.netrc です。.netrc に認証情報を指定するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。
-h, --help コマンド パラメータのヘルプを表示します。

apigee-istio token rotate-cert -o myorg -e test -u jdoe@google.com -k 2e238ffa15dc5ab6a1e97868e7581f6c60ddb8575478582c256d8b7e5b2677a8 -s 51058077223fa7b683c3bea845c5cca138340d1d5583922b6d465f9f918a4b08 --kid 2

出力

certificate successfully rotated

.netrc に認証情報を指定する

Edge Public Cloud を使用し、マシン api.enterprise.apigee.com のエントリがある場合、apigee-istio は、.netrc ファイルから usernamepassword(基本認証が必要な場合)を自動的に取得します。Apigee Private Cloud を使用している場合、マシンの値は managementBase URL と同じになります(例: http://192.162.55.100)。

Edge Public Cloud の場合:

machine api.enterprise.apigee.com
login jdoe@google.com
password abc123

Edge for Private Cloud の場合:

machine http://192.162.55.100
login jdoe@google.com
password abc123