Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dockerコンテナのセキュリティを考えてみよう@TOKUSHIMA Cybersecurit...

gangan
March 30, 2024

Dockerコンテナのセキュリティを考えてみよう@TOKUSHIMA Cybersecurity Meetup #14

TOKUSHIMA Cybersecurity Meetup #14 登壇資料

#### 備考

学生さんも多く参加していたため前半はコンテナ・Dockerについて、後半はタイトルについての登壇を行いました。

gangan

March 30, 2024
Tweet

More Decks by gangan

Other Decks in Education

Transcript

  1. About me 岩丸慎平 (@gangan_nikki) AI Webアプリケーションの開発・運用やってました (Vue.js, Java, AWS, k8s,

    etc.) Nuxt, UnJS Core contributor, etc. Vue・Nuxt 情報が集まる広場 / Plaza for Vue・Nuxt. Publication Owner 2024 author: GANGAN
  2. About me (学生時代) 北九州高専(制御系) → 鹿児島大学・大学院(情報系) → 東京でAI Webアプリ開発 7,8社ほどインターンに参加

    学生時代に200本以上、現在300本弱の技術記事を執筆 逆求人系の会社で就職支援・登壇なども行ってました 2024 author: GANGAN
  3. コンテナはWebアプリケーションで広く使われて いる AWS: ECS (Elastic Container Service) Google Cloud: CLoud

    Run Microsoft Azure: Azure Container Apps, Azure Container Instance, etc. Kubernetes: コンテナの運用管理・スケーリングをサポートするOSS 2024 author: GANGAN
  4. Upgrade to Pro — share decks privately, control downloads, hide

    ads and more … Docker との戦い ~研究室インフラおじさんへの… gangan December 20, 2019 Technology 0 99 2024 author: GANGAN
  5. Dockerfileの例 (Python) Dockerfile というものを用意することで 環境をコード化することが可能 強強エンジニアが作った環境のベストプラクティ スを流用できる 言語、ライブラリのバージョンを指定して明示す ることができる FROM

    python:3.7.5 RUN mkdir /var/www # workdir の指定 WORKDIR /var/www # 依存Python ライブラリ一覧コピー COPY requirements.txt ./ # 依存Python ライブラリインストール RUN pip install --no-cache-dir -r requirements.txt WORKDIR /var/www/src CMD ["uwsgi","--ini","/var/www/uwsgi.ini"] 2024 author: GANGAN
  6. 考えうるセキュリティリスク 1. OSのバージョンは問題ないか 2. ライブラリのバージョンは最新か 3. 脆弱性を放置していないか 4. 権限はどうなっているのか =>

    不備があると犯罪の踏み台や顧客情報の漏洩などに繋がる => OSレベルの知識が要求される 2024 author: GANGAN
  7. 適切な対応 1. 適切なイメージを選定しましょう -> LinuxではなくPython, NodeJSなどに限定する -> alipine、slim、distroressなど最適なサイズのイメージを選ぶ 2. マルチステージビルドを利用しましょう

    -> パッケージのビルド時に生成される不要なものを含めないように -> 必要に応じてShellすら削除する 3. 不要なものは積極的に削除しましょう -> 開発時のみ使うツール、スクリプト、ライブラリ、本番環境で必要ですか? 4. CI/CDで脆弱性を監視しましょう -> Trivyや各クラウドが用意するチェックツールを利用する 2024 author: GANGAN
  8. Dockerを見ながら… 1. 適切なイメージを選ぶ 2. alipine, slim, distroressなど、適切なイメージを 選ぶ 3. 「開発で必要なもの、本番で必要なものは異な

    る」 # syntax=docker/dockerfile:1.4 FROM --platform=$BUILDPLATFORM python:3.10-alpine AS build WORKDIR /app COPY requirements.txt /app RUN --mount=type=cache,target=/root/.cache/pip \ pip3 install -r requirements.txt COPY . /app ENTRYPOINT ["python3"] CMD ["app.py"] FROM builder as dev-envs RUN <<EOF apk update apk add git EOF RUN <<EOF addgroup -S docker adduser -S --shell /bin/bash --ingroup docker vscode EOF # install Docker tools (cli, buildx, compose) COPY --from=gloursdocker/docker / / 2024 author: GANGAN
  9. About me 岩丸慎平 (@gangan_nikki) AI Webアプリケーションの開発・運用やってました (Vue.js, AWS, k8s, etc.)

    Nuxt, UnJS Core contributor, etc. Vue・Nuxt 情報が集まる広場 / Plaza for Vue・Nuxt. Publication Owner 2024 author: GANGAN
  10. Vue・Nuxt 情報が集まる広場 / Plaza for Vue・Nuxt. Vue.js / Nuxtユーザーが気軽に 情報を得られる場所を目指して作成しました

    初学者がVue2系、Vue3系で迷わないよう に、初学者がとりあえず最初に調べてみる場 所を目指して広場という名前にしています 執筆してくれる方は随時募集中です https://github.com/shinGangan/comm_vue_nuxt 2024 author: GANGAN