プライベート接続(プライベート サービス アクセス)の Looker(Google Cloud コア)インスタンスを作成する

プライベート サービス アクセスでプライベート接続を使用するように、Looker(Google Cloud コア)の本番環境インスタンスまたは非本番環境インスタンスを構成できます。

プライベート サービス アクセスを使用すると、Looker(Google Cloud コア)インスタンスは、公共のインターネットを経由したり、外部 IP アドレスを使用したりすることなく、Virtual Private Cloud(VPC)内の他のリソースと直接通信します。この構成により、攻撃ベクトルが制限され、公共のインターネットからの受信トラフィックが阻止され、ネットワーク レイテンシが短縮されます。

プライベート接続を使用すると、VPC Service Controls などの機能を使用できます。ただし、プライベート接続は、すべての Looker(Google Cloud コア)機能と互換性があるわけではありません。詳細については、機能の互換性の表をご覧ください。

Looker(Google Cloud コア)は、Enterprise または Embed インスタンス エディションのプライベート接続(PSA)をサポートしています。

必要なロールと権限

プライベート接続(PSA)インスタンスを設定するには、次の IAM 権限が必要です。

  1. Looker(Google Cloud コア)インスタンスを作成するには、Looker 管理者roles/looker.Admin)ロールが必要です。
  2. 割り当て IP アドレス範囲の作成とプライベート接続の管理に必要な権限を取得するには、プロジェクトに対するCompute ネットワーク管理者 roles/compute.networkAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

    この事前定義ロールには 、割り当て IP アドレス範囲の作成とプライベート接続の管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

    必要な権限

    割り当て IP アドレス範囲の作成とプライベート接続の管理には、次の権限が必要です。

    • [ネットワーク] プルダウンで利用可能なネットワークを確認します。
      • compute.addresses.list
      • compute.globalAddresses.list
      • compute.networks.list
      • compute.globalAddresses.list
    • 新しい VPC ネットワークを作成します。
      • compute.addresses.create
      • compute.globalAddresses.create
      • serviceusage.services.enable
    • プライベート IP 範囲を割り振り、プライベート サービス アクセス接続を設定します。 compute.networks.addPeering

    カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

    すでに設定されているプライベート ネットワークを使用している場合、これらの権限は必要ありません。

VPC Service Controls または顧客管理の暗号鍵(CMEK)を設定するには、追加の IAM ロールが必要になる場合があります。詳細については、Looker(Google Cloud コア)向けの VPC Service Controls のサポートまたはLooker(Google Cloud コア)の CMEK を有効にするのドキュメント ページをご覧ください。

始める前に

  1. 営業担当者と協力して、年間契約が完了し、プロジェクトに割り当てが割り振られていることを確認します。
  2. プロジェクトに対して課金が有効になっていることを確認します Google Cloud 。
  3. Google Cloud コンソール のプロジェクト セレクタのページで、 プロジェクト Google Cloud を作成するか、Looker(Google Cloud コア)インスタンスを作成する既存のプロジェクトに移動します。

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

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

    API を有効にする

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

    API を有効にする

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

    API を有効にする

  7. OAuth クライアントを設定し、認証情報を作成します。OAuth クライアントを使用すると、インスタンスを認証してアクセスできます。インスタンスに対してユーザーを認証する別の認証方法を使用している場合でも、Looker(Google Cloud コア)インスタンスを作成するには OAuth を設定する必要があります。

VPC ネットワークの作成と構成

プライベート接続を作成する前に、Virtual Private Cloud(VPC)ネットワークを作成して構成する必要があります。Looker(Google Cloud コア)は、同じ VPC 内に複数のプライベート接続(PSA)インスタンスをサポートしています。同じリージョン内でも、異なるリージョン内でも構いません。

  1. プロジェクト内に VPC ネットワークを作成する。新しい VPC ネットワークを作成する代わりに共有 VPC を使用する場合は、セクション共有 VPC でのインスタンスの作成の手順に加えて、共有 VPC のこのセクションの残りの手順を完了します。
  2. Looker(Google Cloud コア)への限定公開サービス アクセス接続用に VPC に IPv4 IP 範囲(CIDR ブロック)を割り当てます
    • 範囲を割り振る前に、制約を考慮してください。
    • IP アドレス範囲のサイズを設定する場合は、最小サイズが /22 ブロックであることに注意してください。
    • Looker(Google Cloud コア)は、RFC 1918 内のすべての IPv4 範囲をサポートしています。RFC 1918 では、内部で(つまり、組織内で)使用するために割り振られ、インターネット上ではルーティングされない IP アドレスが指定されています。具体的には、次のとおりです。
      • 10.0.0.0/8
      • 172.16.0.0/12
      • 192.168.0.0/16
    • クラス E の IPv4 範囲(240.0.0.0/4)は、RFC 5735RFC 1112 に記載されているとおり、将来の使用のために予約されており、Looker(Google Cloud コア)ではサポートされていません。
    VPC 内のリージョンで Looker(Google Cloud コア)インスタンスが初めて作成される場合、Looker は プロキシ専用サブネットを作成します。プロキシ専用サブネットは、Looker(Google Cloud コア)インスタンスを作成するときに予約する /22 サブネットの /26 範囲サブネットを使用します。同じ VPC と同じリージョンにある後続のプライベート接続(PSA)Looker(Google Cloud コア)インスタンスは、同じプロキシ専用サブネットを使用します。
  3. プライベート サービス アクセス接続を VPC ネットワークに追加します。[**割り当て**] 用に前の手順で割り当てた IP 範囲を使用します。
  4. VPC ネットワークが作成されたら、 プロジェクト Google Cloud の [Looker インスタンスを作成する] ページに戻ります。VPC ネットワークが認識されるように、ページの更新が必要になる場合があります。

これらの手順を完了したら、Looker(Google Cloud コア)インスタンスを作成する ドキュメント ページの始める前にセクションから始まる手順に沿って、インスタンスの作成を開始できます。

同じ VPC 内の複数のプライベート接続インスタンス

複数のプライベート接続 Looker(Google Cloud コア)インスタンスが同じリージョンと同じ VPC に配置されていて、リージョンで最初に作成された Looker(Google Cloud コア)インスタンスを削除する場合、プロキシ専用サブネットは、残りのインスタンスでまだ使用されているため、解放されません。削除されたインスタンスに使用したものと同じアドレス範囲(プロキシ専用サブネットの IP アドレス範囲を含む)を使用する新しいプライベート接続(PSA)Looker(Google Cloud コア)インスタンスを作成しようとすると、インスタンスの作成が失敗し、「IP 範囲が不足しています」というエラーが表示されます。IP 範囲が使用されているかどうかを確認するには、サービス ネットワーキングの VPC ピアリングを確認し、インポート ルートを確認して、目的の IP 範囲を使用しているかどうかを確認します。

共有 VPC でインスタンスを作成する

共有 VPC 内に Looker(Google Cloud コア)インスタンスを作成する場合は、共有 VPC のホスト プロジェクトで次の手順を完了します。

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

    API を有効にする

  2. gcloud services identity create command を使用して、共有 VPC のホスト プロジェクトに サービス アカウント を作成します。

    gcloud beta services identity create --service=looker.googleapis.com \
    --project=SHARED_HOST_PROJECT_ID
    

    SHARED_HOST_PROJECT_ID は、共有 VPC のホスト プロジェクトの ID に置き換えます。

  3. 共有 VPC のホスト プロジェクトのサービス アカウントに、compute.globalAddresses.get IAM 権限を含む IAM ロールを付与します。次に、add-iam-policy-binding コマンドを実行します。

    gcloud projects add-iam-policy-binding SHARED_HOST_PROJECT_ID \
        --member=serviceAccount:SA_EMAIL --role=ROLE_NAME

    以下のように置き換えます。

    • SHARED_HOST_PROJECT_ID: 共有 VPC のホスト プロジェクトの ID。

    • SA_EMAIL: 共有 VPC のホスト プロジェクトで作成したサービス アカウントのメールアドレス。

    • ROLE_NAME: compute.globalAddresses.get 権限を含むロールの名前。次のいずれかの形式で指定してください。

      • 事前定義ロール: roles/SERVICE.IDENTIFIER
      • プロジェクト レベルのカスタムロール: projects/PROJECT_ID/roles/IDENTIFIER
      • 組織レベルのカスタムロール: organizations/ORG_ID/roles/IDENTIFIER

      事前定義ロールのリストについては、ロールについてをご覧ください。

サービス アカウントを作成して IAM 権限を付与した後、サービス アカウントと権限が反映されるまで数分待ちます。

さらに、前のセクションの VPC ネットワークを作成して設定するの説明に従って、共有 VPC に IPv4 IP 範囲を割り当て、共有 VPC へのプライベート サービス アクセス接続を追加します。

プライベート接続インスタンスを作成する

Looker(Google Cloud コア)が新しいインスタンスを生成するには約 60 分かかります。

プライベート接続(PSA)インスタンスが必要な場合は、Google Cloud CLI または Terraform を使用する必要があります。また、インスタンスの作成時にプライベート接続(PSA)として構成する必要があります。インスタンスの作成後は、プライベート接続をインスタンスに追加したり、インスタンスから削除したりすることはできません。

Google Cloud CLI を使用してプライベート接続(PSA)インスタンスを作成する手順は次のとおりです。

  1. CMEK を使用している場合は、Looker(Google Cloud コア)インスタンスを作成する前に、サービス アカウント、キーリング、鍵を作成する手順を行います。
  2. gcloud looker instances create コマンドを使用して、インスタンスを作成します。

    gcloud looker instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --oauth-client-id=OAUTH_CLIENT_ID \
    --oauth-client-secret=OAUTH_CLIENT_SECRET \
    --region=REGION \
    --edition=EDITION \
    --private-ip-enabled \
    --consumer-network=CONSUMER_NETWORK --reserved-range=RESERVED_RANGE
    [--no-public-ip-enabled]\
    [--public-ip-enabled]\
    [--release-channel=RELEASE_CHANNEL]
    

    以下のように置き換えます。

    • INSTANCE_NAME: Looker(Google Cloud コア)インスタンスの名前。インスタンス URL には関連付けられていません。
    • PROJECT_ID: Looker(Google Cloud コア)インスタンスを作成する Google Cloud プロジェクトの名前。
    • OAUTH_CLIENT_IDOAUTH_CLIENT_SECRET: OAuth クライアントを設定したときに作成した OAuth クライアント ID と OAuth シークレット。インスタンスが作成されたら、OAuth クライアントの [承認済みのリダイレクト URI] セクションにインスタンスの URL を入力します。
    • REGION: Looker(Google Cloud コア)インスタンスがホストされるリージョン。サブスクリプション契約のリージョンと一致するリージョンを選択します。使用可能なリージョンは、Looker(Google Cloud コア)のロケーション ドキュメント ページに記載されています。
    • EDITION: エディション、環境タイプ(本番環境または非本番環境)、インスタンスがトライアル エディションかどうか。プライベート接続(PSA)インスタンスの場合、これは core-enterprise-annualcore-embed-annualnonprod-core-enterprise-annualnonprod-core-embed-annualcore-trial-enterprise、または core-trial-embed にする必要があります。年間契約に記載されているものと同じエディション タイプを選択し、割り当てが割り振られていることを確認してください。インスタンスの作成後はエディションを変更できません。エディションを変更する場合は、インポートとエクスポートを使用して、Looker(Google Cloud コア)インスタンス データを、別のエディションで構成される新しいインスタンスに移動します。
    • CONSUMER_NETWORK: VPC ネットワークまたは共有 VPC ネットワーク(形式は projects/PROJECT_ID/global/networks/NETWORK_NAME)。プライベート接続(PSA)インスタンスを作成する場合は、設定する必要があります。
    • RESERVED_RANGE: Google が Looker(Google Cloud コア)インスタンスのサブネットワークをプロビジョニングする VPC 内の IP アドレスの範囲。
    • RELEASE_CHANNEL:インスタンスのリリース チャンネル。使用可能な値は、rapidregularno-channel です。プレビュー時のデフォルトは no-channel です。create コマンドにこのフラグを含めない場合、インスタンスはデフォルト チャンネルで作成されます。この機能はプレビュー版です。

    次のフラグを含めることができます。

    • --private-ip-enabled は、プライベート接続(PSA)を有効にします。プライベート接続(PSA)インスタンスを作成するには、これを含める必要があります。
    • --public-ip-enabled は、パブリック IP を有効にします。
    • --no-public-ip-enabled は、パブリック IP を無効にします。
    • Looker(Google Cloud コア)インスタンスを作成する場合は、--async をおすすめします。
  3. パラメータを追加して、他のインスタンス設定を適用できます。

      [--maintenance-window-day=MAINTENANCE_WINDOW_DAY
              --maintenance-window-time=MAINTENANCE_WINDOW_TIME]
      [--deny-maintenance-period-end-date=DENY_MAINTENANCE_PERIOD_END_DATE
              --deny-maintenance-period-start-date=DENY_MAINTENANCE_PERIOD_START_DATE
              --deny-maintenance-period-time=DENY_MAINTENANCE_PERIOD_TIME]
      [--kms-key=KMS_KEY_ID]
      [--accelerated-security-patch-enabled]
      [--no-accelerated-security-patch-enabled]
      [--fips-enabled]
      [--catalog-integration-enabled]
      [--no-catalog-integration-enabled]
    

    以下のように置き換えます。

    次のフラグを使用すると、他の設定を有効にできます。

