SlideShare a Scribd company logo
Masaya Aoyama
CyberAgent adtech studio
MasayaAoyama @amsy810
Based on 「Keynote: Running with Scissors – Liz Rice」
Capabilities and Privileges
+ KubeCon Recap
@Docker Meetup Tokyo #23
連載「今こそ始めよう!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
日本からは 45 名〜が参加
(2017 EU 3 名〜、2017 NA: 33 名〜)
日本交流会@コペンハーゲン現
地
Capabilities and Privileges
Index >
Running images as root user
What is Capabilities
Add Capabilities
At the Kubernetes environment and PodSecurityPolicy
We needs more isolation?
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;
What is Capabilities
page
06
# root ではあるが一部の権限は与えられていない
$ docker exec -it kubecon hostname changed-name
hostname: you must be root to change the host name
# デフォルトで与えられる Capabilities
$ docker exec -it kubecon capsh --print | grep Current
Current: =
cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_
bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+eip
参考: Man page of CAPABILITIES
https://linuxjm.osdn.jp/html/LDP_man-pages/man7/capabilities.7.html
Add Capabilities
page
07
# 一部の Capabilitiesを有効化する
$ docker run --name kubecon -d
--cap-add SYS_ADMIN
masayaaoyama/nginx:capsh
Current: =
cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service
,cap_net_raw,cap_sys_chroot,cap_sys_admin,cap_mknod,cap_audit_write,cap_setfcap+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_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap
,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_o
wner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_
sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,
cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend+eip
At the kubernetes
environment
一般ユーザ Root Container
kubectl
Host にデータ書き込み
(ex. hostPath)
消せない…
PodSecurityPolicy の検討を…
• Priviledge の利用可否
• 許可する Capabilities のリスト
• 利用を許可する hostPath
9
We needs more secure
Isolation?For better security with container runtime
Kata Containers
gVisor
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 など、様々な選択肢がありま
すが、それぞれの特徴やできることについて
話します。
Do you have any questions?
@amsy810
Thank you for your attention.

More Related Content

PPTX
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PDF
Datadog による Container の監視について
PDF
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったこと
PPTX
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
PPTX
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
PDF
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Datadog による Container の監視について
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったこと
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2

What's hot (20)

PDF
Recap: [Code fresh] Deploying to kubernetes thousands of times per day @kuber...
PPTX
Kubernetesと暮らすRancherな生活
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
PDF
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
PPTX
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
PPTX
20220302_TechDojo_OpenShift_BootCamp_1章概要
PDF
cndjp: 「Microclimate」by capsmalt
PDF
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
PDF
Magnum - A new OpenStack API for Containers -
PDF
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
PDF
KustomizeとGitHub Actionsを利用したUbieのデプロイの仕組み
PDF
GitLab Auto DevOps with Container CI/CD
PPTX
DockerCon '17 Feedback at PaaS JP
PDF
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
PDF
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
PPTX
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
PDF
Githubを使って簡単に helm repoを公開してみよう
PDF
Cloud Foundry Container-to-Container Networking
Recap: [Code fresh] Deploying to kubernetes thousands of times per day @kuber...
Kubernetesと暮らすRancherな生活
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
Jenkins x Kubernetesが簡単だと思ったら大変だった話
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
20220302_TechDojo_OpenShift_BootCamp_1章概要
cndjp: 「Microclimate」by capsmalt
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
Magnum - A new OpenStack API for Containers -
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
KustomizeとGitHub Actionsを利用したUbieのデプロイの仕組み
GitLab Auto DevOps with Container CI/CD
DockerCon '17 Feedback at PaaS JP
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
Githubを使って簡単に helm repoを公開してみよう
Cloud Foundry Container-to-Container Networking
Ad

Similar to 5分でわかる Capabilities と Privilege + KubeCon Recap (20)

PPTX
C#エンジニアのためのdocker kubernetesハンズオン
PDF
CyberAgentのインフラについて メディア事業編 #catechchallenge
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
”30分”ぐらいでわかる「Kubernetes」について
PPTX
C#エンジニアのためのdocker kubernetesハンズオン (再)
PPTX
AKS と ACI を組み合わせて使ってみた
PDF
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
PPTX
Getting Started With AKS
PDF
XP祭り2021LT資料(「俺のLT」完結編)
PDF
Kubernetes 初心者の僕からの JKD 参加報告
PDF
AlibabaCloudではじめるKubernetes
PDF
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
PDF
20190725 Argo Project Latest News
PDF
Open Source x AI
PDF
Osc fukuoka xAI Meetup
PDF
Azuredevopsakskeda
PDF
Introduction of Azure Docker Integration
PPTX
20181228 ncf to_azure_batch
PPTX
OpenStack Project Update Neutron Update
PDF
Tekton 入門
C#エンジニアのためのdocker kubernetesハンズオン
CyberAgentのインフラについて メディア事業編 #catechchallenge
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
”30分”ぐらいでわかる「Kubernetes」について
C#エンジニアのためのdocker kubernetesハンズオン (再)
AKS と ACI を組み合わせて使ってみた
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
Getting Started With AKS
XP祭り2021LT資料(「俺のLT」完結編)
Kubernetes 初心者の僕からの JKD 参加報告
AlibabaCloudではじめるKubernetes
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
20190725 Argo Project Latest News
Open Source x AI
Osc fukuoka xAI Meetup
Azuredevopsakskeda
Introduction of Azure Docker Integration
20181228 ncf to_azure_batch
OpenStack Project Update Neutron Update
Tekton 入門
Ad

5分でわかる Capabilities と Privilege + KubeCon Recap

  • 1. Masaya Aoyama CyberAgent adtech studio MasayaAoyama @amsy810 Based on 「Keynote: Running with Scissors – Liz Rice」 Capabilities and Privileges + KubeCon Recap @Docker Meetup Tokyo #23
  • 2. 連載「今こそ始めよう!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
  • 3. 日本からは 45 名〜が参加 (2017 EU 3 名〜、2017 NA: 33 名〜) 日本交流会@コペンハーゲン現 地
  • 4. Capabilities and Privileges Index > Running images as root user What is Capabilities Add Capabilities At the Kubernetes environment and PodSecurityPolicy We needs more isolation?
  • 5. 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;
  • 6. What is Capabilities page 06 # root ではあるが一部の権限は与えられていない $ docker exec -it kubecon hostname changed-name hostname: you must be root to change the host name # デフォルトで与えられる Capabilities $ docker exec -it kubecon capsh --print | grep Current Current: = cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_ bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+eip 参考: Man page of CAPABILITIES https://linuxjm.osdn.jp/html/LDP_man-pages/man7/capabilities.7.html
  • 7. Add Capabilities page 07 # 一部の Capabilitiesを有効化する $ docker run --name kubecon -d --cap-add SYS_ADMIN masayaaoyama/nginx:capsh Current: = cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service ,cap_net_raw,cap_sys_chroot,cap_sys_admin,cap_mknod,cap_audit_write,cap_setfcap+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_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap ,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_o wner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_ sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control, cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend+eip
  • 8. At the kubernetes environment 一般ユーザ Root Container kubectl Host にデータ書き込み (ex. hostPath) 消せない… PodSecurityPolicy の検討を… • Priviledge の利用可否 • 許可する Capabilities のリスト • 利用を許可する hostPath
  • 9. 9 We needs more secure Isolation?For better security with container runtime Kata Containers gVisor
  • 10. 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 など、様々な選択肢がありま すが、それぞれの特徴やできることについて 話します。
  • 11. Do you have any questions? @amsy810 Thank you for your attention.