「コンテナセキュリティ - Forkwell Library#26」の資料です。 https://forkwell.connpass.com/event/287259/
「コンテナセキュリティ - Forkwell Library#26」の資料です。 https://forkwell.connpass.com/event/287259/
今回は Docker のマルチステージビルドを使って Wheel が提供されていない Python パッケージを含む Docker イメージを作ってみる。 これだけだと、なんのこっちゃという感じなので、以下で前提から説明しておく。 まず、今の Python のパッケージングにはソースコード配布物 (sdist) と Wheel という二つのフォーマットが主に使われている。 ソースコード配布物は、文字通りソースコードをそのままパッケージングしたもの。 ソースコード配布物では、パッケージの中に Python/C API などで書かれた拡張モジュールがあっても、ソースコードの状態で含まれる。 それに対して Wheel は、拡張モジュールが含まれる場合にはビルドされたバイナリの状態で提供される。 そして、現行の pip はソースコード配布物をインストールするとき、一旦 Wheel にビルドした上で
NTTの須田です。この度、「Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド」という書籍を執筆しました。Z Labの五十嵐 綾 (@Ladicle)さん、宇佐美 友也 (@hiyosi)さんとの共著です。 Docker/Kubernetes開発・運用のためのセキュリティ実践ガイドAmazon: https://www.amazon.co.jp/dp/4839970505 Manatee (PDF版): https://book.mynavi.jp/manatee/books/detail/id=114724 Docker や Kubernetes を安全に使うための設定方法やツールについて、 本書ほど網羅的かつ詳細に記した書籍はおそらく他にはありません。Dockerに代わるコンテナエンジンとして話題のPodmanなど、最新のソフトウェアに関する情報もふんだんに盛り
最近、コンテナ環境を標的とする攻撃の数が増加しています。私たちは、誤って構成されたオープン状態の Docker Daemon API ポートを対象とする組織的な攻撃活動を追跡してきました。この永続的な攻撃活動は数か月間続いており、1日あたり数千回の攻撃がほぼ毎日行われています。これは、今までに見た中で最も高い数値であり、これまでに目撃した数をはるかに超えています。したがってこれらの攻撃は、継続的に実行および維持するために、必要十分なリソースとインフラを備えた攻撃者によって行われています。つまり単独の攻撃ではないと考えられます。 次のグラフは、日別の攻撃量を示しています。 この攻撃では、攻撃者は誤って構成されたオープン状態の Docker API ポートを悪用して、悪意のあるマルウェアを含む Ubuntu コンテナを実行します。このコンテナからクリプトマイニングが実行され、さらに他のコンテナ
BusterとかStretchという名前が見慣れない方もいるかもしれませんが、これはLinuxディストリビューションとしてシェアの大きなDebianのコードネームです。 Debianバージョンが少し古いStretchの方がちょびっとサイズが小さかったりはしますが、まあ実用的にはサポートが長い方がいいですよね。slimを使ってGCCとかのコンパイラを自前でダウンロードしている記事とかもたまに見かける気がしますが、マルチステージビルドであれば、そんなにケチケチしなくていいのと、パッケージダウンロードは逐次処理なので遅く、処理系が入ったイメージのダウンロードの方が高速です。並列で処理されるし、一度イメージをダウンロードしてしまえば、なんどもビルドして試すときに効率が良いです。また、多くのケースでネイティブのライブラリも最初から入っており、ビルドでトラブルに遭遇することはかなり減るでしょう。 Py
Version 1.94 is now available! Read about the new features and fixes from September. The Visual Studio Code Dev Containers extension lets you use a container as a full-featured development environment. It allows you to open any folder inside (or mounted into) a container and take advantage of Visual Studio Code's full feature set. A devcontainer.json file in your project tells VS Code how to acces
コンテナにはさまざまなメリットがある。だが、それに伴ってアーキテクチャやプラクティスに変化が起き、新たな課題やチャンスも生まれる。 これまでのセキュリティモデルは、複数階層のセキュリティ製品を使うことでITシステムの課題に対処してきた。これによってアジャイル開発の天敵となるストレスや低速なプロセスが生み出されていた。だが新しいアプローチは結果を重視し、テクノロジーツールやプラクティスを活用してセキュリティを確保する。 継続的デリバリー(CD)において、セキュリティの鍵となるのが自動化だ。開発者はコンテナを使うことで、顧客のニーズに集中してコードを素早く作成できる。だが、広く使われているコンテナイメージとパブリックコンテナリポジトリがサプライチェーン攻撃を受けた場合、自動化とコンテナインフラの規模によっては被害が悪化する恐れがある。 Docker Hubのハッキング 2019年4月、世界最大
このことから、podman は Red Hat がオープンソース・プロジェクトとして、発展途上であると見なされ、dockerコマンドを置き換えるまでに熟成されるには、もう少し時間が必要と考えられる。 (3) OCIに準拠するコンテナイメージの開発、管理、および、コンテナとして実行 Docker Hubに登録されたコンテナを実行すること、podmanでビルドして、レジストリに登録したイメージを、dockerコマンドで実行することも可能であり、互換性に問題はないと見られる。 (4) デーモンレスのコンテナエンジン podman は、Dockerデーモンの様な root で動作するデーモンを必要としない。つまり、podman コマンドだけで、デーモンの助けを必要とせずにコンテナを実行できる。 (5) コンテナはルートレスモードで実行可能 ルートレスのコンテナは、それらを起動したユーザーよりも多く
Apple Silicon向けのDocker Desktop RC 2で、バックエンドを切り替えられるオプションが追加されました。 今までのqemuベースのバックエンド以外に、virtualization.frameworkを使ったバックエンドも追加されて、オプションのexperimentalのチェックボックスで有効化できます。 といっても、qemuも裏ではHypervisor.frameworkを利用していたので、Appleの提供する仕組みには乗っています。Virtualization.frameworkは高水準なAPIでLinuxに特化してます。VZLinuxBootLoaderというAPIが提供されています。 Virtualization.Frameworkも現在はおそらくはHypervisor.frameworkの上に構築されていると思います。実際、このオプションのON/OFFを切
1. DockerCon SF19 で発表の、基礎→マルチ・ステージ・ビルド→最新動向まで Sakura Internet, Inc. Masahito Zembutsu @zembutsu Docker Meetup Kansai #3 #dockerkansai May 24, 2019 Dockerfileを改善するための Best Practice 2019年版 2. DockerCon SF19 での発表に基づく内容 • Dockerfile Best Practices https://www.slideshare.net/Docker/dcsf19-dockerfile-best-practices 2 • 動画もご覧ください https://www.docker.com/dockercon/2019-videos?watch=dockerfile-best-practice
Java アプリケーションを Docker コンテナ上で実行しようとしたときに、ベースイメージとしてどの Docker イメージを選ぶのがよいかを考えてみます。 はじめに Java で Web アプリケーションを開発して運用、というと、昔は Tomcat をインストールしたサーバに JAR ファイルや WAR ファイルを配布してデプロイしていたような記憶が微かに残っているのですが、数年前からは Spring Boot のように組み込み Tomcat などを採用し、Maven や Gradle のビルドオートメーションツールの力を借りて Java アプリケーションの実行に必要な JAR ファイルをひとまとめにした fat JAR (uber JAR) を構築し、単体の JAR ファイルだけを Java がインストールされているサーバに配布してデプロイ… とすることが圧倒的に多くなった気がして
なお、distrolessのイメージは2種類(3通りの名前)がありますが、Python 3.5はバグ修正はせず、セキュリティ修正のみでサポート期限が2020/9/13というステータスなので、本エントリーでは3.7の方のみを扱います。 gcr.io/distroless/python3: Python 3.5.3 gcr.io/distroless/python3-debian9: Python 3.5.3(上のイメージと同一) gcr.io/distroless/python3-debian10: Python 3.7.3 一応サンプル等もありますが、どれも1ファイルで構成されたサンプルスクリプトばかりです。前回のsite-packagesにコピーする方法を軽く試したところうまく動かず、シェルもpipもensurepipもないため、ビルドイメージにすることもできません。いろいろ調べた結果、
背景 上記のスライドを見て初めて1コンテナ1GBは重過ぎるということに気づかされました。 色々詰め込んでいるしあくまで趣味レベルで触っているだけでまあ良いかとずっと思ってましたが 業務でも触ることを考えて色々減量を考えました。 そんな中「docker-slim」が良いよって話を聞いて使ってみて想像以上に良かったのでご紹介。 公式HPは下記 http://dockersl.im/ Dockerイメージが大きい弊害 スライドの中からの引用です。 大きければビルドもアップロード/ダウンロード時間が増える。 当然のことですね。且つ待ち時間が多くなりTwitterする時間も確かに増えますね(笑) イメージビルド、CI時間が増える イメージのダウンロード時間が増える イメージのアップロード時間が増える 生産性が下がる Twitterする時間が増える 減量方法 減量する方法は色々なところで議論されていま
こんにちは、主に検索周りを担当しているエンジニアの伊藤です。 この記事は Enigmo Advent Calendar 2020 の 17 日目の記事です。 みなさんは適切なDockerfileを書けていますか?とりあえずイメージのビルドが出来ればいいやとなっていませんか? 今回は自戒の意味も込めて、改めてDockefileのベストプラクティスについて触れつつ、 そもそもDockerfileを書かずにコンテナイメージをビルドする方法とコンテナセキュリティに関する内容についてまとめてみました。 Dockerfileのベストプラクティス イメージサイズは極力小さくしよう ビルドキャッシュを活用しよう Dockerfileに関する悩みどころ Dockerfileを書かないという選択肢 Buildpack Cloud Native Buildpacks CNBの仕組み デモ CNBのメリット セキ
今話題のこれ。 kubernetes.io これに関しての日本語情報として、 @inductor が相当詳細に記事を書いてくれている。 blog.inductor.me blog.inductor.me にも関わらず、未だに完全に間違った解釈をしている人が多く観測される。記事をちゃんと読めば理解できるはずなのだけど、たぶんタイトルしか読んでいない。 タイトルしか読まないのであれば、あえて強めのタイトルにしておけば目にはつくかなと思い、改めて書いてみることとした。 Dockerは非推奨じゃないし、これからもバンバン使え まず @inductorが解説しているとおり、k8sを使っていない人には全く関係のない話なので、今まで通りDockerを使って良い。 が、もう一つ誤解を解いておきたいのが 自分の環境でDockerを使ってイメージ作成し、Kubernetesにデプロイしている人にも、今回の件は
By Jorge Castro, Duffie Cooley, Kat Cosgrove, Justin Garrison, Noah Kantrowitz, Bob Killen, Rey Lejano, Dan “POP” Papandrea, Jeffrey Sica, Davanum “Dims” Srinivas | Wednesday, December 02, 2020 Update: Kubernetes support for Docker via dockershim is now removed. For more information, read the removal FAQ. You can also discuss the deprecation via a dedicated GitHub issue. Kubernetes is deprecating
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く