LoginSignup
2
1

More than 3 years have passed since last update.

SSL インスペクション環境下で Kaggle API を使う

Posted at

概要

社内教育など、会社が学校から Kaggle API を使いたくなる場面があると思います。ところが、会社や学校では大抵 UTM が導入されており、外部の API を使うことは容易ではありません。

一部の UTM は SSL インスペクション機能を提供しており、SSL で暗号化された通信を監視するためにプロキシサーバー上で一度通信を復号化します。この復号化の際にサーバー証明書が UTM が独自に発行したものに差し替わるため、クライアント側に UTM の独自 CA 証明書をインストールし、その CA 証明書を使って認証する必要があります。

認証に使う CA 証明書の指定方法はアプリケーションによって異なり、OS の環境変数を参照するものと、アプリケーション固有の設定ファイルで指定するものがあります。Kaggle API は後者で、設定ファイル kaggle.json に CA 証明書を指定する裏オプションを持っています。ただし、この記事を書いている時点の v1.5.8 の README にはこのオプションは明記されていないため、今後のバージョンアップでひっそりと使えなくなるかもしれません。

解決方法

1. UTM の独自 CA 証明書をインストール

UTM の独自 CA 証明書をインストールします。独自 CA 証明書の入手方法は UTM 毎に異なるため、UTM の管理者に聞いてください。独自 CA 証明書を入手したら、インストールします。インストール方法は以下の記事が詳しいです。

独自(root)CA のインストール方法

2. Kaggle API の設定ファイルに独自 CA 証明書のパスを指定

kaggle.json の ssl_ca_cert オプションに、独自 CA 証明書のパスを指定します。以下は Ubuntu の場合です。Ubuntu だと全 CA 証明書を束ねた CA バンドル /etc/ssl/certs/ca-certificates.crt があるので、それを指定します。

少し脱線しますが、Kaggle API はプロキシサーバーも設定ファイルで指定します。OS の環境変数 (HTTP_PROXY など) は読み込んでくれないため、注意してください。

{
  "username": ***,
  "key": ***,
  "proxy": ***,
  "ssl_ca_cert": "/etc/ssl/certs/ca-certificates.crt"
}
2
1
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
2
1