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

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

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

始める前に

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

  1. Google Cloud コンソールのプロジェクト セレクタのページで、PSC プレビューの許可リストに追加されたプロジェクトに移動します。

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

  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 ロールが必要になる場合もあります。詳細については、これらの機能のドキュメント ページをご覧ください。

PSC インスタンスの作成

PSC インスタンスを作成するには、次のフラグをすべて指定して gcloud create command を実行します。


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_1,ALLOWED_VPC_2 \
 --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_1ALLOWED_VPC_2: Looker への上り(内向き)を許可する VPC。許可される各 VPC を、次のいずれかの形式で指定します。
    • projects/{project}/global/networks/{network}
    • https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}

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

  • PSC 設定では、--consumer-network フラグと --reserved-range フラグは必要ありません。
  • PSC インスタンスには、--no-public-ip-enabled--psc-enabled の 2 つの追加フラグが必要です。
  • --psc-allowed-vpcs フラグは、VPC のカンマ区切りのリストです。リストに指定できる VPC はいくつでも指定できます。

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

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

インスタンスが作成されるまで約 40 ~ 60 分かかります。ステータスを確認するには:

gcloud looker instances describe INSTANCE_NAME

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

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

外部サービス用に PSC を設定する

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

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

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

インスタンスが作成されたら、次のコマンドを実行して Looker テナント プロジェクト ID を確認できます。

gcloud looker instances describe INSTANCE_NAME --format=json

INSTANCE_NAME は、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 コア)PSC インスタンスを更新する

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

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

--psc-service-attachment フラグを使用して、すでに PSC を設定した外部サービスへの接続を有効にします。

$ 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

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

  • 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 には単一のドメインからアクセスできます。

有効にするすべての接続を含める

--psc-service-attachment フラグを指定して update コマンドを実行するたびに、有効にするすべての接続(すでに有効にされている接続を含む)を含める必要があります。たとえば、以前に 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 接続が削除されないようにするには、次のように update コマンド内に既存の接続と新しい接続の両方に個別の 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 を更新する

インスタンスへの上り(内向き)が可能な VPC のリストを更新するには、--psc-allowed-vpcs フラグを使用します。

許可された 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 ネットワーク内で PSC エンドポイントを作成する手順に沿って、次のガイドラインに従います。

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

プライベート IP インスタンスと同様に、PSC インスタンスにアクセスする 1 つの方法は、パブリック IP プロキシ サーバーを設定することです。プロキシ サーバーの設定手順に従いますが、次の点が異なります。

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