SnykとGKE Autopilotで安全に構築
Jay Yeras
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をデプロイしてみましょう。
名前空間を作成する
シークレットを作成する
Helmリポジトリを追加する
チャートをインストールする
これらのコマンドを実行すると、GKE AutopilotにSnykがデプロイされ、Snykでワークロードをスキャンして監視できるようになります。

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

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

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

これらの検出結果とソフトウェア構成分析(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セキュリティとコンプライアンスを自動化し、構成ドリフトや不足しているリソースを検出します。



