Cloud Run サービスを保護する 4 つの新機能
Google Cloud Japan Team
※この投稿は米国時間 2021 年 5 月 14 日に、Google Cloud blog に投稿されたものの抄訳です。
Cloud Run を使用すると、デベロッパーはコンテナ化されたアプリケーションの開発とデプロイを容易に行えます。このとき、Cloud Run サービスには安全性が求められます。本日は Cloud Run 環境を保護するための新しい方法をいくつかご紹介します。
Google Secret Manager からシークレットをマウントする
Binary Authorization を使用して、信頼できるコンテナ イメージのみがデプロイされるようにする
独自の暗号鍵を使用する
最小権限の原則に基づいた推奨事項を取得する
これらの新機能のポイントをそれぞれ詳しく見ていきましょう。
1. Google Secret Manager からシークレットをマウントする
API キー、パスワード、証明書、その他の機密データを環境変数に保存していた方もいるかもしれませんが、これはベスト プラクティスとは言えません。セキュリティを重視するお客様は、API キー、パスワード、証明書、その他の機密データを保存するための Google Cloud のセキュアなシステムである Secret Manager に機密データを保存しています。しかし、従来の方法では、これらのシークレットに Cloud Run サービスからアクセスするために、デベロッパーはクライアント ライブラリを使用する必要がありました。
新機能では、コマンドラインから、Cloud Run サービスの環境変数またはファイル システム ボリュームとして、シークレットを Secret Manager からマウントできるようになります。あるいは Google Cloud Console からマウントすることもできます。
Secret Manager では、IAM 権限がきめ細かく定義されています。デフォルトでは、Cloud Run サービスは Secret Manager のシークレットにアクセスする権限を持っておらず、アクセスを明示的に許可する必要があります。Secret Manager と統合させることで、独自の暗号鍵を使用してシークレットを暗号化することもできます。
Cloud Run の Secret Manager との統合について詳しくは、こちらの動画をご覧ください。
2. Cloud Run の Binary Authorization
コンテナは、ソフトウェアをパッケージ化して実行する業界基準の方法です。Cloud Run を使用すると、デベロッパーはフルマネージド環境でコンテナのデプロイとスケーリングを行えます。本日は、Cloud Run の Binary Authorization との統合についてご紹介します。
セキュリティ管理者は、Binary Authorization を使用することで、Cloud Run にデプロイされているコンテナに関するポリシーを定義し、実施することができるようになりました。たとえば、組織管理者は、ある特定のプロジェクトの Cloud Run サービスに Binary Authorization を使用するように指定できます。このプロセスはデベロッパーに透過的です。コンテナが定義済みのポリシーを遵守していることを確認しながら、通常どおり Cloud Run にデプロイできます。
Binary Authorization と Cloud Run を使用すると、コンテナに以下の条件を指定できます。
承認されたビルドシステムを使用して作成されている
QA チームによって承認されている
脆弱性分析が行われている
COVID-19 接触通知システム担当のプリンシパル ソフトウェア エンジニアである Mike Helmick は、Binary Authorization と Cloud Run を併用することで、コンプライアンス体制の改善につながると確信しています。
「Google は COVID-19(新型コロナウイルス感染症)対策の一環として、接触通知の鍵と確認サーバーを構築しました。Cloud Run の Binary Authorization を活用して、サーバーが常に信頼できる Cloud Build ビルダーで構築されていること、監査証跡が作成されること、実行されているコードが Google の意図したとおりであることを確認しています。」
3. 顧客管理の暗号鍵
デフォルトでは、Cloud Run にデプロイされたコンテナ イメージは、Google 管理の暗号鍵を使用して保管時に暗号化されます。セキュリティの強化を必要とするお客様は、パブリック クラウドを安心して使用するために、リソースの保管時の暗号化を細かく制御したいと考えるかもしれません。コンテナ イメージは、このようなリソースの一種です。
数日後のリリースでは、Cloud Run の顧客管理の暗号鍵のプレビューが紹介されます。この機能により、Cloud Key Management Service(KMS)内で管理する暗号鍵を使用して、コンテナ イメージを保護できるようになります。
Cloud KMS 内の鍵は、顧客管理の暗号鍵(CMEK)と呼ばれます。CMEK を使用して Cloud Run のデータを保護する場合、CMEK 鍵は Google の管理下ではなく、お客様の管理下に置かれます。つまり、CMEK 鍵が無効化されたり破壊されたりしても、これらの暗号鍵で保護されたデータには誰もアクセスできません。Google にもアクセス権がなく、データはお客様の管理下で保護されます。
Cloud Run での CMEK のサポートは、金融サービスなどの規制の厳しい業界にとって特に重要です。Artifact Registry が CMEK を使用してコンテナ イメージの保存を保護するのと同様に、Cloud Run の CMEK サポートでは、保護対象を本番環境にデプロイされるコンテナ イメージにまで拡大し、ビルド、デプロイ、実行のプロセス全体でコンテナを保護します。
この操作は、コマンドラインまたは Cloud Console から、Binary Authorization や顧客管理の暗号鍵を使用して開始できます。
さらに、組織ポリシー制約を使用して、プロジェクト内のすべての Cloud Run サービスに Binary Authorization や顧客管理の暗号鍵を使用するよう指定できます。
4. 推奨されるベスト プラクティスを入手する
デフォルトでは、Cloud Run サービスは Compute Engine VM と同じ ID、つまりデフォルトのコンピューティング サービス アカウントで実行されます。これは、権限を気にすることなく、すぐに作業を開始できる素晴らしい方法です。また、Cloud Run サービスには、運用に必要な権限のみを付与することをおすすめします。
本日より、おすすめハブに、最小限の権限セットで Cloud Run サービス専用のサービス アカウントを作成するための推奨事項が掲載されるようになります。Cloud Run ユーザー インターフェースで青い電球のアイコンを探してください。Cloud Run サービスのセキュリティを向上させるための推奨事項は、Cloud Console ホームページの [推奨事項] タブに掲載されています。
使ってみる
今回ご紹介した Cloud Run の新しいセキュリティ機能は、サービスの流入の制限によるサービスの内製化、Identity-Aware Proxy または Cloud Armor との統合といった、セキュリティ関連の機能をさらに充実させます。これらの新機能により、お客様がセキュリティのベスト プラクティスを犠牲にすることなく Cloud Run を導入できれば幸いに存じます。本日からでも、推奨事項に従い、Binary Authorization の有効化または機密データの Secret Manager への移行によって、Cloud Run サービスの保護を開始いただけます。
-プロダクト マネージャー Steren Giannini
-プロダクト マネージャー Daniel Conde