Looker(Google Cloud コア)Private Service Connect インスタンスを作成する

このページでは、gcloud CLI を使用して Private Service Connect を有効にした Looker(Google Cloud コア)インスタンスを作成するプロセスについて説明します。

Private Service Connect は、次の条件を満たす Looker(Google Cloud コア)インスタンスで有効にできます。

  • Looker(Google Cloud コア)インスタンスは新しいものでなければなりません。Private Service Connect は、インスタンスの作成時にのみ有効にできます。
  • インスタンスでパブリック IP を有効にすることはできません。
  • インスタンスのエディションは、Enterprise(core-enterprise-annual)または Embed(core-embed-annual)にする必要があります。

始める前に

Private Service Connect インスタンスを作成する前に、プロジェクトが Private Service Connect の許可リストに追加されたという確認を営業担当者から受け取っていることを確認してください。

  1. Google Cloud コンソールの [プロジェクト セレクタ] ページで、Private Service Connect インスタンスを作成するプロジェクトを選択します。

    プロジェクト セレクタに移動

  2. Google Cloud コンソール でプロジェクトの Looker API を有効化します。API を有効にする際は、有効になっていることを確認するためにコンソール ページの更新が必要になる場合があります。

    API を有効にする

  3. Google Cloud コンソール でプロジェクトの Service Networking API を有効にします。API を有効にする際は、有効になっていることを確認するためにコンソール ページの更新が必要になる場合があります。

    API を有効にする

  4. OAuth クライアントを設定し、認証情報を作成します。OAuth クライアントを使用すると、認証を行ってインスタンスにアクセスできます。インスタンスに対してユーザーを認証する別の認証方法を使用している場合でも、Looker(Google Cloud コア)インスタンスを作成するには OAuth を設定する必要があります。
  5. Looker(Google Cloud コア)インスタンスで、VPC Service Controls または顧客管理の暗号鍵(CMEK)を使用する場合は、インスタンスを作成する前に追加の設定が必要です。また、インスタンスの作成時に、追加のエディションやネットワーク構成が必要になることもあります。

必要なロール

Looker(Google Cloud コア)インスタンスの作成に必要な権限を取得するには、インスタンスを配置するプロジェクトに対する Looker 管理者 roles/looker.admin)IMA ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

VPC Service Controls または顧客管理の暗号鍵(CMEK)を設定するには、追加の IAM ロールが必要になる場合があります。詳細については、これらの機能のドキュメント ページをご覧ください。

Private Service Connect インスタンスを作成する

Private Service Connect インスタンスを作成するには、次のフラグをすべて指定して gcloud looker instances create コマンドを実行します。


gcloud looker instances create INSTANCE_NAME \
--no-public-ip-enabled \
--psc-enabled \
--oauth-client-id=OAUTH_CLIENT_ID \
--oauth-client-secret=OAUTH_CLIENT_SECRET \
--region=REGION \
--edition=EDITION \
--psc-allowed-vpcs=ALLOWED_VPC,ADDITIONAL_ALLOWED_VPCS \
 --async

次のように置き換えます。

  • INSTANCE_NAME: Looker(Google Cloud コア)インスタンスの名前。インスタンス URL には関連付けられていません。
  • OAUTH_CLIENT_IDOAUTH_CLIENT_SECRET: OAuth クライアントを設定したときに作成した OAuth クライアント ID と OAuth シークレット。インスタンスが作成されたら、OAuth クライアントの [承認済みのリダイレクト URI] セクションにインスタンスの URL を入力します。
  • REGION: Looker(Google Cloud コア)インスタンスがホストされるリージョン。サブスクリプション契約のリージョンと一致するリージョンを選択します。使用可能なリージョンは、Looker(Google Cloud コア)のロケーション ドキュメント ページに記載されています。
  • EDITION: インスタンスのエディション。有効な値は core-enterprise-annualcore-embed-annualです。インスタンスの作成後はエディションを変更できません。エディションを変更する場合は、インポートとエクスポートを使用して、Looker(Google Cloud コア)インスタンス データを、別のエディションで構成される新しいインスタンスに移動します。
  • ALLOWED_VPC: Looker への上り(内向き)を許可する VPC。インスタンスが配置されている VPC の外部からインスタンスにアクセスするには、少なくとも 1 つの VPC を一覧表示する必要があります。次のいずれかの形式を使用して VPC を指定します。
    • projects/{project}/global/networks/{network}
    • https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
  • ADDITIONAL_ALLOWED_VPCS: Looker への上り(内向き)を許可する追加の VPC をカンマ区切りのリストで --psc-allowed-vpcs フラグに追加できます。

