こちらの記事は弊社技術ブログに掲載していた内容となります。一部を除き、投稿当時の情報となりますので、紹介内容の最新情報については別途公式情報等をご参照下さい。 目次 Toggle コンテナとGKE新しいセキュリティの課題CI/CD・ビルドデプロイアプリケーション運用ユーザ・アクセス管理まとめ感想 こんにちは。クラウドエース編集部です。 7/30~8/1に行われたGoogle Cloud Next ’19 Tokyoに参加してきました。 本イベントはGoogle Cloudに関する様々な発表、ハンズオンラボ、交流の場となっています。本記事は会場で数多く行われたセッションのレポート記事となります。 本記事で紹介するセッションは7/31に行われたGoogleのイアンさんの「Google Kubernetes Engineによるコンテナセキュリティの道」に関するレポートです。 Kubernetesにはあまりまだ触れられていない新人エンジニアなのでいい機会だと思い、参加してきました!GKEを少しは触ったことがある、GCPのCI/CDサイクルについて軽く知っているような方が対象であったと思います。 セッション情報 7/31 17:20~18:00@ザ・プリンスパークタワー東京 Speaker : イアン・ルイス(Google) 発表動画→こちら コンテナとGKE 本セッションの導入では、コンテナの導入前と導入後のセキュリティに関して軽く触れていました。 コンテナ導入前 アプリケーションを手動でコピー、ビルド、デプロイを行う。何も考えずにファイアウォールを作成したりすることもざらにあり、悪意ある者がサーバー内部に侵入すれば、各アプリケーションに入る(攻撃する)ことが可能な状況であった。 コンテナ(GKE)導入後 オーケストレーション機能を有するGKEが勝手にサーバ同士をスケジューリングします。 そのため誰かがアプリケーションサーバーに侵入したとしても、他のアプリケーションサーバに侵入することは難しくなりました。 コンテナ導入のメリット – コンテナの中身関係なく、リリース方法が一緒 – ステップが少なくて自動的 – 運用しやすい このようなメリットに魅力を感じ、導入した方は多いかと思います。 新しいセキュリティの課題 Kubernetesへのアクセス権限の管理 ファイアウォール、ネットワークポリシーなど が課題として挙げられていました。 コンテナによる新しいセキュリティの可能性 統一したモニタリング イメージスキャン イメージ署名 サービスメッシュ(アプリケーション同士の通信の間にプロキシ、Istioなど) 特にGCPの場合については – インフラ部分は考えなくて良い – Googleも無条件でユーザのデータは見れない といったことを強調していました。これはGKEの大きな特徴だと思います。 追加で、Googelとユーザの担当範囲をしっかり意識することが重要であるとも言及していました。 アプリケーションのライフサイクルをセキュアに コンテナイメージが変更されていないか 脆弱性がないのか 運用中のアプリケーションは不正侵入されていないか ユーザ権限が正しいか、不正アクセスがないか 以上の観点を踏まえたGCPの可視性、セキュリティ、コントロールについて、 CI/CD・ビルド、デプロイ、アプリケーション運用、ユーザ・アクセス管理に分けて紹介されました。 CI/CD・ビルド Container Registry Dockerコンテナイメージを保存、管理、保護し、自動的にビルド、デプロイすることもできます。 ただのDockerイメージを保管する箱ではなく、脆弱性のスキャンも可能であり、同時に脆弱性の内容と重大度を表示してくれます。 デプロイ GKE Binary Authorization 信頼できるコンテナのみをGKEにデプロイしてくれます。 例として以下のようなポリシーを設定できます。 – 実際のデプロイ時に変更がないかチェック – 脆弱性があるものはデプロイしない システム要求を満たすポリシーを設定しましょう。 アプリケーション運用 GKE Sandbox(ベータ) コンテナのセキュリティをさらに強化してくれます。 徹底した防御をポッドに追加する、また、潜在的な攻撃を限定することもできるようになり、第3者が書いた(悪意ある)コードの実行などから防御してくれます。 gVisor gVisor GKE Sandboxの元となったコンテナSandboxのオープンソース環境です。GKE Sandboxに関連して紹介されました。 Google内部でもよく使われるそうです。 Anthos オンプレとクラウドの両方で一貫性のあるポリシーとセキュリティを大規模に自動化してくれます。オンプレで動かしているKubernetesクラスタをクラウドでも監視、運用する事ができます。 ネットワークとセキュリティ面として – ポリシーとコンフィグレーションマネージメント – 認証 – サービスディスカバリーと管理 プラットフォームとして – ネットワーク – マイグレーション – モニタリング を一括管理する仕組みを提供してくれます。 Istio サービス認証・ポリシーやモニタリング、トラフィックの制御をしてくれます。 例えばServiceAとServiceB間にプロキシを置き、確実に通信・暗号化・認証します。いわゆるサービスメッシュの仕組みを導入してくれます。 Event Threat Detection(ベータ) このプロダクトは私も初めて聞きました。(調べてみるとサンフランシスコのNext’19で発表になったプロダクトのようです) GCP内に存在するセキュリティの脅威を検出します。業界トップクラスの脅威検出インテリジェンスを搭載し、Stackdriver Loggingから検出してくれます。そのため、特にGKEをいじらずとも使用可能であることが特徴として挙げられます。 Security Information and Event Management(SIEM)を最適化してコストを削減しているようです。 ユーザ・アクセス管理 Cloud Identity & Access Management (IAM) きめ細かいアクセス制御によってクラウドリソースの一元管理を実現します。GCPプロダクトを扱っている方にはおなじみのユーザ・アクセス管理方法です。 特徴を簡単に挙げると、 – 企業のID管理を簡素化 – 適切な役割(ロール) – きめ細かいリソース制御 といったものがあります。 Cloud Security Command Center GCP用の包括的なセキュリティ管理とデータリスクプラットフォームです。 これは4月Generally Available(GA)となったプロダクトです。(参考記事) クラウドデータやサービスの可視化と制御により脅威を防止、GCPのアセット(存在するオブジェクト)を標的とした脅威の検出と対処を行ってくれます。 柔軟なプラットフォームでセキュリティのニーズに対応していることを謳っており、組織全体のプロジェクトのアラートなどを1箇所で見ることができたりします。 まとめ GKEを使用するに際して、セキュリティプロダクトをCI/CD・ビルド、デプロイ、アプリケーション運用、ユーザ・アクセス管理に分けて紹介していただきました。 感想 筆者も聞いたことのないものがちらほらあり、非常に参考になりました。特にビルドやデプロイなど場面場面で気にすべきセキュリティというのが、しっかりまとまっていて聞きやすい発表でした。 今話題になっているAnthosやIstioにも言及があり、GKEまわりに力を入れていることも感じます!