顧客管理の暗号鍵

サンプルに移動

このページでは、顧客管理の暗号鍵と Cloud Storage での使用方法について説明します。他の暗号化オプションについては、データ暗号化オプションをご覧ください。

概要

Google で管理する暗号鍵に加えて、Cloud Key Management Service によって生成された鍵を使用することもできます。この鍵は、顧客管理の暗号鍵と呼ばれます。顧客管理の暗号鍵を使用する場合、その鍵は Cloud KMS に保存されます。暗号鍵を保持するプロジェクトをバケットを含むプロジェクトから切り離すことで、職掌分散を適切に実施できます。

鍵がいつ使用されるのか

顧客管理の暗号鍵をオブジェクトに適用すると、Cloud Storage は次のものを暗号化するときに鍵を使用します。

  • オブジェクトのデータ
  • オブジェクトの CRC32C チェックサム
  • オブジェクトの MD5 ハッシュ

Cloud Storage は、オブジェクトの名前など、オブジェクトの残りのメタデータを、標準のサーバー側の鍵を使用して暗号化します。そのため、十分な権限を持っていれば、関連する顧客管理の暗号鍵を無効化または破棄した後でも、ほとんどのメタデータの読み取り、オブジェクトの一覧表示、オブジェクトの削除などの操作を実行できます。

サービス アカウント

顧客管理の暗号鍵による暗号化と復号は、サービス アカウントを使用して実施できます。暗号鍵へのアクセス権をお使いの Cloud Storage サービス アカウントに付与すると、そのサービス アカウントによって以下を暗号化できます。

Cloud Storage でオブジェクトを追加したり書き換えたりする際に、バケットにデフォルトの暗号鍵を設定しているだけでなくリクエストにも特定の鍵を含めている場合、Cloud Storage ではオブジェクトの暗号化にその特定の鍵が使用されます。

リクエスト元は、顧客管理の暗号鍵によって暗号化されたオブジェクトを読み取る場合、通常どおりの方法で単純にオブジェクトにアクセスします。このようなリクエストの処理中に、以下の条件が該当すると、リクエストされたオブジェクトがサービス アカウントによって自動的に復号されます。

  • サービス アカウントに、その鍵を使用して複合化する権限が引き続き保持されている。
  • その鍵を無効化も破棄もしていない。

この条件が 1 つでも満たされない場合、サービス アカウントでデータが復号されず、リクエストは失敗します。

制限事項

顧客管理の暗号鍵を使用する場合は次の制限が適用されます。

  • 1 つ以上のソース オブジェクトが顧客管理の暗号鍵で暗号化されている場合、オブジェクト作成を行うことはできません。

  • オブジェクトのメタデータを更新する方法では、顧客管理の暗号鍵によってオブジェクトを暗号化できません。代わりに、オブジェクトの書き換えの一部としてその暗号鍵を含めてください。

  • Cloud KMS 鍵は、暗号化するデータと同じロケーションに作成する必要があります。たとえば、バケットが US-EAST1 にある場合、そのバケット内のオブジェクトを暗号化する Cloud KMS 鍵も US-EAST1 で作成する必要があります。指定できる Cloud KMS のロケーションについては、Cloud KMS のロケーションをご覧ください。

  • Storage Transfer Service による転送時には顧客管理の暗号鍵は指定できません。転送元オブジェクトで顧客管理の暗号鍵が使用されていても、転送されるオブジェクトにその鍵は適用されません。転送を行う前に、バケットにデフォルトの顧客管理の暗号鍵を設定してください。

  • Cloud KMS の暗号化と復号の割合は、割り当ての対象になります。

顧客指定の暗号鍵との関係

Cloud Storage には、データ暗号化を制御する方法として、顧客管理の暗号鍵のほかに顧客指定の暗号鍵が用意されています。1 つのバケット内のオブジェクトをそれぞれ異なる暗号化方式を使用して暗号化できますが、次の点に注意してください。

  • 1 つのオブジェクトの暗号化に使用できる暗号化方式は一度に 1 種類です。

  • バケットに対してデフォルトの顧客管理の暗号鍵を設定していて、リクエスト内で顧客指定の暗号鍵を指定した場合、Cloud Storage ではオブジェクトの暗号化に顧客指定の暗号鍵が使用されます。

  • バケットに対してデフォルトの顧客管理の暗号鍵の設定はできますが、デフォルトの顧客指定の暗号鍵の設定はできません。