Private Service Connect インスタンスを作成するプロセスは、通常の Looker(Google Cloud コア)インスタンスを作成するプロセスとは次の点で異なります。

  • Private Service Connect の設定では、--consumer-network フラグと --reserved-range フラグは必要ありません。
  • Private Service Connect インスタンスには、--no-public-ip-enabled--psc-enabled の 2 つのフラグが必要です。
  • --psc-allowed-vpcs フラグは、VPC のカンマ区切りのリストです。リストには任意の数の VPC を指定できます。

残りのフィールドを、通常の Looker(Google Cloud コア)インスタンスの場合と同様に指定します。

インスタンスのステータスを確認する

インスタンスの作成には約 40 ~ 60 分かかります。ステータスを確認するには、gcloud looker instances describe コマンドを使用します。

gcloud looker instances describe INSTANCE_NAME --region=REGION

INSTANCE_NAME は、Looker(Google Cloud コア)インスタンスの名前に置き換えます。

ACTIVE 状態になると、インスタンスは準備完了になります。

外部サービス用の Private Service Connect を設定する

Looker(Google Cloud コア)インスタンスが外部サービスに接続できるようにするには、その外部サービスを Private Service Connect を使用して公開する必要があります。公開するサービスに対して、Private Service Connect を使用してサービスを公開する手順に沿って操作します。

サービスは、自動承認または明示的な承認で公開できます。明示的な承認で公開する場合は、サービス アタッチメントを次のように構成する必要があります。

  • プロジェクト(ネットワークではない)を使用するようにサービス アタッチメントの許可リストを設定します。
  • Looker テナント プロジェクト ID を許可リストに追加します。

インスタンスが作成された後に Looker テナント プロジェクト ID は、次のコマンドを実行して見つけることができます。

gcloud looker instances describe INSTANCE_NAME --region=REGION--format=json

次のように置き換えます。

  • INSTANCE_NAME: Looker(Google Cloud コア)インスタンスの名前。
  • REGION: Looker(Google Cloud コア)インスタンスがホストされるリージョン。

コマンド出力の looker_service_attachment_uri フィールドに、Looker テナント プロジェクト ID が含まれます。形式は projects/{Looker tenant project ID}/regions/… になります。

サービス アタッチメントの URI

後で Looker(Google Cloud コア)インスタンスを更新してサービスに接続する場合は、完全なサービス アタッチメント URI が必要です。URI は、サービス アタッチメントの作成に使用したプロジェクト、リージョン、名前を使用して、次のように指定されます。

projects/{project}/regions/{region}/serviceAttachments/{name}

Looker(Google Cloud コア)Private Service Connect インスタンスを更新する

Looker(Google Cloud コア)Private Service Connect インスタンスが作成されたら、次の変更を行うことができます。

下り(外向き)接続を指定する

--psc-service-attachment フラグを使用して、Private Service Connect をセットアップ済みの外部サービスへの接続を有効にします。

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--psc-service-attachment domain=DOMAIN_2,attachment=SERVICE_ATTACHMENT_URI_2 \
--region=REGION

次のように置き換えます。

  • INSTANCE_NAME: Looker(Google Cloud コア)インスタンスの名前。
  • DOMAIN_1DOMAIN_2: 一般公開サービスに接続する場合は、サービスのドメイン名を使用します。限定公開サービスに接続する場合は、任意の完全修飾ドメイン名を使用します。ドメイン名には次の制限が適用されます。

    • 各下り(外向き)接続は 1 つのドメインをサポートします。
    • ドメイン名は 3 つ以上の部分で構成する必要があります。たとえば、mydomain.github.com は使用できますが、github.com は使用できません。
    • 名前の最後の部分は次のいずれかにはなりません。

      • googleapis.com
      • google.com
      • gcr.io
      • pkg.dev

    Looker(Google Cloud コア)インスタンス内からサービスへの接続を設定する場合は、このドメインをサービスのエイリアスとして使用します。

  • SERVICE_ATTACHMENT_1SERVICE_ATTACHMENT_2: 完全なサービス アタッチメント URI。各サービス アタッチメント URI には、1 つのドメインからアクセスできます。

  • REGION: Looker(Google Cloud コア)インスタンスがホストされるリージョン。

