このページでは、バケットでデフォルトの鍵を設定する方法や個々のオブジェクトに鍵を追加するなど、Cloud Storage で Cloud Key Management Service の暗号鍵を使用する方法について説明します。Cloud KMS 暗号鍵は、Cloud KMS によって作成され、ユーザーによって管理される顧客管理の暗号鍵です。
Cloud KMS の詳細については、Cloud KMS をご覧ください。
前提条件
Cloud Storage でこの機能を使用する前に、以下の準備が必要です。
暗号鍵を格納するプロジェクトの Cloud KMS API を有効にする。
暗号鍵を格納するプロジェクトに対して十分な権限を持つ。
鍵が保存されるプロジェクトを所有している場合は、必要な権限があると考えられます。
新しい暗号キーリングと鍵を作成する予定がある場合は、
cloudkms.keyRings.create
とcloudkms.cryptoKey.create
の権限が必要です。キーリングと鍵を使用する予定がある場合は、それが新規か既存かを問わず、暗号化に使用する鍵に対する
cloudkms.cryptoKey.setIamPolicy
権限が必要です。この権限があると、Cloud Storage サービス エージェントに Cloud KMS 鍵へのアクセス権を付与できます。
上記の権限は、Cloud KMS 管理者ロールに含まれています。
このロールを含め、Cloud KMS のロールの取得方法については、IAM と Cloud KMS の使用をご覧ください。
Cloud Storage バケット内のオブジェクトを操作するための十分な権限を持つ。
バケットを含むプロジェクトを所有している場合は、必要な権限を持っていると考えられます。
IAM を使用する場合は、バケットにオブジェクトを書き込むための
storage.objects.create
権限とバケットからオブジェクトを読み取るためのstorage.objects.get
権限が必要です。これらの権限を持つロール(ストレージ オブジェクト管理者など)を取得する手順については、IAM 権限の使用をご覧ください。ACL を使用する場合は、バケットにオブジェクトを書き込むためのバケット範囲の
WRITER
権限とバケットからオブジェクトを読み取るためのオブジェクト範囲のREADER
権限が必要です。設定方法については、ACL の設定をご覧ください。
Cloud KMS キーリングと、キーリング内に少なくとも 1 つの鍵を持っている。
Cloud Storage バケットを含むプロジェクトに関連付けられているサービス エージェントのメールアドレスを取得する。
サービス エージェントへの Cloud KMS 鍵の割り当て
顧客管理の暗号鍵を使用するには、Cloud Storage サービス エージェントに Cloud KMS 鍵を使用する権限を付与する必要があります。
Console
- Google Cloud Console で Cloud Key Management Service 鍵ブラウザを開きます。
Cloud KMS 鍵のブラウザを開く 目的の鍵を含むキーリングの名前をクリックします。
使用する鍵のチェックボックスをオンにします。
右側のウィンドウの [権限] タブが有効になります。
[メンバーを追加] ダイアログで、アクセス権を付与する Cloud Storage サービス エージェントのメールアドレスを指定します。
[ロールを選択] プルダウンで、[クラウド KMS 暗号鍵の暗号化 / 復号化] を選択します。
[追加] をクリックします。
Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。
gsutil
gsutil kms authorize
コマンドを使用して、バケットに関連付けられたサービス エージェントに、Cloud KMS 鍵を使用してオブジェクトを暗号化、復号する権限を付与します。
gsutil kms authorize -p PROJECT_STORING_OBJECTS -k KEY_RESOURCE
ここで
PROJECT_STORING_OBJECTS
は、暗号化または復号するオブジェクトが含まれているプロジェクトの ID です。例:my-pet-project
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
付与された権限を削除するには、gcloud
コマンドライン ツールまたは Google Cloud Console のいずれかを使用する必要があります。
コードサンプル
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
次の情報が含まれる .json ファイルを作成します。
{ "policy": { "bindings": { "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter", "members": "SERVICE_AGENT_EMAIL_ADDRESS" }, } }
ここで、
SERVICE_AGENT_EMAIL_ADDRESS
はサービス エージェントに関連付けられたメールアドレスです。例:service-7550275089395@gs-project-accounts.iam.gserviceaccount.com
cURL
を使用して、POST setIamPolicy
リクエストで Cloud KMS API を呼び出します。curl -X POST --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://cloudkms.googleapis.com/v1/KEY_RESOURCE:setIamPolicy"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルの名前です。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
XML API
XML API を使用して、Cloud KMS をサービス エージェントに割り当てることはできません。gsutil など、他の Cloud Storage ツールを使用してください。
デフォルトの暗号鍵の使用
バケットのデフォルトの鍵の追加または変更
オブジェクトがバケットに書き込まれたときにデフォルトで使用される Cloud KMS 鍵を追加または変更するには:
Console
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザを開く バケットのリストで、目的のバケットをクリックします。
バケットの詳細ページで、[構成] タブをクリックします。
暗号化タイプのエントリに関連付けられた鉛筆アイコンをクリックします。
現在、バケットで Cloud KMS 鍵が使用されていない場合は、[顧客管理の暗号鍵] ラジオボタンをオンにします。
顧客管理の鍵のプルダウン メニューで、選択可能な鍵のいずれかを選択します。
[保存] をクリックします。
Cloud Storage ブラウザで、失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。
gsutil
gsutil kms encryption
コマンドを使用します。
gsutil kms encryption -k KEY_RESOURCE gs://BUCKET_NAME
ここで
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
成功した場合、レスポンスは次のようになります。
Setting default KMS key for bucket gs://my-bucket...
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
次の情報が含まれる .json ファイルを作成します。
{ "encryption": { "defaultKmsKeyName": "KEY_RESOURCE" } }
ここで、
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
次の情報を含む .xml ファイルを作成します。
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
ここで、
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
cURL
を使用して、PUT
Bucket リクエストとencryption
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
ここで
XML_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
バケットのデフォルトの鍵の表示
バケットのデフォルトとして現在設定されている Cloud KMS 鍵を表示するには:
Console
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザを開く バケットのリストで、目的のバケットをクリックします。
バケットの詳細ページで、[構成] タブをクリックします。
バケットの現在のデフォルトの鍵が [暗号鍵] フィールドに表示されます。
Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。
gsutil
gsutil kms encryption
コマンドを使用します。
gsutil kms encryption gs://BUCKET_NAME
ここで、BUCKET_NAME
は鍵を表示するバケットの名前です。例: my-bucket
成功した場合、レスポンスは次のようになります。
Default encryption key for gs://my-bucket: KEY_RESOURCE
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
デフォルトの KMS 鍵を表示するには、バケットのメタデータを表示する手順に沿って、レスポンス内のデフォルトの KMS 鍵フィールドを探します。Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
デフォルトの KMS 鍵を表示するには、バケットのメタデータを表示する手順に沿って、レスポンス内のデフォルトの KMS 鍵フィールドを探します。Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
デフォルトの KMS 鍵を表示するには、バケットのメタデータを表示する手順に沿って、レスポンス内のデフォルトの KMS 鍵フィールドを探します。Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
デフォルトの KMS 鍵を表示するには、バケットのメタデータを表示する手順に沿って、レスポンス内のデフォルトの KMS 鍵フィールドを探します。PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
デフォルトの KMS 鍵を表示するには、バケットのメタデータを表示する手順に沿って、レスポンス内のデフォルトの KMS 鍵フィールドを探します。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
デフォルトの KMS 鍵を表示するには、バケットのメタデータを表示する手順に沿って、レスポンス内のデフォルトの KMS 鍵フィールドを探します。Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
デフォルトの KMS 鍵を表示するには、バケットのメタデータを表示する手順に沿って、レスポンス内のデフォルトの KMS 鍵フィールドを探します。REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、目的のfields
を含むGET
Bucket リクエストで JSON API を呼び出します。curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は鍵を表示するバケットの名前です。例:my-bucket
次の例のようなレスポンスになります。
{ "encryption" : { "defaultKmsKeyName": "KEY_RESOURCE" }, }
XML API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、encryption
クエリ パラメータが含まれるGET
Bucket リクエストで XML API を呼び出します。curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は鍵を表示するバケットの名前です。例:my-bucket
次の例のようなレスポンスになります。
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
バケットからのデフォルトの鍵の削除
バケットに設定したデフォルトの Cloud KMS 鍵を削除するには:
Console
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザを開く バケットのリストで、目的のバケットをクリックします。
バケットの詳細ページで、[構成] タブをクリックします。
暗号化タイプのエントリに関連付けられた鉛筆アイコンをクリックします。
[Google が管理する鍵] ラジオボタンをオンにします。
[保存] をクリックします。
Cloud Storage ブラウザで、失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。
gsutil
gsutil kms encryption
コマンドを使用します。
gsutil kms encryption -d gs://BUCKET_NAME
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
成功した場合、レスポンスは次のようになります。
Clearing default encryption key for gs://my-bucket...
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
次の情報が含まれる .json ファイルを作成します。
{ "encryption": { "defaultKmsKeyName": null } }
cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
次の情報を含む .xml ファイルを作成します。
<EncryptionConfiguration></EncryptionConfiguration>
cURL
を使用して、PUT
Bucket リクエストとencryption
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
ここで
XML_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
Cloud KMS 鍵を使用したオブジェクトの暗号化
Cloud KMS 鍵を使用してオブジェクトを個々に暗号化できます。これは、バケットに設定したデフォルトの鍵とは異なる鍵を使用する場合や、バケットにデフォルトの鍵が設定されていない場合に便利です。
Console
Cloud Console で個々のオブジェクトを暗号化することはできません。代わりに gsutil か、クライアント ライブラリを使用してください。
gsutil
.boto 構成ファイルの
[GSUtil]
セクションに、次のオプションを追加します。encryption_key = KEY_RESOURCE
ここで、
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
gsutil cp
やgsutil rewrite
などを使用して、通常どおりにバケットにオブジェクトを書き込みます。
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
オブジェクトのデータをリクエストの本文に追加します。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME&kmsKeyName=KEY_RESOURCE"
ここで
OBJECT
は、アップロードするオブジェクトへのパスです。例:Desktop/dog.png
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:image/png
BUCKET_NAME
は、オブジェクトをアップロードするバケットの名前です。例:my-bucket
OBJECT_NAME
は、アップロードするオブジェクトの名前です。例:pets/dog.png
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
XML API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
オブジェクトのデータをリクエストの本文に追加します。
cURL
を使用して、PUT
Object リクエストで XML API を呼び出します。curl -X PUT --data-binary @OBJECT \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-kms-key-name: KEY_RESOURCE" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
OBJECT
は、アップロードするオブジェクトへのパスです。例:Desktop/dog.png
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:image/png
BUCKET_NAME
は、オブジェクトをアップロードするバケットの名前です。例:my-bucket
OBJECT_NAME
は、アップロードするオブジェクトの名前です。例:pets/dog.png
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
顧客指定の暗号鍵から Cloud KMS 鍵へのローテーション
オブジェクトが顧客指定の暗号鍵で暗号化されている場合は、オブジェクトを書き換えることによって Cloud KMS 鍵を使用するようにローテーションさせることができます。
Console
個々のオブジェクトの暗号鍵は、Cloud Console を使用して変更することはできません。代わりに gsutil か、クライアント ライブラリを使用してください。
gsutil
boto 構成ファイルの
[GSUtil]
セクションに、次のオプションを追加します。encryption_key = KEY_RESOURCE decryption_key1 = CUSTOMER_SUPPLIED_ENCRYPTION_KEY
ここで
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
CUSTOMER_SUPPLIED_ENCRYPTION_KEY
は、オブジェクトの現在の暗号鍵です。
gsutil rewrite
コマンドを使用し、-k
フラグを指定します。gsutil rewrite -k gs://BUCKET_NAME/OBJECT_NAME
ここで
BUCKET_NAME
は、該当するオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、該当するオブジェクトの名前です。例:pets/dog.png
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ -H "x-goog-copy-source-encryption-algorithm: AES256" \ -H "x-goog-copy-source-encryption-key: OLD_ENCRYPTION_KEY" \ -H "x-goog-copy-source-encryption-key-sha256: HASH_OF_OLD_KEY" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?kmsKeyName=KEY_RESOURCE"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。OLD_ENCRYPTION_KEY
は、オブジェクトの暗号化に現在使用されている AES-256 鍵です。HASH_OF_OLD_KEY
は、AES-256 鍵の現在の SHA-256 ハッシュです。BUCKET_NAME
は、該当するオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、キーをローテーションするオブジェクトの名前です。例:Desktop/dogs.png
KEY_RESOURCE
は Cloud KMS 鍵リソースです。例:projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
XML API
XML API では、オブジェクトの書き換えによる顧客指定の暗号鍵から Cloud KMS 鍵へのローテーションはサポートされていません。XML API を使用してこのようなローテーションを行うには、次のようにします。
オブジェクトを暗号化するために使用される鍵の特定
オブジェクトの暗号化に使用された Cloud KMS 鍵の名前を確認するには:
Console
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザを開く バケットのリストで、目的のオブジェクトが含まれるバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト ] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
[暗号化] 列でそのオブジェクトのエントリにカーソルを合わせます。
鍵名の形式は次のとおりです。
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
gsutil
gsutil stat
コマンドを使用します。
gsutil stat gs://BUCKET_NAME/OBJECT_NAME
ここで
BUCKET_NAME
は、暗号化されたオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は暗号化されたオブジェクトの名前です。例:pets/dog.png
成功した場合、レスポンスに鍵の名前が含まれます。
gs://my-bucket/pets/dog.png: ... KMS key: projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key ...
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
オブジェクトに関連付けられた KMS 鍵を表示するには、オブジェクトのメタデータを表示する手順に沿って、レスポンスの KMS 鍵名フィールドを確認します。Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
オブジェクトに関連付けられた KMS 鍵を表示するには、オブジェクトのメタデータを表示する手順に沿って、レスポンスの KMS 鍵名フィールドを確認します。Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
オブジェクトに関連付けられた KMS 鍵を表示するには、オブジェクトのメタデータを表示する手順に沿って、レスポンスの KMS 鍵名フィールドを確認します。Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
オブジェクトに関連付けられた KMS 鍵を表示するには、オブジェクトのメタデータを表示する手順に沿って、レスポンスの KMS 鍵名フィールドを確認します。PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
オブジェクトに関連付けられた KMS 鍵を表示するには、オブジェクトのメタデータを表示する手順に沿って、レスポンスの KMS 鍵名フィールドを確認します。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
オブジェクトに関連付けられた KMS 鍵を表示するには、オブジェクトのメタデータを表示する手順に沿って、レスポンスの KMS 鍵名フィールドを確認します。REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、GET
Object リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?fields=kmsKeyName"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、暗号化されたオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は暗号化されたオブジェクトの名前です。例:pets/dog.png
XML API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、GET
Object リクエストで XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?encryption"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、暗号化されたオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は暗号化されたオブジェクトの名前です。例:pets/dog.png
オブジェクトの復号
Cloud KMS 鍵で暗号化されたオブジェクトの復号は、関連するサービス エージェントがその鍵にアクセスできる限り、自動的に実行されます。詳細については、顧客管理の暗号鍵を使用したサービス エージェントをご覧ください。
次のステップ
- Cloud Storage の顧客管理の暗号鍵について学習する。
- Cloud Storage で使用可能な他の暗号化オプションについて学習する。
- Cloud KMS 鍵をローテーションする。
- Cloud KMS で動作できる他のプロダクトについて調べる。