このドキュメントでは、保存時のデータ所在地のみ、または高度なデータ所在地を使用して Apigee 組織をプロビジョニングする方法について説明します。
データ所在地の概要もご覧ください。
保存時のデータ所在地のみを指定して組織をプロビジョニングする
Apigee 管理者は、保存データのデータ所在地のみを使用して組織をプロビジョニングし、データの保存場所を制限するには、利用可能な有料の組織プロビジョニング オプションのいずれかを使用します。プロビジョニング時に [データ所在地を有効にする] チェックボックスをオンにしてください。
高度なデータ所在地を使用して組織をプロビジョニングする
Apigee 管理者は、データ ストレージ(保存中)、処理(使用中)、転送(転送中)などの高度なデータ所在地を使用して組織をプロビジョニングするには、次の手順を行う必要があります。
| # | ステップ | 説明 | 実行者 |
| 1 | Assured Workloads フォルダを作成する | Google Cloud 組織に Assured Workloads フォルダを作成して、許可されたロケーションでのみリソースの使用を制限する必要な組織のポリシーを設定して適用します。 | Assured Workloads 管理権限を持つGoogle Cloud 管理者 |
| 2 | 高度なデータ所在地でプロビジョニングする | 利用可能な有料組織のプロビジョニング オプションのいずれかを使用して、高度なデータ所在地で有料組織をプロビジョニングします。 コントロール プレーンのロケーションに基づいて Apigee UI にアクセスするには管轄区域コンソールを使用し、Apigee API にアクセスするにはリージョン エンドポイントを使用する必要があります。 |
Apigee 組織管理者 |
Assured Workloads フォルダを作成する
Assured Workloads を使用すると、組織は Google Cloud リソースに規制、地域、主権のコントロールを適用して適用できます。
Google Cloud コンソールを使用して、 Google Cloud 組織に Assured Workloads フォルダを作成し、規制要件に基づいてコントロール パッケージを選択します。コントロール パッケージは、組み合わせてコンプライアンス フレームワーク、法令、規則のベースラインをサポートする一連のコントロールです。コントロール パッケージは、必要な組織のポリシー制約を設定して適用し、次のことを行います。
- リソース使用量をサポートされているプロダクトのみに制限する
- 許可されたロケーションでのみリソースの作成または使用を許可する
Assured Workloads の詳細については、Assured Workloads の概要をご覧ください。
高度なデータ所在地を使用してプロビジョニングする
Apigee 管理者は、プロビジョニング オプションのいずれかを使用して有料組織をプロビジョニングするときに、管轄区域コンソールを使用して Apigee UI にアクセスするか、CLI を使用する場合はリージョン エンドポイントを使用する必要があります。
地域の適用法令のコンソールを使用する
高度なデータ所在地を使用して組織をプロビジョニングする場合は、ロケーション ベースの法域コンソールを使用して Apigee UI にアクセスする必要があります。管轄区域コンソールを使用して Apigee 組織をプロビジョニングすると、次のフィールドが自動的に構成されます。
- [データ所在地を有効にする] が選択されている(選択を解除できない)
- コントロール プレーンのホスティング法域オプションは、使用中の法域コンソールに基づいてフィルタされます
- 他のすべてのリージョン セレクタは、選択したコントロール プレーンのホスティング管轄区域内のロケーションのみを表示するようにフィルタされます。
法域コンソールにアクセスする方法については、法域コンソール Google Cloud と Assured Workloads の責任共有をご覧ください。
リージョン エンドポイントを使用する
高度なデータ所在地を使用して組織をプロビジョニングする場合は、次のリージョン エンドポイントを使用します。
apigee.CONTROL_PLANE_LOCATION.rep.googleapis.com
ここで、CONTROL_PLANE_LOCATION は Apigee コントロール プレーン データが保存される物理的なロケーションです。使用可能なコントロール プレーンのロケーションのリストについては、高度なデータ所在地にリージョン エンドポイントを使用するをご覧ください。
プロビジョニング時に、適切な値を選択する必要があります。設定されている組織のポリシーで禁止されているロケーションを使用すると、Permission Denied エラーが発生します。
たとえば、次のコマンドは、CMEK が有効になっている米国リージョンに Apigee 組織を作成します。Apigee 組織 API もご覧ください。
curl "https://apigee.us.rep.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \
-X POST
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "$PROJECT_ID",
"runtimeType": "CLOUD", # Hybrid organizations aren't supported
"billingType": "$BILLING_TYPE", # Eval organizations aren't supported
"controlPlaneEncryptionKeyName" : "'"$CONTROL_PLANE_KEY_ID"'",
"apiConsumerDataLocation" : "'"$CONSUMER_DATA_REGION"'", # Must be single region in US
"apiConsumerDataEncryptionKeyName" : "'"$CONSUMER_DATA_KEY_ID"'",
"authorizedNetwork" : "'"$NETWORK_NAME"'", # Must be created in the US region
"runtimeDatabaseEncryptionKeyName" : "'"$RUNTIMEDB_KEY_ID"'"
}'
gcloud CLI を使用して外部保護レベルの CMEK 鍵を作成する方法
EU リージョンで高度なデータ所在地を使用して Apigee 組織をプロビジョニングする場合は、外部保護レベルで顧客管理の暗号鍵(CMEK)を作成する必要があります。EU の管轄区域のコンソールでは、外部でバックアップされた CMEK 鍵の設定がサポートされていないため、CMEK 鍵を作成するには Google Cloud CLI を使用する必要があります。また、External Key Manager(EKM)を設定する必要があります。
CMEK 鍵を作成して EKM を設定するには、以降のセクションで説明する手順に沿って操作します。
EKM を設定する
EU リージョン用に作成された CMEK 鍵は、外部保護レベルで作成する必要があります。そのため、EKM を設定する必要があります。EKM を設定するには、次のセクションの手順に沿って操作します。
EU リージョンの CMEK 鍵を作成する
次の gcloud CLI コマンドを使用して、EU リージョンに必要な CMEK 鍵を作成します。
- コントロール プレーンの暗号鍵
- API 消費者データ暗号鍵
- ランタイム データベースの暗号鍵
- ランタイム ディスクの暗号鍵
CMEK 鍵の作成の詳細については、Apigee 暗号鍵についてをご覧ください。
次の手順を繰り返して、必要な CMEK 鍵をそれぞれ作成します。
- 次のコマンドを使用して、EU リージョンにキーリングを作成します。
gcloud kms keyrings create DATA_KEY_RING \ --location LOCATION \ --project=PROJECT_ID - 次のコマンドを使用して、外部キーを作成します。
gcloud kms keys create DATA_KEY_NAME \ --keyring=DATA_KEY_RING \ --location LOCATION \ --purpose encryption \ --protection-level external \ --skip-initial-version-creation \ --default-algorithm external-symmetric-encryption \ --project PROJECT_ID - 次のコマンドを使用して、前の手順で設定した EKM を指す鍵バージョンを作成します。
gcloud kms keys versions create \ --key DATA_KEY_NAME \ --keyring DATA_KEY_RING \ --location LOCATION \ --external-key-uri "EKM_URI" \ --primary \ --project PROJECT_ID - 次のコマンドを使用して、Apigee サービス エージェントに権限を付与します。
gcloud kms keys add-iam-policy-binding DATA_KEY_NAME \ --location LOCATION \ --keyring DATA_KEY_RING \ --member serviceAccount:service-$(gcloud projects describe $project --format="value(projectNumber)")@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
ここで
- DATA_KEY_RING: コントロール プレーン、API 消費者データ、ランタイム データベース、ランタイム ディスクのキーリングの名前。
- DATA_KEY_NAME: コントロール プレーン、API コンシューマー データ、ランタイム データベース、ランタイム ディスクの鍵の名前。
- LOCATION: キーリングの Cloud KMS のロケーション。この値を次のように設定します。
- [コントロール プレーンの暗号鍵] で、
usまたはeuropeのいずれかのマルチリージョン鍵に設定します。 - API 消費者データ暗号鍵、ランタイム データベース暗号鍵、ランタイム ディスク暗号鍵には、単一リージョン鍵(
europe-*またはus-*)のいずれか 1 つを設定します。(europe-west1、us-central1など)。
- [コントロール プレーンの暗号鍵] で、
- EKM_URI: EKM URI。
- PROJECT_ID: Google Cloud プロジェクト ID。
リージョン エンドポイントを使用するように gcloud CLI を構成する(省略可)
gcloud CLI を使用して Apigee 組織を管理できます。ほとんどの組織では、gcloud CLI が適切なリージョン エンドポイントを自動的に検出します。Apigee 組織名が Google Cloud プロジェクト名と一致する場合、これはシームレスに機能します。
ただし、場合によっては名前が一致しないことがあります。たとえば、Apigee 組織を 1 つの Google Cloud プロジェクトから別のプロジェクトに移行した場合、Apigee 組織の名前と、その組織が存在する Google Cloud プロジェクトの名前が異なることがあります。この場合、gcloud CLI を使用するときに次のいずれかを行う必要があります。
- 各 gcloud CLI コマンドで
--organizationフラグを渡して、ターゲット Apigee 組織を指定します。 - Apigee エンドポイントをオーバーライドし、すべてのコマンドで新しいリージョン エンドポイントを使用するように gcloud CLI を構成します。
たとえば、米国のリージョン エンドポイントを使用する場合、gcloud CLI コマンドは次のようになります。
gcloud config set api_endpoint_overrides/apigee https://apigee.us.rep.googleapis.com/
組織のコントロール プレーンのロケーションを表示する
データ所在地で使用する組織(PROJECT_ID)をすでにプロビジョニングしている場合、次の手順で getProjectMapping API を使用して、プロジェクトに関連付けられているコントロール プレーンのロケーションを確認できます。
- Google ユーザー認証情報を使用して gcloud に Cloud Platform へのアクセスを認可します。
gcloud auth login
- getProjectMapping API を呼び出します。
アクセスされる情報は顧客のコア コンテンツではなくメタデータであるため、グローバル エンドポイントまたはリージョン エンドポイントを使用して API を呼び出すことができます。次のコマンドは、グローバル エンドポイントを使用します。
curl -X GET https://apigee.googleapis.com/v1/organizations/PROJECT_ID:getProjectMapping \ -H "Authorization: Bearer $(gcloud auth print-access-token)"ここで、PROJECT_ID は Apigee 組織名です。
レスポンスの例を次に示します。
{ "organization": "my-project", "projectIds": [ "my-project" ], "projectId": "my-project" "location": "us" }
高度なデータ所在地をサポートするように Apigee 組織を移行する
データ所在地をサポートする既存の Apigee 組織を移行して高度なデータ所在地をサポートするには、次の操作を行います。
- Apigee がプロビジョニングされているGoogle Cloud プロジェクトを Assured Workload フォルダに移動します。詳細については、ワークロードを移行するをご覧ください。
- 高度なデータ所在地が一般提供される前に Apigee 組織を作成した場合は、グローバル ネットワーキング リソースを再構成して、必要な法域内に移行する必要があります。それ以外の場合は、この手順をスキップできます。