有効にする必要があるすべての接続を配置する

--psc-service-attachment フラグを使用して更新コマンドを実行するたびに、有効にするすべての接続(以前に有効にされた接続を含む)を含める必要があります。たとえば、次のように my-instance というインスタンスを www.cloud.com ドメインに接続していたとします。

gcloud looker instances update my-instance
--psc-service-attachment domain=www.cloud.com,attachment=projects/123/regions/us-central1/serviceAttachment/cloud

次のコマンドを実行して新しい www.me.com 接続を追加すると、www.cloud.com 接続が削除されます。

gcloud looker instances update my-instance \
--psc-service-attachment domain=www.me.com,attachment=projects/123/regions/us-central1/serviceAttachment/my-sa

新しい www.me.com 接続を追加するときに www.cloud.com 接続が削除されないようにするには、次のように更新コマンドに、既存の接続と新しい接続の両方に別々の psc-service-attachment フラグを指定します。

gcloud looker instances update my-instance \
--psc-service-attachment domain=www.cloud.com,attachment=projects/123/regions/us-central1/serviceAttachment/cloud \
--psc-service-attachment domain=www.me.com,attachment=projects/123/regions/us-central1/serviceAttachment/my-sa

下り(外向き)接続のステータスを確認する

下り(外向き)接続のステータスを確認するには、gcloud looker instances describe --format=json コマンドを再度実行します。各サービス アタッチメントに connection_status フィールドを入力する必要があります。

下り(外向き)接続をすべて削除する

すべての下り(外向き)接続を削除するには、次のコマンドを実行します。

gcloud looker instances update MY_INSTANCE \ --clear-psc-service-attachments \
--region=REGION

許可された VPC を更新する

--psc-allowed-vpcs フラグを使用して、インスタンスに上り(内向き)接続できる VPC のリストを更新します。

許可された VPC を更新する場合は、更新後に有効にするリスト全体を指定する必要があります。たとえば、VPC ALLOWED_VPC_1 がすでに許可されていて、VPC ALLOWED_VPC_2 を追加するとします。VPC ALLOWED_VPC_2 を引き続き許可しながら VPC ALLOWED_VPC_1 を追加するには、次のように --psc-allowed-vpcs フラグを追加します。

gcloud looker instances update INSTANCE_NAME --psc-allowed-vpcs=ALLOWED_VPC_1,ALLOWED_VPC_2 --region=REGION

次のように置き換えます。

  • INSTANCE_NAME: Looker(Google Cloud コア)インスタンスの名前。
  • ALLOWED_VPC_1ALLOWED_VPC_2: Looker への上り(内向き)が許可される VPC。次のいずれかの形式を使用して、許可する各 VPC を指定します。
    • projects/{project}/global/networks/{network}
    • https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
  • REGION: Looker(Google Cloud コア)インスタンスがホストされるリージョン。

許可されたすべての VPC を削除する

許可されているすべての VPC を削除するには、次のコマンドを実行します。

gcloud looker instances update MY_INSTANCE \ --clear-psc-allowed-vpcs \
--region=REGION

インスタンスにアクセスできるようにする

インスタンスにアクセスするには、まず Looker(Google Cloud コア)インスタンスへの上り(内向き)を許可する VPC ネットワーク内で Private Service Connect エンドポイントを作成する手順に沿ってから、以下のガイドラインを行います。

  • [ターゲット サービス] フィールド(Google Cloud コンソールの場合)または SERVICE\_ATTACHMENT 変数(Google Cloud CLI または API の手順に従う場合)を looker_service_attachment_uri に設定します。任意のサブネットを使用できます。
  • グローバル アクセスを有効にしないでください。

プライベート IP インスタンスと同様に、Private Service Connect インスタンスにアクセスする方法の一つとして、パブリック IP プロキシ サーバーを設定する方法があります。プロキシ サーバーの設定手順に沿って操作します。ただし、次の点が異なります。

  • ステップ 3: NETWORK には、Private Service Connect エンドポイントを作成した VPC ネットワークを使用します。そのネットワーク内で任意のサブネットを使用できます。
  • ステップ 7: PRIVATE\_IP\_ADDRESS には、作成した Private Service Connect エンドポイントの IP アドレスを使用します。これは、Google Cloud コンソールでプロジェクトの [Private Service Connect] ページに移動して確認できます。