鍵管理

このセクションでは、鍵のローテーション、鍵の置換、鍵バージョンの無効化または破棄に関する考慮事項について説明します。

鍵のローテーション

Cloud KMS は、新しいバージョンに対して自動と手動どちらの鍵のローテーションもサポートしています。鍵をローテーションした後で、Cloud Storage は、鍵を使用して暗号化するすべてのオペレーション新しいバージョンを使用します。オペレーションの例を次に示します。

  • 転送先バケットが鍵をデフォルトの暗号鍵として使用するときの、オブジェクトのアップロード。

  • 鍵を明示的に使用するオブジェクトのアップロード、コピー、リライト オペレーション。

以前のバージョンの鍵は無効化も破棄もされないため、Cloud Storage は、そのバージョンを使用して暗号化された既存のオブジェクトを引き続き復号できます。

鍵の置き換え

Cloud Storage オブジェクトの暗号化に使用する鍵を新しい鍵に置き換える場合は、次のガイドラインを参考にしてください。

  1. 鍵をデフォルトの暗号鍵として使用するには、バケットをチェックします。これらのバケットについて、古い鍵を新しい鍵に置き換えます。

    これで、バケットに書き込まれたすべてのオブジェクトで、新しい鍵が使用されるようになります。

  2. ソースコードを調べて、バケット構成やオブジェクトのアップロード、コピー、リライトなど、進行中のオペレーションでどのリクエストが鍵を使用しているか把握します。把握したリクエストで新しい鍵を使用するように更新します。

  3. すべてのバケットについて、古い鍵で暗号化されたオブジェクトをチェックします。オブジェクト書き換えメソッドを使用して、新しい鍵を使用して各オブジェクトを再暗号化します。

  4. 古い鍵のすべてのバージョンを無効にします。古い鍵バージョンを無効にした後、特定のバージョンが使用できないために失敗したオペレーションのクライアント ログとサービスログをモニタリングします。

鍵バージョンの無効化または破棄

  • 特定の鍵バージョンを無効または破棄する場合、現在その鍵バージョンで暗号化されているオブジェクトを復号することはできません。

    たとえば、オブジェクトのダウンロード、コピー、リライトができず、そのようなオペレーションを行うとエラーになります。

    • 無効にした鍵バージョンは再び有効にできます。再度有効にすると、その鍵バージョンで暗号化されていたオブジェクトにアクセスできるようになります。

    • 鍵バージョンを破棄すると、そのバージョンで暗号化されていたオブジェクトのダウンロードはできなくなります。

    鍵バージョンを無効化または破棄する前に、特定の鍵バージョンを使用して暗号化されたすべてのオブジェクトを、すべてのバケットの中から特定する必要があります。オブジェクトが特定できたら、オブジェクト書き換えメソッドで、新しい鍵バージョン、新しい鍵、サーバー側の鍵のいずれかを使用して各オブジェクトを再暗号化します。

  • 鍵のメインのバージョンを無効または破棄すると、新しいメインのバージョンが作成されるまで、その鍵を暗号化に使用することはできません。たとえば、メインのバージョンがない場合には、次のようになります。

    • オブジェクトのアップロード、コピー、リライトの一部として鍵を指定することはできません。

    • 別の有効な鍵をオペレーションの一部として指定しない限り、鍵をデフォルトの暗号鍵として設定しているバケットに対し、オブジェクトのアップロード、コピー、リライトができません。

    鍵のメインのバージョンを取得したら、その鍵を使用してオブジェクトを暗号化するオペレーションが成功します。

    鍵のメインのバージョンを無効化または破棄する前に、このバージョンをメインのバージョンとして使用することを停止する必要があります。これは、次のいずれかの方法で行うことができます。

次のステップ