Cloud Runの「セキュリティ」設定について サービスを安全に運用するための鍵

クラウド上でアプリケーションを運用する際、セキュリティは最も重要な考慮事項の一つです。
Google CloudのサーバーレスプラットフォームであるCloud Runも例外ではありません。
Cloud Runサービスの「セキュリティ」タブには、サービスが安全に動作し、機密情報が保護されるための重要な設定項目が集約されています。

今回は、この「セキュリティ」タブにある主要な4つの設定項目について、それぞれが何を意味し、Cloud Runサービスのセキュリティ体制にどのように影響するのかを見ていきます。

Cloud Runの「セキュリティ」タブとは?

Cloud Runサービスの設定画面で「セキュリティ」というタブを見ると、主に以下の項目があります。

  1. サービスアカウント
  2. Binary Authorization を使用してコンテナのデプロイを確認する
  3. 暗号化 – Google が管理する暗号鍵
  4. 暗号化 – Cloud KMS 鍵

これらの設定は、Cloud Runサービスが他のGCPリソースにアクセスする際の認証・認可、デプロイされるコンテナイメージの信頼性、そして保存されるデータの暗号化という、多岐にわたるセキュリティ側面をカバーします。


1. サービスアカウント

Cloud Runサービスが実行される際に、他のGoogle Cloudリソースにアクセスするために使用するIDです。これは、Cloud Runサービス自身が持つ「身分証明書」のようなものです。

設定のポイント

  • デフォルトでは、プロジェクトの「Compute Engine のデフォルト サービス アカウント」が割り当てられます。
  • 推奨される設定: セキュリティベストプラクティスとして、最小権限の原則に基づき、そのCloud Runサービスが必要とする権限のみを付与した専用のカスタムサービスアカウントを作成し、割り当てることを強く推奨します。
  • 例えば、Cloud Storageバケットに書き込む必要があるならStorage Object Creator、Cloud SQLに接続するならCloud SQL クライアントなどのIAMロールを、このサービスアカウントに付与します。

2. Binary Authorization を使用してコンテナのデプロイを確認する

  • この設定を有効にすると、Cloud Runサービスにデプロイされるコンテナイメージが、事前に定義されたセキュリティポリシー(Binary Authorization)に準拠しているかどうかを検証します。
  • ポリシーに準拠していないイメージのデプロイはブロックされます。

設定のポイント

  • この機能を利用するには、事前にGoogle CloudプロジェクトでBinary Authorizationを有効にし、**承認者(Attestor)**とデプロイポリシーを構成しておく必要があります。
  • 承認者は、特定のセキュリティチェック(例: 脆弱性スキャン済み、セキュリティレビュー済み)が完了したことを「署名」する役割を担います。
  • デプロイポリシーは、「署名がないイメージはデプロイを許可しない」といったルールを定義します。

ユースケース

  • サプライチェーンセキュリティの強化: 信頼できるプロセス(CI/CDパイプラインでの自動テストやスキャン、手動レビューなど)を経ていないコンテナイメージが本番環境にデプロイされるのを防ぎたい場合。
  • コンプライアンス要件: 厳格なデプロイメントプロセスと承認フローが求められる規制業界など。

3. 暗号化 – Google が管理する暗号鍵

Cloud Runサービスによって**保存されるデータ(コンテナイメージのディスクイメージなど)**を、Googleがデフォルトで提供する暗号鍵で暗号化するかどうかを定義します。

設定のポイント

  • Cloud Runのデフォルトの挙動です。Google Cloud上のほぼ全てのデータは、保存時にGoogleが管理する鍵で自動的に暗号化されます。
  • 通常、このオプションはデフォルトで有効になっており、ユーザーが明示的に選択する必要はありません。

メリット

追加設定不要で、ユーザーが鍵の管理を行う必要がなく、手軽にセキュリティを確保できます。


4. 暗号化 – Cloud KMS 鍵

Cloud Runサービスによって保存されるデータを、ユーザー自身が管理するCloud Key Management Service (KMS) の鍵で暗号化するかどうかを定義します。これを「顧客管理の暗号鍵(CMEK: Customer-Managed Encryption Key)」と呼びます。

設定のポイント

  • この機能を利用するには、事前にCloud KMSで暗号鍵を作成し、管理しておく必要があります。
  • Cloud Runサービスに、そのCloud KMS鍵への適切な権限(Cloud KMS CryptoKey Encrypter/Decrypterなど)を付与する必要があります。
  • Google管理の鍵ではなく、ユーザーが鍵のライフサイクル(作成、無効化、削除など)を完全に制御したい場合に選択します。

ユースケース

  • 厳格なコンプライアンス要件: 特定のセキュリティ規制や内部ポリシーにより、データの暗号化に使用する鍵の管理をGoogleではなく自社で行う必要がある場合。
  • 鍵の無効化によるデータアクセス制御: 万が一データへのアクセスを即座に停止したい場合に、KMSの鍵を無効化することでその効果を発揮できます。

まとめ

Cloud Runの「セキュリティ」タブにあるこれらの設定は、あなたのCloud Runサービスを多角的に保護するためのツールです。

  • サービスアカウント: サービスが他のGCPリソースにアクセスする際の権限を厳密に制御し、最小権限の原則を適用する。
  • Binary Authorization: デプロイされるコンテナイメージの信頼性とポリシー準拠を強制し、サプライチェーンセキュリティを強化する。
  • Google 管理の暗号鍵: 保存データが自動的に暗号化される、基本的なデータ保護を提供する。
  • Cloud KMS 鍵: 暗号鍵の管理をユーザー自身が制御し、特定のコンプライアンス要件を満たす。

これらのセキュリティ設定を適切に理解し、あなたのアプリケーションの要件と組織のセキュリティポリシーに合わせて構成することで、Cloud Runサービスをより堅牢で安全なものにすることができるでしょう。

コメント

タイトルとURLをコピーしました