Skip to main content

SnykとGKE Autopilotで安全に構築

著者
Headshot of Jay Yeras

Jay Yeras

Kubernetes Blog

2021年12月14日

0 分で読めます

テクノロジー業界の顧客と話せば、いつかは必ずKubernetesの話題が出るでしょう。オーケストレーション、デプロイの自動化、スケーリング、そして増え続ける顧客の需要に応えるコンテナ化アプリケーションの管理において、Kubernetesは拡張性と柔軟性を提供します。K8sとも呼ばれるKubernetesの大きな利点に加え、Googleが本番ワークロードを実行するために開発したという背景が、業界で広く採用されている理由です。

Google Kubernetes Engine(GKE)は、Googleならではの革新の精神をもとに構築され、Google Cloud上でKubernetesワークロードを実行するマネージドサービスをお客様に提供します。最近リリースされたGKE Autopilotでは、運用コストを削減する新しい運用モードにより、運用効率を高められます。また、ベストプラクティスに準拠し、スケーリングに対応して本番ワークロードをサポートする、最適化されたクラスタ構成が提供されます。

モダンアプリケーション

モダンアプリケーションの構築では、アプリケーションを構成するさまざまなレイヤーが関係します。たとえば、コンテナ化されたワークロードには、コンテナイメージ、アプリケーションコード、オープンソースの依存関係、アプリケーション構成など、少なくとも4つの異なる要素が含まれるでしょう。それぞれのレイヤーが、脆弱性やエクスプロイト、設定ミスを悪用する攻撃者にとっての侵入経路となる可能性があります。

Snykプラットフォームは、コード、オープンソース、コンテナ、Kubernetes、Infrastructure as Code(IaC)など、クラウドネイティブアプリケーションスタック全体で、開発者が安全にソフトウェアを構築できるよう支援します。

包括的なセキュリティ

アプリケーションのさまざまなレイヤーに潜む脆弱性を可視化することは、出発点にすぎません。Snykは、可視化に加え、優先順位付けや修正方法に関するアドバイスを提供する実行可能なインサイトを開発者に届けます。セキュリティ上の問題を見つけることも重要ですが、確実に修正できる道筋があることはさらに重要です。Snykは開発者がセキュリティ機能を活用できるようにすることで、セキュリティを大規模に実現します。コンテナイメージの脆弱性を解消するには、より安全なベースイメージへのアップグレードを促すか、ベースイメージが古い場合にアプリを再ビルドします。

Snykはアプリケーションとコンテナの脆弱性をまとめて把握できます。コンテナ内で実行されている元のソースコードに常にアクセスできるとは限りませんが、コードの依存関係にある脆弱性を理解することは重要です。Snykは、コンテナスキャンの一環として、主要なプログラミング言語のオープンソース依存関係を検出・監視できるほか、Kubernetesマニフェストの設定ミスも検出します。

ワークロードのスキャン

Snykは現在、Google Cloud Marketplaceで利用できます。SnykのBusinessまたはEnterpriseプランをご利用のお客様は、Kubernetesインテグレーションを簡単に有効化し、Autopilotクラスタを含むGKE上のワークロードを数クリックで保護できます。この記事では、GKE Autopilotクラスタのプロビジョニングから、サンプルアプリケーションとsnyk-monitor Helmチャートのデプロイまでをご案内します。

それでは、ターミナルまたはCloud Shellで実行できる基本的な手順をいくつか見ながら、GKE AutopilotにSnyk Containerをデプロイしてみましょう。

名前空間を作成する

kubectl create namespace snyk-monitor

シークレットを作成する

kubectl create secret generic snyk-monitor -n snyk-monitor \    
  --from-literal=dockercfg.json={} \
  --from-literal=integrationId=abcd1234-abcd-1234-abcd-1234abcd1234

Helmリポジトリを追加する

helm repo add snyk-charts https://snyk.github.io/kubernetes-monitor/ --force-update

チャートをインストールする

helm upgrade --install snyk-monitor snyk-charts/snyk-monitor \
  --namespace snyk-monitor \
  --set pvc.enabled=true \
  --set pvc.create=true \
  --set pvc.name="snyk-monitor-pvc" \
  --set clusterName="my-cluster" \
  --set nodeAffinity.disableBetaArchNodeSelector=true \
  --set requests.memory="512Mi" \
  --set requests."ephemeral-storage"="50Gi" \
  --set limits."ephemeral-storage"="50Gi"

