1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM Cloud: 東京/大阪リージョンのprivate onlyの環境からインターネットに出ることなくCLIを実行する方法

Last updated at Posted at 2022-07-12

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アクセスする方法 -> 成功

  1. DALにVPCを構成し、proxyサーバーをsquidなどで構成する。
  2. DALに以下のVPEの構成を行う。詳細手順はこちら
    1. Account Management
    2. Global Catalog
    3. Global Search
    4. Global Tagging
    5. Usage Metering
    6. Enterprise Management
    7. Resource Controller
    8. User Management
  3. TGWでTokyoおよびOsakaのVPCと、このDALのVPCを接続する。
  4. Security Groupを構成し、Tokyo/OsakaのCLIを呼び出すVSIからDALのproxyサーバーに対してアクセス許可を与える。
  5. 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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?