このページでは、顧客指定の暗号鍵という、独自の暗号鍵を Cloud Storage で使用する方法を説明します。Cloud Storage の他の暗号化オプションについては、データ暗号化オプションをご覧ください。
独自の暗号鍵を生成する
Base64 エンコードされた AES-256 暗号鍵を生成する方法は数多くあります。たとえば、次のような方法があります。
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
顧客指定の暗号鍵でアップロードする
顧客指定の暗号鍵を使用してオブジェクトをアップロードするには:
コンソール
Google Cloud コンソールを使用して、顧客指定の暗号鍵を使用してオブジェクトをアップロードすることはできません。代わりに Google Cloud CLI またはクライアント ライブラリを使用してください。
コマンドライン
gcloud storage cp
コマンドを使用し、--encryption-key
フラグを指定します。
gcloud storage cp SOURCE_DATA gs://BUCKET_NAME/OBJECT_NAME --encryption-key=YOUR_ENCRYPTION_KEY
ここで
SOURCE_DATA
は、暗号化するデータのソースの場所です。cp
コマンドでサポートされる任意のソースの場所を指定できます。たとえば、Desktop/dogs.png
などのローカル ファイルや、gs://my-bucket/pets/old-dog.png
などの別の Cloud Storage オブジェクトです。BUCKET_NAME
は、このコピーコマンドの転送先バケットの名前です。例:my-bucket
OBJECT_NAME
は、暗号化された最終的なオブジェクトの名前です。例:pets/new-dog.png
YOUR_ENCRYPTION_KEY
は、アップロードされたオブジェクトの暗号化に使用する AES-256 鍵です。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME"
ここで
OBJECT
は、アップロードするオブジェクトへのパスです。例:Desktop/dogs.png
OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:image/png
YOUR_ENCRYPTION_KEY
は、アップロードするオブジェクトの暗号化に使用する AES-256 鍵です。HASH_OF_YOUR_KEY
は、AES-256 鍵の SHA-256 ハッシュです。BUCKET_NAME
は、オブジェクトをアップロードする宛先バケットの名前です。例:my-bucket
OBJECT_NAME
は、アップロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
XML API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、PUT
OBJECT リクエストで XML API を呼び出します。curl -X -i PUT --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
OBJECT
は、アップロードするオブジェクトへのパスです。例:Desktop/dogs.png
OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:image/png
YOUR_ENCRYPTION_KEY
は、アップロードするオブジェクトの暗号化に使用する AES-256 鍵です。HASH_OF_YOUR_KEY
は、AES-256 鍵の SHA-256 ハッシュです。BUCKET_NAME
は、オブジェクトをアップロードする宛先バケットの名前です。例:my-bucket
OBJECT_NAME
は、アップロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
暗号化したオブジェクトをダウンロードする
顧客指定の暗号鍵で暗号化されているオブジェクトを Cloud Storage からダウンロードするには:
コンソール
Google Cloud コンソールを使用して、顧客指定の暗号鍵で暗号化されたオブジェクトをダウンロードすることはできません。代わりに Google Cloud CLI またはクライアント ライブラリを使用してください。
コマンドライン
gcloud storage cp
コマンドを使用し、--decryption-keys
フラグを指定します。
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME OBJECT_DESTINATION --decryption-keys=YOUR_ENCRYPTION_KEY
ここで
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの名前です。例:pets/dog.png
OBJECT_DESTINATION
は、オブジェクトを保存する場所です。例:Desktop
YOUR_ENCRYPTION_KEY
は、アップロード時のオブジェクトの暗号化に使用する AES-256 鍵です。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、GET
Object リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
ここで
YOUR_ENCRYPTION_KEY
は、オブジェクトの暗号化に使用した AES-256 鍵です。HASH_OF_YOUR_KEY
は、AES-256 鍵の SHA-256 ハッシュです。SAVE_TO_LOCATION
は、オブジェクトを保存する場所です。例:Desktop/dog.png
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
XML API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、GET
OBJECT リクエストで XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
YOUR_ENCRYPTION_KEY
は、オブジェクトの暗号化に使用した AES-256 鍵です。HASH_OF_YOUR_KEY
は、AES-256 鍵の SHA-256 ハッシュです。SAVE_TO_LOCATION
は、オブジェクトを保存する場所です。例:Desktop/dog.png
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
暗号鍵をローテーションする
顧客指定の暗号鍵をローテーションするには:
コンソール
Google Cloud コンソールを使用して、顧客指定の暗号鍵をローテーションすることはできません。代わりに Google Cloud CLI またはクライアント ライブラリを使用してください。
コマンドライン
適切なフラグを指定して、gcloud storage objects update
コマンドを使用します。
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=NEW_KEY --decryption-keys=OLD_KEY
ここで
BUCKET_NAME
は、鍵をローテーションするオブジェクトを含むバケットの名前です。例:my-bucket
。OBJECT_NAME
は、鍵をローテーションするオブジェクトの名前です。例:pets/dog.png
NEW_KEY
は、オブジェクトの暗号化に使用する新しい顧客指定の暗号鍵です。OLD_KEY
は、オブジェクトの暗号化に使用する現在の顧客指定の暗号鍵です。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: NEW_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_NEW_KEY" \ -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"
ここで
NEW_ENCRYPTION_KEY
は、オブジェクトの暗号化に使用する新しい AES-256 鍵です。HASH_OF_NEW_KEY
は、新しい AES-256 鍵の SHA-256 ハッシュです。OLD_ENCRYPTION_KEY
は、オブジェクトの暗号化に現在使用されている AES-256 鍵です。HASH_OF_OLD_KEY
は、AES-256 鍵の現在の SHA-256 ハッシュです。BUCKET_NAME
は、該当するオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、鍵をローテーションするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
XML API
XML API では、オブジェクトの書き換えによる顧客指定の暗号鍵のローテーションはサポートされていません。XML API を使用して新しい顧客指定の暗号鍵をオブジェクトに適用するには、次の操作を行います。
次のステップ
顧客指定の暗号鍵の詳細を確認する。
顧客指定の暗号鍵から Cloud KMS 鍵にローテーションする方法を学習する。