Ian Lewis
●
ianlewis@
●
Google
●
Tokyo, Japan
●
#kubernetes, #go,
#python
Slide 3
Slide 3 text
Kubernetes
● コンテナ
オーケストレーション
● インフラ
API/
フレームワーク
Slide 4
Slide 4 text
Guestbookアプリ
●
Web Frontend
○ ウェブアプリ
○
HTML/JS/CSS
●
Message
○ メッセージを
保存・閲覧
●
NGWord
○
NG
ワードを
検出する
Kubernetes Cluster
Web
Frontend
Redis
NGWord
message
Slide 5
Slide 5 text
Kubernetes API Server
1.
フロントエンド
Pod
から
トークンを取得
2.
トークンを利用し、
API
サーバーを攻撃
3.
シークレットなどを取得
し、さらに
サービスを攻撃
Kubernetes Cluster
Web
Frontend
Redis
NGWord
message
①
②
③
Slide 6
Slide 6 text
Mitigate 1 & 2: RBAC
●
Role Based Access Control
● ユーザーやサービスアカウントへロールを付与
● ロールが権限を持つ
○
get secrets
○
update configmap
○
etc.
●
RBAC
設定はネームスプペース範囲
●
GKE
では
IAM
と連携
Mitigate 2: API Server Firewall
●
API
サーバーへのアクセスを
IP
アドレスに制限
●
GKE:
○ gcloud container clusters create
--enable-master-authorized-networks
--master-authorized-networks=....
Slide 9
Slide 9 text
Mitigate 3: Network Policy
● データベースへのアクセスを必要のある
Pod
に制限
● ラブルセレクターで
Pod
を選択
● ネットワークプラグインで実装されてる
: Calico, Weave, etc.