🔒

OpenTelemetryやGoのサプライチェーンセキュリティ対策の記事など: Neco Weekly (2023-04-14号)

2023/04/17に公開

Neco Weekly (2023-04-14号)

サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。

今回は第29回目の記事となります。

👀 Notable Articles

OpenTelemetry Up and Running

https://medium.com/@magstherdev/opentelemetry-up-and-running-b4c58eaf8c05

OpenTelemetry における分散トレージングの概要、各種コンポーネントの役割、デプロイ方法、OpenTelemetry Operator, 実際のアプリケーションでトレーシングを行う方法などが紹介されています。
さらに Context Propagation や Sampler に関するブログも紹介されていて、この記事を読むと OpenTelemetry の外観をつかむことができます。

今日から分散トレーシングに対応しないといけなくなった人のための opentelemetry-go 入門

https://blog.cybozu.io/entry/2023/04/12/170000

上記の OpenTelemetry Up and Running で OpenTelemetry の外観をつかむことができたら、次はこちらの記事で opentelemetry-go の使い方を学ぶことができます。

Supply chain security for Go, Part 1: Vulnerability management

https://security.googleblog.com/2023/04/supply-chain-security-for-go-part-1.html

この記事では、Go 言語におけるサプライチェーンセキュリティを強化するための取り組みが紹介されています。

パッケージに関する情報 のページでは、このパッケージが依存しているライブラリの一覧がやそれらのライセンス、OpenSSF のスコアなどを確認することができます。
また、脆弱性データベースのエントリー のページは、Go のセキュリティチームによりレビューされていて説明が非常にわかりやすく、またどの関数を呼び出すとこの脆弱性が発生するのかが記載されています。
さらには、この脆弱性情報を利用したセキュリティチェックツール govulncheck の開発が進められており、このツールを利用することで自分たちのソースコードが脆弱性を含むパッケージを利用していないかをチェックすることができます。

脆弱性が発見された際に自分たちのコードが実際に影響を受けるかどうかを判断するのは大変なので、このような取り組みが進んでいくことは非常にありがたいですね。

"kubectl logs"実行時に"unable to retrieve container logs"が出力される件のサポートケースの紹介

https://qiita.com/yosshi_/items/09557c4b40bd4b6a976b

Kubernetes におけるトラブルシューティングの進め方を詳細に解説している記事です。
この記事では "kubectl logs" でログが取得できない問題を取り上げていますが、Kubernetes のトラブルシューティング全般に役立つ情報がたくさん書かれています。

Go の goroutine / channel は全然簡単じゃないので errgroup を使おう

https://eihigh.hatenablog.com/entry/2023/04/08/220538

goroutine で並列処理を記述するときに便利な errgroup の紹介記事です。
WaitGroup を利用するよりも簡単に書けていいですね。

How to monitor Kubernetes Controllers

https://povilasv.me/how-to-monitor-kubernetes-controllers/

モニタリングする際の指標として RED や The Four Golden Signals などがありますが、これらは Kubernetes のコントローラーには適していません。
そこでこの記事では、Kubernetes のコントローラーのための Four Golden Signals を紹介しています。

🛠️ Tools, Frameworks, Libraries

Kubernetes Goat: Interactive Kubernetes Security Learning Playground 🚀

https://madhuakula.com/kubernetes-goat/

Kubernetes のセキュリティを学ぶための環境を提供するツールです。
AWS や GCP を使って環境を構築することもできますし、kind を使って手元に環境を構築することもできます。

このツールを利用すると、様々なセキュリティの問題や攻撃手段を実際に試すことができ、さらにその対策ツールの動作を確認することができます。
例えば、trufflehog というツールを利用して Git リポジトリに含まれる秘密情報を検出するシナリオや、tetragon を導入してファイルシステムへのアクセスを検出するシナリオなどが用意されています。

Going from Packet Where Aren’t You to pwru

https://cilium.io/blog/2023/03/22/packet-where-are-you/

pwru という eBPF を利用した Linux のネットワークパケットをトレースするためのツールを紹介している記事です。
Kubernetes でネットワークのトラブルシューティングをおこなう際には、いろいろな要素が絡んでくるためどこでパケットがドロップされているのか調べるのが難しかったりするのですが、このツールを使うと便利そうですね。

Nauticus

https://nauticus.edixos.com/

Kubernetes のマルチテナントをサポートするためのツールです。
Space というカスタムリソースを作ると、ResourceQuota, NetworkPolicy, RBAC など必要な関連リソースを自動で作成してくれます。
ただ、Space と Namespace が1対1なので、1つのテナントで複数の Namespace を使うことはできないようです。

🤝 Events

Kubernetes 変更内容共有会(v1.27)

https://kubernetes-updates.connpass.com/event/280927/

恒例の Kubernetes の変更内容共有会です。いつもお世話になっております。

3-shake SRE Tech Talk #5

https://mrtc0.notion.site/eBPF-Security-Observability-3-shake-SRE-Tech-Talk-5-affccbc3cd844c14bab9bf508126ff79

eBPF の解説や eBPF を使ったセキュリティツールを紹介した後、eBPF を使ったセキュリティソフトウェアの難しさなどを紹介しています。

あとがき

今週からいよいよ KubeCon + CloudNativeCon 2023 EU の開催ですね。
弊社からも3名参加しております。
面白そうな発表が盛りだくさんなので非常に楽しみです。

サイボウズ Necoチーム 😺

Discussion