1. はじめに
ibmcloudコマンドを使ってログインするには、ibmcloud login
とかibmcloud login -sso
を使えばいいのだが、毎回ID/Passwordを入力して認証するのが面倒である。
API Keyを使えばこうした手間を省けることが意外に知られていないので、念の為紹介しておく。
なお、IBM Cloud CLIをVPCにインターネットアクセスなしに導入する方法はこちらを参照して下さい。
2. API Keyの取得
IBM Cloudの管理コンソールから、Manage -> Access(IAM) -> API Keys
とたどり、API Keyを生成する。
-
Create an IBM Cloud API Key
を押下 - API Keyに対する適当なNameやDescriptionを入力。
- API Keyが生成されるので、これをコピーしてファイルに保管しておく(今回は
ibmcloud_apikey
とする)。なお、紛失した場合は二度とアクセスできないため、再作成になる。
3. API Keyを使ったログイン
以下に幾つかの例を記載する。
3-1. API Keyのみを指定した場合
$ ibmcloud login --apikey @ibmcloud_apikey
3-2. API Endpointやリージョンを指定した場合
$ ibmcloud login -a cloud.ibm.com --apikey @ibmcloud_apikey -r jp-tok
3-3. API Endpoint(Private)を指定した場合
- CLIの最新バージョンをチェックしに行くのを無効にする。無効にしておかないと、cloud.ibm.comへのアクセスも試行される。詳細は、https://qiita.com/testnin2/items/2c89c13ad90640f0df91 も参考のこと。
- private endpoint(CSE経由)やprivate endpoint(VPE)は現在us-south(Dallas)やus-east(WDC)でしか利用できないが、後述の通りTrasit Gateway/DAL or WDCのProxy/VPEを併用することで回避することも可能
$ ibmcloud config --check-version=false
$ ibmcloud login -a private.cloud.ibm.com --apikey @ibmcloud_apikey -r us-south
3-4. proxyを指定してPublic経由でアクセスする場合
$ export https_proxy=http://10.0.0.4:3128
$ ibmcloud login -a cloud.ibm.com --apikey @ibmcloud_apikey -r jp-tok
3-5. proxy+VPE+Private経由でアクセスする場合
IBM Cloud: 東京/大阪リージョンのprivate onlyの環境からインターネットに出ることなくCLIを実行する方法を参照
$ export https_proxy=http://192.168.0.19:3128
$ ibmcloud login -a private.cloud.ibm.com --vpc --apikey @ibmcloud_apikey -r jp-tok