このページでは、gcloud CLI を使用して、Private Service Connect(PSC)を有効にした Looker(Google Cloud コア)インスタンスを作成するプロセスについて説明します。
PSC は、次の条件を満たす Looker(Google Cloud コア)インスタンスで有効にできます。
- Looker(Google Cloud コア)インスタンスは新しいものでなければなりません。PSC は、インスタンスの作成時にのみ有効にできます。
- インスタンスのエディションは、Enterprise または Embed にする必要があります。
始める前に
PSC インスタンスを作成する前に、プロジェクトが PSC プレビューの許可リストに追加されたという確認を営業担当者から受け取ることを確認してください。
- Google Cloud コンソールのプロジェクト セレクタのページで、PSC プレビューの許可リストに追加されたプロジェクトに移動します。
- Google Cloud コンソール でプロジェクトの Looker API を有効化します。API を有効にする際は、有効になっていることを確認するためにコンソール ページの更新が必要になる場合があります。
- Google Cloud コンソール でプロジェクトの Service Networking API を有効にします。API を有効にする際は、有効になっていることを確認するためにコンソール ページの更新が必要になる場合があります。
- OAuth クライアントを設定し、承認認証情報を作成する。OAuth クライアントを使用すると、インスタンスを認証してアクセスできます。インスタンスに対してユーザーを認証する別の認証方法を使用している場合でも、Looker(Google Cloud コア)インスタンスを作成するには OAuth を設定する必要があります。
- 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_ID
とOAUTH_CLIENT_SECRET
: OAuth クライアントを設定したときに作成した OAuth クライアント ID と OAuth シークレット。インスタンスが作成されたら、OAuth クライアントの [承認済みのリダイレクト URI] セクションにインスタンスの URL を入力します。REGION
: Looker(Google Cloud コア)インスタンスがホストされるリージョン。サブスクリプション契約のリージョンと一致するリージョンを選択します。使用可能なリージョンは、Looker(Google Cloud コア)のロケーション ドキュメント ページに記載されています。EDITION
: インスタンスのエディション。有効な値はcore-enterprise-annual
、core-embed-annual
です。インスタンスの作成後はエディションを変更できません。エディションを変更する場合は、インポートとエクスポートを使用して、Looker(Google Cloud コア)インスタンス データを、別のエディションで構成される新しいインスタンスに移動します。ALLOWED_VPC_1
とALLOWED_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_1
とDOMAIN_2
: 一般公開サービスに接続する場合は、サービスのドメイン名を使用します。プライベート サービスに接続する場合は、任意の完全修飾ドメイン名を使用します。ドメイン名には次の制限が適用されます。- 各下り(外向き)接続は 1 つのドメインをサポートします。
- ドメイン名は 3 つ以上の部分で構成する必要があります。たとえば、
mydomain.github.com
は使用できますが、github.com
は使用できません。 名前の最後の部分には使用できません。
googleapis.com
google.com
gcr.io
pkg.dev
Looker(Google Cloud コア)インスタンス内からサービスへの接続を設定する場合は、このドメインをサービスのエイリアスとして使用します。
SERVICE_ATTACHMENT_1
とSERVICE_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_1
とALLOWED_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] ページに移動して確認できます。