Cloud Build における CMEK コンプライアンス

Cloud Build は、ビルドごとに生成されたエフェメラルキーでビルド時間の永続ディスク(PD)を暗号化することで、顧客管理の暗号鍵(CMEK)コンプライアンスを実現します。構成は不要です。ビルドごとに固有の鍵が生成されます。

ビルドが完了すると、すぐにキーはメモリから消去され、破棄されます。 鍵の記録はどこにも保存されず、Google のエンジニアやサポートスタッフはアクセスできず、復元もできません。このようなキーを使用して保護されたデータには、永続的にアクセスできなくなります。

エフェメラル キー暗号化の仕組み

Cloud Build では、エフェメラル キーを使用して CMEK をサポートし、CMEK に対応したセットアップとの一貫性、互換性を完璧に実現します。

Cloud Build は、ビルド時間の PD がエフェメラル キーで暗号化されるように次の処理を行います。

  1. Cloud Build は、ローカル RAM に 256 ビットのランダムな暗号鍵を作成し、各ビルド時間の永続ディスクを暗号化します。

  2. Cloud Build は、PD の顧客指定の暗号鍵(CSEK)機能を活用して、新しい暗号鍵を PD 暗号鍵として使用します。

  3. ビルドの開始直後に、Cloud Build がビルド用に一時的に生成した鍵をローカル RAM から削除します。鍵は永続ストレージには記録されず、復旧できなくなります。

  4. ビルドが完了すると、永続ディスクが削除され、鍵の痕跡も暗号化された PD データも Google インフラストラクチャ内に残りません。

エフェメラル キー暗号化が適用されないケース

以下のシナリオでは、エフェメラル キーの暗号化は適用されません。

  • (GitHub アプリトリガーからではなく)ソース ミラーリングを使用してビルドを作成またはトリガーすると、ソースコードは Cloud Storage または Cloud Source Repositories に保存されます。暗号化の管理など、コードの保存場所を完全に制御できます。

  • Cloud Build のビルドログに独自のバケットを指定し、暗号化されたログバケットを指定する場合は、BuildOptions で説明されるように、Stackdriver のログを無効にしてから Cloud Build のログのストリーミング オプションを無効にする必要があります。

  • Cloud Build GitHub アプリからビルドをトリガーすると、Cloud Build がソースコードを GitHub から pull し、オブジェクト TTL が 1 日のストレージ バケットを作成し、そのバケットにコードをデポジットします。このバケットに対するアクセス権や制御権はありません。

  • ブラジルやインドなど、暗号化に局所的制限の影響が及ぶ地域にいる場合、Cloud Build は PD にエフェメラル キー暗号化を適用できません。