Private Operator for GCP integration guide
UID2 Operator は、UID2 エコシステムの API サーバーです。詳細は、UID2 Operator を参照してください。
このガイドでは、Google Cloud Platform (GCP) の機密コンピューティングオプションである Confidential Space で Private Operator として UID2 Operator Service を設定する情報を提供します。Confidential Space は、Trusted Execution Environment (TEE) として知られるセキュアなクラウドベースのエンクレーブ環境を提供します。
UID2 Private Operator for GCP は、次の地域ではサポートされていません: ヨーロッパ、中国。
Operator Service は Confidential Space の "workload" で実行されます。これは、Confidential Space イメージ上のセキュアなクラウドベースのエンクレーブで実行されるコンテナ化された Docker イメージです。
UID2 Operator Confidential Space 用の Docker コンテナが起動すると、UID2 Core Service が Operator Service と Operator Service が実行されているエンクレーブ環境の正当性を検証するための認証プロセスが完了します。
認証が成功すると、UID2 Core Service は、UID2 Operator をセキュアな Confidential Space コンテナ内でブートストラップするためのソルトやキーなどのシード情報を提供します。
Operator version
最新の ZIP ファイルは、次の表の GCP ダウンロード列にリンクされています。
| Version Name | Version #/Release Notes | GCP Download | Date | Deprecation Date |
|---|---|---|---|---|
| H1 2026 | v5.70.159 | gcp-oidc-deployment-files-5.70.159-r0.zip | June 23, 2026 | June 30, 2027 |
サポートされているバージョンと非推奨日につ いては、Private Operator versions を参照してください。
Private Operator upgrade policy
セキュリティと運用の整合性を維持するため、古いオペレーターのバージョンは 12 ヶ月後に無効化され、影響を受けるデプロイメントがシャットダウンまたは起動に失敗する可能性があります。最新のセキュリティと機能強化を使用するために、アップグレードを推奨します。中断を避けるために、積極的なアップグレードを推奨します。
重要なセキュリティまたは運用上の問題、または契約条件が適用される場合、Private Operator に対してより厳しいアップグレードタイムラインを適用する権利を留保します。
Setup overview
セットアップは、次の手順で行います:
-
Confidential Space and UID2 Operator のアカウントを作成し、設定し、構成とデプロイに必要なさまざまな値を取得または作成します: Prerequisites を参照してください。
-
Deployment environments に関する情報を確認します。
ベストプラクティスは、まずインテグレーション環境にデプロイし、次に本番環境にデプロイすることです。
-
利用可能なdeployment options に関する情報を確認し、それぞれの利点を比較して、使用するオプションを決定します。
Terraform テンプレートオプションを推奨します。
-
選択したデプロイメントオプションに従って、適用可能な手順に従います:
-
必要であれば、エグレスルールを有効にします。
- 詳細は Confidential Space account setup、Step 4 を参照してください。
すべての手順が完了すると、実装が稼働するようになります。
Prerequisites
Google Cloud Platform で Confidential Space を使用して UID2 Operator Service を設定する前に、次の前提条件を満たす必要があります:
Confidential Space account setup
UID2 Operator Service は、任意の GCP アカウントとプロジェクトで実行できます。ただし、認証をサポートするためには、Confidential Space 仮想マシン(VM)を実行するために使用できるサービスアカウントを作成する必要があります。
デプロイメントオプションを選択する前に、次の Google Cloud のセットアップ手順を完了してください:
-
UID2 Operator を実行する GCP プロジェクトを作成します。UID2 Operator Service が実行される GCP プロジェクトを作成することを推奨しますが、既存のプロジェクトを使用することもできます。次のガイドラインに従ってください:
- プロジェクト名を選択します。たとえば、
UID2-Operator-Productionとします。この値は、後の手順で{PROJECT_ID}値として使用します。 - 請求が有効になっている GCP プロジェクトを定義してください。
- プロジェクト名を選択します。たとえば、
-
Confidential Space VM を実行する GCP サービスアカウントの名前を選択します。たとえば、
uid2-operatorとします。後の手 順で{SERVICE_ACCOUNT_NAME}値として使用します。 -
gcloud CLI をインストールします。デプロイメントオプションの両方で必要です。Google が提供する手順に従ってください: Install the gcloud CLI。
-
エグレスルールを有効にします。VPC インフラストラクチャが既知のエンドポイントへのイグレスのみを許可する場合、オペレーターが認証に必要な証明書を取得できるようにエグレスルールを有効にする必要があります。これを有効にするには、Google のこのドキュメントに従ってください: VPC Service Controls。
また、アウトバンドのネットワークが制限されている場合は、Private Operator network egress に記載されている宛先へのアウトバウンドアクセスを許可する必要があります。
UID2 Operator account setup
UID2 の連絡先に、あなたの組織を UID2 Operator として登録するよう依頼してください。誰に依頼すればよいかわからない場合は、Contact info を参照してください。
新しいバージョンやその他の技術的な通知や要求について知らせておくべき人の社内メール配信リストを設定し、そのメールアドレスを提供しておくとよいでしょう。
登録手続きが完了すると、次の情報が送られてきます:
| Item | Description |
|---|---|
{OPERATOR_KEY} | UID2 Service であなたを Private Operator として識別する、あなた専用の Operator Key。設定時に OPERATOR_KEY の値として使用します。この値は、あなた固有の識別子であると同時にパスワードでもあります。Operator Key は、オペレーターのバージョンに固有のものではありません。注意: 配備環境ごとに個別の Operator Key を受け取ります。 |
| Instructions | VM のセットアップ手順や当該情報へのリンクなど、追加情報の詳細。 |
UID2 アカウント登録が完了し、gcloud CLI をインストールしたら、次のステップに進みます:
- deployment environments に関する情報を確認します。
- 利用可能なdeployment options に関する情報を確認し、それぞれの利点を比較して、使用するオプションを決定します。
Preparing DII for processing
UID2 に変換する入力データが許容可能な形式であることは非常に重要です。そうでない場合、期待される結果は得られません。たとえば、Phone number normalization で説明されているように、電話番号には国コードを含めるように正規化する必要があります。
詳細は、Preparing emails and phone numbers for processing を参照してください。
フルトークン生成パイプラインをエンドツーエンドで検証し、正規化・ハッシュ化・エンコードされた値から生成されたトークンが正確であることを確認するためには、[UID2 Token Validator](../ref-info/ref-token-validator.md)を使用してください。
Deployment environments
以下の環境が利用可能で、deployment options の両方が両方の環境 をサポートしています。
ベストプラクティスは、本番環境にデプロイする前に、インテグレーション環境で実装をテストして検証することです。
各環境ごとに個別の {OPERATOR_KEY} 値を受け取ります。正しいものを使用してください。{OPERATOR_IMAGE} 値は、両方の環境で同じです。
| Environment | Details |
|---|---|
Integration (integ) | テスト専用。デバッグモードはインテグレーション環境で使用できます。 |
Production (prod) | 本番トラフィックの管理用。この環境では、Terraform テンプレート経由で、ロードバランシングを行い、HTTPS を有効にしてデプロイすることを推奨します。Deployment options を参照してください。 |
Deployment options
デプロイメントオプションは次の 2 つがあります:
| Option | Details |
|---|---|
| Terraform template | このオプションは:
|
| gcloud CLI | このオプションは:
|
どちらのデプロイメントオプションも、両方のデプロイメント環境をサポートしています。
次のステップを決定するには、使用するデプロイオプションを選択してください。次に、該当する手順に従ってください:
Deploy—Terraform template
デプロイとアップグレードを容易にするために、Terraform テンプレートを使用して、ロードバランシングと自動スケーリング機能を備えた UID2 Private Operator 実装をデプロイできます。このシナリオでは、すべての VM インスタンスが Confidential Space VM で実行され、複数の可用性ゾーン(AZ)にデプロイされます。
Terraform テンプレートは次の操作を行います:
- 必要な Google Cloud Platform API を有効にします。
- Confidential Space VM を実行するためのサービスアカウントを設定します。
operator_key値を保持するためのシークレットを作成します。- 次のコンポーネントを作成します:
- ネットワーク: VPC とサブネットワーク。
- インスタンス: インスタンステンプレート、インスタンスグループ(自動スケーリングを有効にする)。
- イングレス: ロードバランサー(ヘルスチェック付き)、フォワーディングルール、ファイアウォールルール。
- エグレス: Cloud Network Address Translation (NAT)。
- HTTPS が有効になっている場合、Terraform に HTTPS 証明書を提供します。
Terraform テンプレートは、Confidential Space account setup Step 3 でインストールした gcloud CLI を使用します。
新しい UID2 Operator を GCP Confidential Space Enclave にデプロイするための Terraform テンプレートを使用する手順は次のとおりです:
- Install Terraform
- Set up the Terraform environment
- Download the template files
- Provide input values
- Run Terraform
- Test Terraform using the health check endpoint
詳細は次のとおりです:
Install Terraform
Terraform がインストールされていない場合は、terraform.io を参照してインストールしてください。
Set up the Terraform environment
-
新しいプロジェクトを作成するか、既存のプロジェクトを選択します。プロジェクト ID の
{PROJECT_ID}プレースホルダを自分のプロジェクト ID に置き換えてください(Confidential Space account setup を参照):gcloud config set project {PROJECT_ID} -
Terraform の環境を設定します:
gcloud auth application-default login
Download the template files
Operator version の GCP ダウンロード列にある ZIP ファイルをダウンロードします。最新バージョンを選択してください。ファイルを便利な場所に解凍します。次の表に示すファイルが生成されます。
| File | Details |
|---|---|
main.tf | Terraform のテンプレートファイルです。 |
variables.tf | 名前、タイプ、デフォルト値を含む、テンプレート入力変数の定義です。 |
outputs.tf | 出力定義です。 |
terraform.tfvars | テンプレート入力変数の値です。 |
Provide input values
入力パラメータの値を提供するために、ダウンロードした terraform.tfvars ファイルに入力します。必要なものとオプションの両方があります。
-
次の表に示す必要な入力パラメータの値を提供します:
Name Type Default Required Description project_idstringuid2-testyes UID2 Operator を実行する GCP プロジェクトの ID。たとえば、 UID2-Operator-Production。service_account_namestringtf-testyes GCP Confidential Space の UID2 Operator インスタンスに使用するサービスアカウントの名前。 uid_operator_imagestringus-docker.pkg.dev/uid2-prod-project/iabtechlab/uid2-operator:{version_number}yes コンフィギュレーションで使用する UID2 Private Operator for GCP の Docker イメージ URL。バージョン番号は、デプロイされるバージョンによって変わります。 uid_operator_keystringn/a yes UID2 Operator Key は、UID2 Operator account setup で受け取ったものです。 uid_operator_key_secret_namestringsecret-operator-keyyes Secret Manager で作成するキーの名前。 uid_deployment_envstringintegyes 有効な値: integはインテグレーション環境、prodは本番環境。
マシンタイプはデプロイ環境によって決まります。integはn2d-standard-2を使用し、prodはn2d-standard-16を使用します。debug_modebooltrueyes より多くの診断情報を有効にするには trueに設定します。本番環境ではfalseに設定しなければなりません。 -
(オプション、強く推奨します) ロードバランサーを HTTPS に設定します。次の表に示すパラメータの値を設定します:
Name Type Default Required Description sslboolfalseno ロードバランサーが HTTPS を使うように設定するには、このフラグを trueに設定します。
HTTPS を使う場合はcertificateとprivate_keyパラメータにも値を指定する必要があります。certificatestringn/a no HTTPS 証明書の内容。証明書は PEM 形式でなければなりません。
たとえば:file('path/to/certificate.pem').sslがtrueに設定されている場合は必須です。
詳細は Terraform ドキュメントの google_compute_ssl_certificate を参照してください。private_keystringn/a no HTTPS 証明書の秘密鍵の内容。秘密鍵は PEM 形式でなければなりません。
たとえば:file('path/to/private_key.pem').sslがtrueに設定されている場合は必須です。
詳細は Terraform ドキュメントの google_compute_ssl_certificate を参照してください。 -
(オプション) 次の表に示す追加の入力パラメータの名前と値を提供します。これらのパラメータは常にオプションですが、デフォルト値を変更して、より適切な要件に合わせることができます。
Name Type Default Required Description regionstringus-east1no デプロイ先のリージョン。有効なリージョンの一覧は、Google Cloud ドキュメントの Available regions and zones を参照してください。
注意: GCP Confidential Space 用の UID2 Private Operator の実装は、次の地域ではサポートされていません: ヨーロッパ、中国。network_namestringuid-operatorno VPC リソース名(ルール/インスタンスタグにも使用されます)。 min_replicasnumber1no デプロイする最小レプリカ数を示します。 max_replicasnumber1no デプロイする最大レプリカ数を示します。 uid_operator_key_secret_namestring"secret-operator-key"no Operator Key のシークレットの名前を指定します。Terraform テンプレートは、GCP Secret Manager に uid_operator_key値を保持するためのシ ークレットを作成します。名前を定義できます。例:uid2-operator-operator-key-secret-integ。debug_modeboolfalseno UID2 チームと協力して問題をデバッグする場合を除き、 trueに設定しないでください。それ以外の場合、このフラグをtrueに設定すると、認証が失敗します。
Run Terraform
以下を実行します:
terraform init
terraform apply
terraform apply を実行すると、同じフォルダに次のファイルが生成されます: terraform.tfstate。このファイルは、マネージドインフラストラクチャと構成に関する状態情報を保存し、将来のメンテナンスに使用されます。
Terraform の state ファイルに関する推奨に従ってください: デプロイされたインフラストラクチャを維持するために必要であり、機密情報を含む可能性があります。詳細は、Terraform ドキュメントの state を参照してください。
Test Terraform using the health check endpoint
実装のヘルスをテストするために、ヘルスチェックエンドポイントを使用します。ヘルスチェックの期待される結果は、HTTP 200 で、レスポンスボディが OK です。
手順は、Health check—Terraform template を参照してください。
Delete all created resources
クリーンアップを行いたい場合は、Terraform によって作成されたリソースを削除できます。たとえば、integ をテストしたい場合、後でスタック全体を削除することができます。
すべてのリソースを削除するには、次のコマンドを実行します:
terraform destroy
Outputs
Terraform テンプレートからの出力値は次の表の通りです。
| Name | Description |
|---|---|
load_balancer_ip | ロードバランサーのパブリック IP アドレス。 この値は、ヘルスチェックの実行 や DNS の設定に使用できます。 |
Deploy—gcloud CLI
gcloud CLI を使用して GCP Confidential Space Enclave に新しい UID2 Operator をデプロイするには、次の手順に従います。
本番環境へのデプロイメントにはこのオプションを使用しないことを推奨します。本番環境へのデプロイメントには、Terraform テンプレートを使用し、ロードバランシングを行い、HTTPS を有効にすることを推奨します。
- Set up service account rules and permissions
- Create secret for the operator key in Secret Manager
- Update the script with valid values
- Run the script
- Test gcloud using the health check endpoint
Set up service account rules and permissions
gcloud CLI を使用して、UID2 Operator Service を実行するためのサービスアカウントを設定するには、次の手順に従います。プレースフォルダー値を自分の有効な値に置き換えてください。
-
作成したプロジェクトに切り替えます(Confidential Space account setup で作成したプロジェクト):
$ gcloud config set project {PROJECT_ID} -
次の API を有効にします:
Name Description compute.googleapis.com Compute Engine API confidentialcomputing.googleapis.com Confidential Computing API logging.googleapis.com Cloud Logging API secretmanager.googleapis.com Service Management API API を有効にするには、次のコマンドを実行します:
$ gcloud services enable compute.googleapis.com \
confidentialcomputing.googleapis.com \
logging.googleapis.com \
secretmanager.googleapis.com -
UID2 Operator Service を実行するサービスアカウントを作成します:
$ gcloud iam service-accounts create {SERVICE_ACCOUNT_NAME} -
サービスアカウントに必要な権限を付与します。
権限は次の表に示されています。
Permission Description confidentialcomputing.workloadUser認証トークンを生成し、VM でワークロードを実行する権限を提供します。 logging.logWritergcloud ロギングでログエントリを書き込む権限を提供します。 secretmanager.secretAccessorGCP Secret Manager で管理されている Operator Key にアクセスする権限を提供します。 confidentialcomputing.workloadUser権限を付与します:$ gcloud projects add-iam-policy-binding {PROJECT_ID} \
--member=serviceAccount:{SERVICE_ACCOUNT_NAME}@{PROJECT_ID}.iam.gserviceaccount.com \
--role=roles/confidentialcomputing.workloadUserlogging.logWriter権限を付与します:$ gcloud projects add-iam-policy-binding {PROJECT_ID} \
--member=serviceAccount:{SERVICE_ACCOUNT_NAME}@{PROJECT_ID}.iam.gserviceaccount.com \
--role=roles/logging.logWritersecretmanager.secretAccessor権限を付与します:$ gcloud projects add-iam-policy-binding {PROJECT_ID} \
--member=serviceAccount:{SERVICE_ACCOUNT_NAME}@{PROJECT_ID}.iam.gserviceaccount.com \
--role=roles/secretmanager.secretAccessor -
VPC ルールを追加して、UID2 Operator のデフォルト公開ポートであるポート 8080 へのパブリックアクセスを許可します:
$ gcloud compute firewall-rules create operator-tcp \
--direction=INGRESS --priority=1000 --network=default --action=ALLOW \
--rules=tcp:8080 \
--source-ranges=10.0.0.0/8 \
--target-service-accounts={SERVICE_ACCOUNT_NAME}@{PROJECT_ID}.iam.gserviceaccount.com
source-ranges は、クライアントが Private Operator を呼び出すために使用する IP アドレスの範囲を指定します。CIDR 表記であり、複数の範囲を提供するためにカンマ区切りの値を使用できます。例: --source-ranges="10.0.0.0/8,10.10.0.0/16"。範囲が正確であり、自分のものである IP アドレスのみが含まれていることを確認してください。
Create secret for the operator key in Secret Manager
UID2 Operator には、Operator Key が必要です。UID2 アカウントの設定(UID2 Operator account setup を参照)の一環として、各環境の Operator Key を受け取ります。
次のステップは、{OPERATOR_KEY} 値を GCP Secret Manager に保存し、それに対する完全なシークレット名を取得し、それをデプロイメントスクリプト内の {OPERATOR_KEY_SECRET_FULL_NAME} プレースホルダで置き換えることです (Update the script with valid values を参照)。
次の手順に従います:
-
次のスクリプトを実行して、新しいシークレットを作成します。最初に、自分の値でカスタマイズしてください:
OPERATOR_KEY="{OPERATOR_KEY}"
echo -n $OPERATOR_KEY | gcloud secrets create {OPERATOR_KEY_SECRET_NAME} \
--replication-policy="automatic" \
--data-file=--
自分の値を使用してスクリプトを準備します:
{OPERATOR_KEY}には、環境の Operator Key 値を使用します。{OPERATOR_KEY_SECRET_NAME}には、この環境の API シークレットの名前を指定します。例:uid2-operator-operator-key-secret-integ。
-
スクリプトを実行します。
スクリプトは GCP Secret Manager にシークレットを作成します。シークレット(表示名)は
{OPERATOR_KEY_SECRET_NAME}で、シークレット値は{OPERATOR_KEY}です。
-
-
次のコマンドを実行して、完全なシークレット名を取得します。最初に、自分の値でカスタマイズしてください:
$ gcloud secrets versions describe latest --secret {OPERATOR_KEY_SECRET_NAME} --format 'value(name)'
この例では、完全なシークレット名は次のようになります: projects/111111111111/secrets/uid2-operator-operator-key-secret-integ/versions/1。これは、次のセクションの {OPERATOR_KEY_SECRET_FULL_NAME} プレースホルダを置き換えるために使用する値です。
Update the script with valid values
サンプルスクリプトを更新して、プレースホルダ値を自分の有効な値に置き換えます。
このセクションには次の内容が含まれます: