このドキュメントでは、 Google Cloud の権限と Cloud Storage をステップごとに構成する方法について説明します。
- 転送先の Cloud Storage バケットを準備する。
- データを保護するための Cloud Key Management Service 鍵を準備する。
- Transfer Appliance チームに Cloud Storage バケットの構成データを提供する。
準備
Transfer Appliance チームからのメールが Google Transfer Appliance の準備権限とストレージ という名であることを確認します。このメールの内容は 次のとおりです。
転送に必要なサービス アカウントの名前。
アプライアンスの構成に必要なセッション ID。
アカウントの構成が完了したら入力するフォーム。
転送先の Cloud Storage バケットの準備
Cloud Storage にデータを保存するには、バケットを準備する必要があります。バケットは、Cloud Storage でデータを格納する基本的なコンテナです。
2 つのサービス アカウントを使用して、Transfer Appliance から、準備した転送先の Cloud Storage バケットにデータを転送します。サービス アカウントは、人ではなく、作業を行うためにアプリケーションで使用される特別なアカウントです。このガイドでは、サービス アカウントを使用することで、Transfer Appliance が Cloud Storage リソースを使用して、アプライアンスから Cloud Storage バケットにデータをコピーします。アプライアンスから Cloud Storage バケットにデータをコピーするためにこれらのアカウントが必要とするロールを付与します。
転送先の Cloud Storage バケットを準備するには、次の手順に従います。
「Google Transfer Appliance Preparing Bucket」 というタイトルのメールで、Transfer Appliance チームにより次のサービス アカウントが用意されます。
この転送に紐付けられたセッション サービス アカウント。次のような形式です。
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.comこの例で、
SESSION_IDは、この転送に固有のセッション ID です。Transfer Service for On Premises Data サービスに紐付けられたサービス アカウント。アプライアンスから Cloud Storage バケットにデータを転送するために使用します。たとえば、次のように表示されます。
project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.comこの例で、
TENANT_IDENTIFIERは、この特定のプロジェクトに固有の生成された番号です。
次の手順で使用するため、上記サービス アカウントをメモします。
サービス アカウントを使用すると、Transfer Appliance で Google Cloud ユーザーに代わって リソースを操作し、アプライアンスから Cloud Storage にデータをコピーできます。アプライアンスから Cloud Storage バケットにデータをコピーするためにこれらのアカウントが必要とするロールを付与します。
Cloud Storage バケットは Google Cloud プロジェクトに紐付けられています。選択するバケットは、アプライアンスの注文に使用した と同じプロジェクトに存在する必要があります。
Cloud Storage バケットがない場合は、1 つ作成します。
Google Cloud コンソール
コンソールで Cloud Storage バケットのページを開きます。 Google Cloud
[バケットを作成] をクリックして、バケット作成フォームを開きます。
次のバケット情報を入力します。各ステップは、[続行] をクリックして完了します。
[完了] をクリックします。
コマンドライン
gcloud storage buckets createコマンドを次のように使用します。gcloud storage buckets create gs://BUCKET_NAME --uniform-bucket-level-access --location=LOCATION --project=PROJECT_ID
この例では、次のようになります。
BUCKET_NAME: 作成するバケットの名前。バケット名の要件に従う必要があります。LOCATION: 必要な Cloud Storage バケットのロケーション。PROJECT_ID: バケットを作成する プロジェクト ID。
バケットに保持ポリシーを設定しないでください。
Transfer Appliance サービス アカウントに Cloud Storage バケットを使用する権限を付与するには、次の操作を行います。
Google Cloud コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
プリンシパルにロールが付与されるバケットに関連付けられた [バケット オーバーフロー] メニュー(
)をクリックします。[バケットの権限を編集] を選択します。
[+ プロジェクトを追加] ボタンをクリックします。
[新しいプリンシパル] フィールドに、次の ID を入力します。
セッション サービス アカウント。次のような形式です。
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.comこの例で、
SESSION_IDは、この転送に固有のセッション ID です。Transfer Service for On Premises Data サービス エージェント。たとえば、次のように表示されます。
project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.comこの例で、
TENANT_IDENTIFIERは、この特定のプロジェクトに固有の生成された番号です。
[ロールを選択] プルダウン メニューから [ストレージ管理者] ロールを選択します。
選択したロールと付与する権限の簡単な説明がパネルに表示されます。
[保存] をクリックします。
コマンドライン
gcloud storage buckets add-iam-policy-bindingコマンドを次のように使用します。gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \ --role=roles/storage.admin
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com \ --role=roles/storage.admin
この例では、次のようになります。
BUCKET_NAME: 作成するバケットの名前。SESSION_ID: この転送に固有のセッション ID。TENANT_IDENTIFIER: この特定のプロジェクトに固有の生成された番号。
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
Cloud KMS 鍵の準備
アプライアンスを返送する前に、Transfer Appliance では、データを暗号化してアプライアンスを保護します。Transfer Appliance では、データの暗号化に Cloud Key Management Service(Cloud KMS)の公開鍵を使用し、データの復号に秘密鍵を使用します。
転送先の Cloud Storage バケットの準備のセッション サービス アカウントを使用して、アプライアンスから Cloud Storage バケットにデータをアップロードします。
暗号鍵の管理には、次のオプションがあります。
Google-owned and Google-managed encryption keys。Google に Cloud KMS 鍵の作成と管理を依頼できます。この方法を使用する場合は、プロジェクトの構成が完了したら、アプライアンスを受け取るの手順に進みます。 Google Cloud
暗号鍵を自分で作成して管理する 。以下の手順に沿って、転送に使用する暗号鍵を作成して管理します。 Cloud KMS 非対称復号鍵を準備し、セッション サービス アカウントを鍵に追加します。セッション サービス アカウントは、非対称復号鍵を使用してデータを復号し、Cloud Storage にコピーします。
Cloud KMS 鍵を準備するには、次の操作を行います。
Cloud Key Management Service キーリングがない場合は、次の手順で作成します。
Google Cloud コンソール
コンソールで [**暗号鍵**] ページに移動します。Google Cloud
[キーリングを作成] をクリックします。
[キーリングの名前] フィールドに、キーリングの名前を入力します。
[鍵リングの場所] プルダウンから、
"us-east1"などの場所を選択します。[作成] をクリックします。
コマンドライン
gcloud kms keyrings create KEY_RING --location=LOCATION --project=PROJECT_ID
この例では、
LOCATION: キーリングの Cloud Key Management Service のロケーション。例:globalKEY_RING: キーリングの名前。PROJECT_ID: ストレージ バケットが存在する Google Cloud プロジェクト ID 。
次の手順で非対称復号鍵を作成します。
Google Cloud コンソール
コンソールで [**暗号鍵**] ページに移動します。Google Cloud
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[作成する鍵の種類] で [生成された鍵] を選択します。
[鍵名] フィールドに、鍵の名前を入力します。
[保護レベル] プルダウンをクリックし、[ソフトウェア] を選択します。
[目的] プルダウンをクリックし、[非対称復号] を選択します。
[アルゴリズム] プルダウンをクリックし、[4096 ビット RSA - OAEP パディング - SHA256 ダイジェスト] を選択します。
[作成] をクリックします。
コマンドライン
次のコマンドを実行して、非対称復号鍵を作成します。
gcloud kms keys create KEY --keyring=KEY_RING \ --location=LOCATION --purpose=asymmetric-encryption \ --default-algorithm=rsa-decrypt-oaep-4096-sha256 \ --project=PROJECT_ID
この例では、
KEY: Cloud Key Management Service 鍵の名前。例:ta-keyKEY_RING: キーリングの名前。LOCATION: キーリングの Cloud Key Management Service のロケーション。例:globalPROJECT_ID: ストレージ バケットが存在する Google Cloud プロジェクト ID 。
次の手順に従い、セッション サービス アカウントをプリンシパルとして非対称鍵に追加します。
Google Cloud コンソール
コンソールで [暗号鍵] ページに移動します。 Google Cloud
非対称鍵を含むキーリングをクリックします。
使用する鍵のチェックボックスをオンにします。
情報パネルで [プリンシパルを追加] をクリックします。
[プリンシパルを追加] が表示されます。
[新しいプリンシパル] フィールドに、Transfer Appliance チームから提供されたセッション サービス アカウントを入力します。次のような形式です。
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.comこの例で、
SESSION_IDは、この転送に固有のセッション ID です。[ロールを選択] フィールドに、[Cloud KMS 暗号鍵の公開鍵閲覧者] ロールを追加します。
[別の役割を追加] をクリックします。
[ロールを選択] フィールドに [クラウド KMS 暗号鍵の復号化] ロールを追加します。
[保存] をクリックします。
コマンドライン
次のコマンドを実行して、セッション サービス アカウントに
roles/cloudkms.cryptoKeyDecrypterロールを付与します。gcloud kms keys add-iam-policy-binding KEY \ --keyring=KEY_RING --location=LOCATION \ --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyDecrypter
この例では、次のようになります。
KEY: Cloud Key Management Service 鍵の名前。例:ta-keyKEY_RING: キーリングの名前。LOCATION: キーリングの Cloud Key Management Service のロケーション。例:globalSESSION_ID: この転送に固有のセッション ID。
次のコマンドを実行して、セッション サービス アカウントに
roles/cloudkms.publicKeyViewerロールを付与します。gcloud kms keys add-iam-policy-binding KEY \ --keyring=KEY_RING --location=LOCATION \ --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \ --role=roles/cloudkms.publicKeyViewer
この例では、次のようになります。
KEY: Cloud Key Management Service 鍵の名前。例:ta-keyKEY_RING: キーリングの名前。LOCATION: キーリングの Cloud Key Management Service のロケーション。例:globalSESSION_ID: この転送に固有のセッション ID。
次の手順を実行して、非対称鍵のパスを取得します。
Google Cloud コンソール
コンソールで [暗号鍵] ページに移動します。 Google Cloud
非対称復号鍵を含むキーリングをクリックします。
非対称復号鍵の名前をクリックします。
目的の鍵バージョンを選択して、その他アイコン(more_vert)をクリックします。
[リソース名をコピーする] をクリックします。
鍵の形式の例を次に示します。
projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER
この例では、
PROJECT_ID: ストレージ バケットが存在する Google Cloud プロジェクト ID 。LOCATION: キーリングの Cloud Key Management Service のロケーション。KEY_RING: キーリングの名前。KEY: Cloud Key Management Service 鍵の名前。VERSION_NUMBER: 鍵のバージョン番号。
Transfer Appliance チームは、バージョン番号を含む鍵パス全体を必要とします。これにより、データに正しい鍵を適用できます。
コマンドライン
次のコマンドを実行して、非対称鍵のフルパス(バージョン番号を含む)を一覧表示します。
gcloud kms keys versions list --keyring=KEY_RING \ --key=KEY --location=LOCATION \ --project=PROJECT_ID
この例では、
KEY_RING: キーリングの名前。KEY: 非対称鍵の名前。LOCATION: キーリングのロケーション。 Google CloudPROJECT_ID: ストレージ バケットが存在する Google Cloud プロジェクト ID。
次のレスポンスのサンプルは、返される出力に似ています。
NAME STATE projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER ENABLED
この例では、
PROJECT_ID: ストレージ バケットが存在する Google Cloud プロジェクト ID 。LOCATION: キーリングの Cloud Key Management Service のロケーション。KEY_RING: キーリングの名前。KEY: Cloud Key Management Service 鍵の名前。VERSION_NUMBER: 鍵のバージョン番号。
Transfer Appliance チームでは、
NAMEの下にある/cryptoKeyVersions/VERSION_NUMBERで終わる文字列が必要です(VERSION_NUMBERは鍵のバージョン番号)。
Transfer Appliance チームにバケット構成データを提供する
Cloud Storage バケットに関する情報を収集するため、「Google Transfer Appliance の準備権限とストレージ」というタイトルのメールを送信します。提供された情報を使用して、Transfer Appliance から Cloud Storage への転送を構成します。
そのメールにリンクされているフォームに、次の情報を入力します。
- Google Cloud プロジェクト ID。
- [Encryption] で選択します。
- Google-owned and Google-managed encryption key。Google に暗号鍵の管理を依頼する場合。
- [**顧客管理の暗号鍵**]。独自の 暗号鍵を管理する場合。[顧客管理の暗号鍵を選択] プルダウン メニューから目的の暗号鍵を選択します。
- この転送に使用する Google Cloud Cloud Storage の転送先バケット名。
- 省略可: オブジェクト接頭辞 。オブジェクト接頭辞がない場合、オブジェクトはファイルシステム上のファイル名の前にソースのパス(ルートパスは含まない)を付けて、Cloud Storage に転送されます。たとえば、次のファイルがあるとします。
/source_root_path/file1.txt/source_root_path/dirA/file2.txt/source_root_path/dirA/dirB/file3.txt
file1.txtdirA/file2.txtdirA/dirB/file3.txt
/文字の後ろで、かつオブジェクトの転送元のパス名(ソースのルートパスは含まない)の前になります。これにより、他の転送ジョブから転送されたオブジェクトを区別できるようになります。 次の表に、ソース オブジェクトのパスが/source_root_path/sub_folder_name/object_nameの場合の、オブジェクト接頭辞と Cloud Storage 内のオブジェクト名の例を示します。接頭辞 転送先のオブジェクト名 なし /destination_bucket/sub_folder_name/object_nameprefix//destination_bucket/prefix/sub_folder_name/object_name
次のステップ
IP ネットワーク ポートを構成して、 ネットワーク上で Transfer Appliance が動作するようにします。