1. はじめに
現在は、東京/大阪リージョンで、private onlyのVSIからCLIを直接実行することはできない。
回避策として、publicへのアクセスが可能なproxyサーバーを指定してCLIを実行することもできるが、本稿では別の回避策を紹介したい。
以下では、自動的にCLI更新を試行しないようにあらかじめ以下が構成されている。
$ ibmcloud config --check-version false
2. private endpoint(CSE)経由でのアクセス -> 失敗
これは、東京リージョンに、private.jp-tok.iam.cloud.ibm.com
というendpointが存在しないためである。このendpointがないため、USリージョンなどにproxyを配置しても結局動かない。
$ ibmcloud login -a private.cloud.ibm.com --apikey @ibmcloud_apikey -r jp-tok
API endpoint: https://private.cloud.ibm.com
Targeted region jp-tok
Authenticating...
Post "https://private.jp-tok.iam.cloud.ibm.com/identity/token": dial tcp: lookup private.jp-tok.iam.cloud.ibm.com on 161.26.0.7:53: no such host
API endpoint: https://private.cloud.ibm.com
Region: jp-tok
Not logged in.
FAILED
Unable to authenticate.
debug情報
$ IBMCLOUD_TRACE=true ibmcloud login -a private.cloud.ibm.com --apikey @ibmcloud_apikey -r jp-tok 2>&1 | grep -i host
Host: private.us-south.globalcatalog.cloud.ibm.com
Host: private.us-south.globalcatalog.cloud.ibm.com
Host: private.us-south.globalcatalog.cloud.ibm.com
Host: private.us-south.globalcatalog.cloud.ibm.com
Host: private.us-south.globalcatalog.cloud.ibm.com
Host: private.us-south.globalcatalog.cloud.ibm.com
Host: private.jp-tok.iam.cloud.ibm.com
Post "https://private.jp-tok.iam.cloud.ibm.com/identity/token": dial tcp: lookup private.jp-tok.iam.cloud.ibm.com on 161.26.0.7:53: no such host
3. private endpoint(VPE)経由でのアクセス -> 失敗
そもそも東京リージョンに、CLIアクセスのためのVPEが存在しないので利用できない。
4. DALのProxyサーバー経由でVPEアクセスする方法 -> 成功
- DALにVPCを構成し、proxyサーバーをsquidなどで構成する。
- DALに以下のVPEの構成を行う。詳細手順はこちら
- Account Management
- Global Catalog
- Global Search
- Global Tagging
- Usage Metering
- Enterprise Management
- Resource Controller
- User Management
- TGWでTokyoおよびOsakaのVPCと、このDALのVPCを接続する。
- Security Groupを構成し、Tokyo/OsakaのCLIを呼び出すVSIからDALのproxyサーバーに対してアクセス許可を与える。
- Tokyo/OsakaのCLIを呼び出すVSIで、DALのproxyサーバー(以下の例では
192.168.0.19
)を利用するように構成する。参考
$ export https_proxy=http://192.168.0.19:3128
6 . プライベートエンドポイント(private.cloud.ibm.com
)と--vpc
オプションを指定してアクセスする。
$ ibmcloud login -a private.cloud.ibm.com --vpc --apikey @ibmcloud_apikey -r jp-tok
API endpoint: https://private.cloud.ibm.com
Targeted region jp-tok
Authenticating...
OK
Targeted account xxx (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) <-> xxxxxxx
API endpoint: https://private.cloud.ibm.com
Region: jp-tok
User: xxxxxx@xx.xxx.xxx
Account: xxx (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) <-> xxxxxxx
Resource group: No resource group targeted, use 'ibmcloud target -g RESOURCE_GROUP'
CF API endpoint:
Org:
Space:
$ ibmcloud plugin install vpc-infrastructure
$ ibmcloud is vpcs
(問題なく東京リージョンのサーバーが表示された)
$ ibmcloud is instances
(問題なく東京リージョンのサーバーが表示された)
以下より、VPEアクセスの際にはtokyo
などのキーワードが入らないアドレスにアクセスしていることがわかる。
debug情報
$ IBMCLOUD_TRACE=true ibmcloud login -a private.cloud.ibm.com --vpc --apikey @ibmcloud_apikey -r jp-tok 2>&1 | grep -i host
Host: private.globalcatalog.cloud.ibm.com
Host: private.globalcatalog.cloud.ibm.com
Host: private.globalcatalog.cloud.ibm.com
Host: private.globalcatalog.cloud.ibm.com
Host: private.globalcatalog.cloud.ibm.com
Host: private.globalcatalog.cloud.ibm.com
Host: private.iam.cloud.ibm.com
Host: private.iam.cloud.ibm.com
Host: private.accounts.cloud.ibm.com
Host: private.user-management.cloud.ibm.com
Host: private.user-management.cloud.ibm.com