このページでは、顧客指定の暗号鍵という、独自の暗号鍵を 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-bucketOBJECT_NAMEは、暗号化された最終的なオブジェクトの名前です。例:pets/new-dog.pngYOUR_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
gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、POSTObject リクエストで 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.pngOBJECT_CONTENT_TYPEは、オブジェクトのコンテンツ タイプです。例:image/pngYOUR_ENCRYPTION_KEYは、アップロードするオブジェクトの暗号化に使用する AES-256 鍵です。HASH_OF_YOUR_KEYは、AES-256 鍵の SHA-256 ハッシュです。BUCKET_NAMEは、オブジェクトをアップロードする宛先バケットの名前です。例:my-bucketOBJECT_NAMEは、アップロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.pngとして URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、PUTOBJECT リクエストで 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.pngOBJECT_CONTENT_TYPEは、オブジェクトのコンテンツ タイプです。例:image/pngYOUR_ENCRYPTION_KEYは、アップロードするオブジェクトの暗号化に使用する AES-256 鍵です。HASH_OF_YOUR_KEYは、AES-256 鍵の SHA-256 ハッシュです。BUCKET_NAMEは、オブジェクトをアップロードする宛先バケットの名前です。例:my-bucketOBJECT_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-bucketOBJECT_NAMEは、ダウンロードするオブジェクトの名前です。例:pets/dog.pngOBJECT_DESTINATIONは、オブジェクトを保存する場所です。例:DesktopYOUR_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
gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、GETObject リクエストで 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.pngBUCKET_NAMEは、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucketOBJECT_NAMEは、ダウンロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.pngとして URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、GETOBJECT リクエストで 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.pngBUCKET_NAMEは、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucketOBJECT_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-bucketOBJECT_NAMEは、鍵をローテーションするオブジェクトの名前です。例:pets/dog.pngNEW_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
gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、POSTObject リクエストで 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-bucketOBJECT_NAMEは、鍵をローテーションするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.pngとして URL エンコードされているpets/dog.png
暗号化に固有のヘッダーに関する詳細については、暗号化リクエストのヘッダーをご覧ください。
XML API
XML API では、オブジェクトの書き換えによる顧客指定の暗号鍵のローテーションはサポートされていません。XML API を使用して新しい顧客指定の暗号鍵をオブジェクトに適用するには、次の操作を行います。
次のステップ
顧客指定の暗号鍵の詳細を確認する。
顧客指定の暗号鍵から Cloud KMS 鍵にローテーションする方法を学習する。