Slide 1

Slide 1 text

Masaya Aoyama CyberAgent adtech studio MasayaAoyama @amsy810 Based on 「Keynote: Running with Scissors – Liz Rice」 Capabilities and Privileges + KubeCon Recap @Docker Meetup Tokyo #23

Slide 2

Slide 2 text

連載「今こそ始めよう!Kubernetes 入門」 @ThinkIT Japan Container Days v18.04 Keynote 登壇 CKA (CKA-1700-0138-0100)、CKAD (CKAD-1800-0002-0100) OpenStack Active Technical Contributor Masaya Aoyama (@amsy810) Infrastructure Engineer

Slide 3

Slide 3 text

日本からは 45 名〜が参加 (2017 EU 3 名〜、2017 NA: 33 名〜) 日本交流会@コペンハーゲン現地

Slide 4

Slide 4 text

Capabilities and Privileges Index > Running images as root user What is Capabili4es Add Capabili4es At the Kubernetes environment and PodSecurityPolicy We needs more isola4on?

Slide 5

Slide 5 text

Running images as root user page 05 # nginx:latest に capsh CLI を入れただけのイメージ $ docker run --name kubecon -d \ masayaaoyama/nginx:capsh # root 権限で動作しているケースが多い $ docker exec -it kubecon whoami root # ホスト上からは自ホストの root プロセスとして見える $ ps -C nginx -o user,uid,cmd USER UID CMD root 0 nginx: master process nginx -g daemon off;

Slide 6

Slide 6 text

What is Capabili>es page 06 # root ではあるが一部の権限は与えられていない $ docker exec -it kubecon hostname changed-name hostname: you must be root to change the host name # デフォルトで与えられる Capabili>es $ docker exec -it kubecon capsh --print | grep Current Current: = cap_chown,cap_dac_override,cap_fowner,cap_fse4d,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_ bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_seScap+eip 参考: Man page of CAPABILITIES hXps://linuxjm.osdn.jp/html/LDP_man-pages/man7/capabili4es.7.html

Slide 7

Slide 7 text

Add Capabili>es page 07 # 一部の Capabili>esを有効化する $ docker run --name kubecon -d --cap-add SYS_ADMIN masayaaoyama/nginx:capsh Current: = cap_chown,cap_dac_override,cap_fowner,cap_fse4d,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_servic e,cap_net_raw,cap_sys_chroot,cap_sys_admin,cap_mknod,cap_audit_write,cap_seScap+eip # Host と同等の権限を渡す $ docker run --name kubecon -d --privileged=true masayaaoyama/nginx:capsh Current: = cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fse4d,cap_kill,cap_setgid,cap_setuid,cap_setpca p,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_ owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,ca p_sys_nice,cap_sys_resource,cap_sys_4me,cap_sys_Xy_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_contr ol,cap_seScap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend+eip

Slide 8

Slide 8 text

At the kubernetes environment 一般ユーザ Root Container kubectl Host にデータ書き込み (ex. hostPath) 消せない… PodSecurityPolicy の検討を… •  Priviledge の利用可否 •  許可する Capabili4es のリスト •  利用を許可する hostPath

Slide 9

Slide 9 text

9 GREAT K8s We needs more secure Isolation? For beXer security with container run4me Kata Containers gVisor

Slide 10

Slide 10 text

Cloud Native に近しい技術や CNCF がホストするプロジェクトについて共有し合う会です! 昨今はコンテナ関係のエコシステムが大量に増えてきましたが、 それらの技術検証結果などを発表しあう場として利用していきたいと思っており、仲間を募集しております。 1. NATS on Kubernetesの 良いところ (仮) 2018 年 3 月に CNCF の incubator に仲間入 りを果たした、「Cloud Native なアプリケーション 向けのハイパフォーマンス Messaging システ ム」を提供する NATS について話します。 2. Fluent Bit vs Fluentd 1.x 「Fluentd 1.x vs Fluentd」および「Fluent Bit vs Fluentd 1.x」 の性能や利用可能なプラグインの 比較について話します。 3. サービスメッシュと仲間たち 
 〜Istio vs Conduit vs etc〜 様々な領域で話題になっている ServiceMesh。 Istio や Conduit など、様々な選択肢があります が、それぞれの特徴やできることについて話しま す。

Slide 11

Slide 11 text

Do you have any questions? @amsy810 Thank you for your attention.