これらのコマンドを実行すると、GKE AutopilotにSnykがデプロイされ、Snykでワークロードをスキャンして監視できるようになります。

Kubernetesクラスターの図。default、kube-system、snyk-monitor、nodeの各コンポーネントがSnykに接続されています。

検出結果を確認する

Snykで監視しているプロジェクトには、サマリーレポートが表示されます。アプリケーションのさまざまなレイヤーを俯瞰でき、深刻度別の脆弱性の合計数も確認できます。この例では、サンプルアプリケーションに関連する2つのKubernetesデプロイメントが表示されており、コンテナイメージとアプリケーションコード内のオープンソース依存関係に関する情報が含まれています。

インポートされたGKE Autopilotプロジェクトの脆弱性の深刻度別件数とレポートへのリンクを表示するSnyk Projectsダッシュボード

デプロイメントの詳細を確認すると、追加情報を含む展開ビューが表示されます。たとえば、アプリケーションで見つかった脆弱性や、Kubernetesマニフェストの設定ミスについて、詳しいコンテキスト情報を確認できます。GKE Autopilotに組み込まれた最適化により、デプロイ時にメモリとCPUの制限が自動的に適用されるため、いくつかの設定ミスをすぐに減らせます。この例のマニフェストファイルでは、セキュリティコンテキストの定義を意図的に省略しています。しかし、Kubernetesのセキュリティに関するベストプラクティスと、それを適用する能力はお客様によって異なります。だからこそ、こうした問題を可視化し、さらに重要なこととして、解決方法を提案することが大切です。

Kubernetesデプロイの安全な設定チェックと脆弱性を表示するSnykダッシュボード。複数の設定チェックが「失敗」と表示されています。

アプリケーションで使用しているコンテナイメージのセキュリティ検出結果を詳しく確認すると、適切なアップグレード方法が提案され、開発者は迅速に修正へ進めます。セキュリティ上の問題を軽減するためにどのイメージが適切か、開発者はすばやく判断できます。

node:10.4.1-jessieからnode:17.0.0-bullseye-slimへのアップグレードに関する推奨事項と、コンテナイメージのベースイメージの詳細を表示するSnykのダッシュボード

これらの検出結果とソフトウェア構成分析(SCA)の結果により、モダンなクラウドネイティブアプリケーションのさまざまなレイヤーを包括的にカバーできます。

Snyk Code AIエンジンは、数百万件のオープンソースコミットからの機械学習と、Snyk Security Researchチームによる人間参加型のフィードバックを組み合わせた独自のプロセスを採用しており、レポートの精度をさらに高めます。

まとめ

Snykプラットフォームは、マネージドKubernetesに革新をもたらすGKE Autopilotとシームレスに連携します。Snyk ContainerのKubernetesインテグレーションを使えば、GKE Autopilot上のワークロードの保護をすぐに開始できます。また、Snyk CLIをGoogle Cloud Buildと併用できるほか、Google Container Registry、Google Artifact Registry、複数あるSnyk GitリポジトリSCMインテグレーションのいずれかとも連携できます。

Kubernetesワークロードを安全に構築する方法について詳しく知りたい方は、Snykの無料アカウントに登録してください。

ソースコードの段階からインフラを保護

Snykはワークフロー内のIaCセキュリティとコンプライアンスを自動化し、構成ドリフトや不足しているリソースを検出します。

続きを読む

blog feature ai lilac
Blog

エージェント型修正で脆弱性バックログをプルリクエストに変える

Evo Remediation Agentがオープンプレビューで利用可能になり、Evo Agentic AppSecに依存関係の自動解決機能が加わりました。AppSecチームは継続的な修正キャンペーンを実施できるようになりました

AI Background min crop
Blog

AIが、あなたが受け入れてきたあらゆるリスクを一気に顕在化させる:AI Security Panel: Unfilteredから得た7つの洞察

AIによって攻撃はより安価かつ高速になり、組織がすでに抱えているリスクが露呈しています。4人のセキュリティリーダーが、機械の速度に対応する防御と迅速な修復が今不可欠である理由を語ります。

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSecのご紹介:AI開発のスピードに追随するセキュリティ

AIを活用した開発は、従来のセキュリティワークフローを上回るスピードで進んでいます。SnykのAgentic AppSecは、セキュリティエージェントが脆弱性を継続的に検出、修正、検証し、人が基準を定められるようにします。