インスタンスの作成中は、コンソール内の [Instances] ページでステータスを確認できます。コンソールメニュー Google Cloud の通知アイコンをクリックして、インスタンス作成アクティビティを確認することもできます。

インスタンスの設定時にハイブリッド接続を選択した場合は、インスタンスのウェブ URL を使用して受信アクセスを設定できます。カスタム ドメインを設定した場合は、 [インスタンス] ページの Google Cloud コンソールまたはインスタンスの詳細ページの [カスタム ドメイン] タブでその URL を確認できます。IP 許可リストを設定して、特定の IP アドレスからのトラフィックへの受信接続を制限できます。

プライベート接続(PSA)のみのインスタンスを作成すると、URL は 表示されません 。[インスタンス] ページにプライベート接続(PSA)インスタンスへのアクセスを設定する方法については、次の作成後に限定公開サービス アクセス インスタンスにアクセスするをご覧ください。

作成後にプライベート サービス アクセス インスタンスにアクセスする

プライベート接続のみが有効になっているインスタンスを作成した場合、そのインスタンスの URL は受信されません 。インスタンスにアクセスするには、インスタンスのカスタム ドメインを構成し、そのカスタム ドメインをインスタンスの OAuth 認証情報に追加する必要があります。カスタム ドメインを作成してアクセスするには、プライベート サービス アクセスを使用して Looker(Google Cloud コア)インスタンスにアクセスするのドキュメント ページの手順に沿って操作してください。

ハイブリッド ネットワーキング構成を使用するインスタンスを作成する場合は、パブリック接続を使用する Looker(Google Cloud コア)インスタンスのカスタム ドメインを設定するのドキュメント ページの手順に沿って、カスタム ドメインを作成してアクセスします。

インスタンスの作成に関する問題のトラブルシューティング

トラブルシューティングについては、Looker(Google Cloud コア)インスタンスの作成失敗のトラブルシューティングのドキュメント ページをご覧ください。

次のステップ