オンプレミス ホスト用の限定公開の Google アクセスの構成

オンプレミス用の限定公開の Google アクセスを使用すると、オンプレミス ホストから Cloud VPN トンネルまたは Cloud Interconnect 接続を経由して Google API とサービスにアクセスできるようになります。ホストに外部 IP アドレスを設定する必要はありません。オンプレミス ホスト用の限定公開の Google アクセスやその他のプライベート アクセス オプションについて詳しくは、サービスのプライベート アクセス オプションをご覧ください。

オンプレミス ホスト用の限定公開の Google アクセスによって利用できる API とサービスを確認するには、オンプレミス ホスト用の限定公開の Google アクセスの概要のサポート対象のサービスをご覧ください。

要件

  • Google Cloud Platform Console の [API とサービス] ページから、アクセスする API を有効にする必要があります。
  • プロジェクト オーナー、編集者、そしてネットワーク管理者の役割を持つ IAM メンバーがサブネットを作成または更新し、IP アドレスを割り当てることができます。役割の詳細については、IAM 役割のドキュメントをご覧ください。
  • 限定公開の Google アクセスでは VPC ネットワークが必要です。自動およびカスタムモードの VPC ネットワークがサポートされています。レガシー ネットワークはサポートされていません。
  • VPC ネットワークは、次のホップがデフォルト インターネット ゲートウェイであるルートを使用して、199.36.153.4/30 宛てのトラフィックをルーティングする必要があります。この設定を行うには、デフォルト ルートまたはカスタム静的ルートを使用します。

オンプレミス ホスト用の限定公開の Google アクセスの設定

オンプレミス ホスト用の限定公開の Google アクセスを設定するには、次の作業を行う必要があります。

  • Google API のトラフィックが Cloud VPN または Cloud Interconnect 接続を介して転送されるように、ルートを構成する必要があります。詳細については、ルートの構成をご覧ください。複数のトンネルまたは相互接続がある場合は、オンプレミス ネットワークへのクロスリージョン非対称ルートを作成することはできません。GCP ではサポートされていません。
  • オンプレミス ホストからのトラフィックが制限付きの Google API の IP 範囲にアクセスできるように、オンプレミス ファイアウォールでファイアウォール ルールを構成する必要があります。詳細については、ファイアウォール ルールの構成をご覧ください。
  • Google API へのトラフィックが制限付きの Google API の IP 範囲に解決されるように DNS を構成する必要があります。詳細については、DNS の構成をご覧ください。

ルートの構成

Cloud Router のカスタム アドバタイズ

Cloud Router のカスタムルート アドバタイズを使用すると、制限付きの Google API IP アドレスをオンプレミス ネットワークにアナウンスできます。制限付きの Google API IP アドレス範囲は 199.36.153.4/30 です。これはパブリック IP アドレス範囲ですが、Google はそのルートを一般にはアドバタイズしません。Cloud VPN トンネルや Cloud Interconnect 接続を経由するなど、内部 IP アドレスを経由して VPC ネットワークにアクセスできるオンプレミス ホストのみが、この IP アドレス範囲にアクセスできます。

制限付きのアドレス範囲をアナウンスするには、Cloud Router を使用してカスタム ルート アドバタイズを追加します。このアドバタイズは、Cloud Router または特定の BGP セッション(単一の Cloud VPN トンネルまたは VLAN アタッチメントなど)に追加できます。

既存の Cloud Router のすべての BGP セッション向けに制限付き範囲のカスタム ルート アドバタイズを作成するには、次の手順を実行します。

Console


  1. Google Cloud Platform Console の [クラウド ルーター] ページに移動します。
    Cloud Router リスト
  2. 更新する Cloud Router を選択します。
  3. Cloud Router の詳細ページで [編集] を選択します。
  4. [アドバタイズされたルート] セクションを展開します。
  5. [ルート] で、[カスタムルートの作成] を選択します。
  6. [Cloud Router に表示されるすべてのサブネットにアドバタイズする] を選択して、Cloud Router に表示されるサブネットのアドバタイズを継続します。このオプションを有効にすると、Cloud Router のデフォルトの動作と同じ結果になります。
  7. [カスタムルートの追加] を選択します。
  8. ルート アドバタイズを構成します。
    • ソース - [カスタム IP 範囲] を選択して、カスタム IP 範囲を指定します。
    • IP アドレス範囲 - 199.36.153.4/30 を指定します。
    • 説明 - Restricted Google APIs IPs の説明を追加します。
  9. ルートの追加が完了したら、[保存] を選択します。

gcloud


update コマンドを実行します。--set-advertisement-ranges フラグまたは --add-advertisement-ranges フラグを使用してカスタム IP 範囲を指定します。

  • カスタム IP 範囲を設定するには、--set-advertisement-ranges フラグを使用します。既存のカスタム アドバタイズがすべて置換されます。次の例は、すべてのサブネットと制限付きの Google API の IP 範囲 199.36.153.4/30 をアドバタイズするように、my-router Cloud Router を更新します。

    gcloud compute routers update my-router \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • 既存のアドバタイズにカスタム IP 範囲を追加するには、--add-advertisement-ranges フラグを使用します。このフラグを使用する場合、Cloud Router のアドバタイズ モードがすでに custom に設定されている必要があります。次の例は、Restricted Google APIs IPs カスタム IP を Cloud Router のアドバタイズに追加します。

    gcloud compute routers update my-router \
        --add-advertisement-ranges 199.36.153.4/30
    

既存の Cloud Router の特定の BGP セッションに対して制限付き範囲のカスタム ルート アドバタイズを作成するには、次の手順を実行します。

Console


  1. Google Cloud Platform Console の [クラウド ルーター] ページに移動します。
    Cloud Router リスト
  2. 更新する BGP セッションを含む Cloud Router を選択します。
  3. Cloud Router の詳細ページで、更新する BGP セッションを選択します。
  4. BGP セッションの詳細ページで、[編集] を選択します。
  5. [ルート] で、[カスタムルートの作成] を選択します。
  6. [Cloud Router に表示されるすべてのサブネットにアドバタイズする] を選択して、Cloud Router に表示されるサブネットのアドバタイズを継続します。このオプションを有効にすると、Cloud Router のデフォルトの動作と同じ結果になります。
  7. [カスタムルートの追加] を選択します。
  8. ルート アドバタイズを構成します。
    • ソース - [カスタム IP 範囲] を選択して、カスタム IP 範囲を指定します。
    • IP アドレス範囲 - 199.36.153.4/30 を指定します。
    • 説明 - Restricted Google APIs IPs の説明を追加します。
  9. ルートの追加が完了したら、[保存] を選択します。

gcloud


update-bgp-peer コマンドを実行します。--set-advertisement-ranges フラグまたは --add-advertisement-ranges フラグを使用してカスタム IP 範囲を指定します。

  • カスタム IP 範囲を設定するには、--set-advertisement-ranges フラグを使用します。既存のカスタム アドバタイズがすべて置換されます。次の例は、すべてのサブネットとカスタム IP 範囲 199.36.153.4/30 をアドバタイズするように、my-router Cloud Router の my-bgp-session BGP セッションを更新します。

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • 既存の IP 範囲にカスタム IP 範囲を追加するには、--add-advertisement-ranges フラグを使用します。このフラグを使用する場合、Cloud Router のアドバタイズ モードがすでに custom に設定されている必要があります。次の例は、制限付きの Google API の IP である 199.36.153.4/30 を Cloud Router のアドバタイズに追加します。

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges 199.36.153.4/30
    

    カスタム アドバタイズについて詳しくは、カスタムルート アドバタイズをご覧ください。

VPC ネットワーク ルートの要件

VPC ネットワークでは、199.36.153.4/30 宛てのトラフィックに関して、次のホップがデフォルト インターネット ゲートウェイになるようにルーティングを構成する必要があります。新規作成された VPC ネットワークでこの設定を行うには、デフォルト ルートを使用します。また、宛先が 199.36.153.4/30 で、次のホップがデフォルト インターネット ゲートウェイであるカスタム静的ルートを作成することもできます。デフォルト ルートを削除する場合は、カスタム静的ルートを作成する必要があります。

ファイアウォール ルールの構成

オンプレミス ホストからのトラフィックが 199.36.153.4/30 に到達できるように、オンプレミス ファイアウォール ルールを構成する必要があります。

DNS の構成

独自の DNS サーバーを構成し、*.googleapis.comrestricted.googleapis.com への CNAME として解決されるようにします。BIND を使用して DNS を構成できます。

Cloud DNS の非公開 DNS ゾーンまたは BIND を使用できます。

  • Cloud DNS の非公開 DNS ゾーンを使用すると、承認された VPC ネットワークからアクセス可能な DNS ゾーンをホストすることができます。転送が構成されている場合は、特定のオンプレミス ネームサーバーからもアクセス可能です。googleapis.com の非公開ゾーンを作成し、restricted.googleapis.com の A レコードと、それぞれの *.googleapis.com の名前のための適切な CNAME レコードを設定できます。Cloud DNS の非公開ゾーンは部分的なオーバーライドをサポートしていないため、*.googleapis.com 宛てのすべてのリクエストのリダイレクト先として選択できるのは restricted.googleapis.com のみです。その結果、restricted.googleapis.com VIP の使用をサポートしていない Google API とサービスは使用できません。詳細については、ゾーンの管理をご覧ください。
  • Cloud Dataflow の DNS 解決はカスタマイズできないため、Cloud Dataflow には BIND と restricted.googleapis.com VIP を使用できません。

Cloud DNS による DNS の構成

Cloud DNS を使用して限定公開の Google アクセスの DNS 解決を有効にするには、次の手順を使用します。

gcloud


  1. VPC ネットワーク用の非公開マネージド ゾーンを作成します。

    gcloud dns managed-zones create apis \
        --visibility private \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --dns-name googleapis.com \
        --description "Private Google APIs access"
    
  2. ポリシーを作成し、VPC ネットワーク用の受信転送を有効にします。

    gcloud beta dns policies create apipolicy \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --enable-inbound-forwarding \
        --description "enable inbound forwarding for Private Google APIs"
    
  3. トランザクションを開始します。

    gcloud dns record-sets transaction start -z apis
    
  4. DNS レコードを追加します。

    gcloud dns record-sets transaction add --name=*.googleapis.com. \
        --type=CNAME restricted.googleapis.com. --zone apis --ttl 300
    
    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
        --zone apis --ttl 300
    
  5. トランザクションを実行します。

    gcloud dns record-sets transaction execute --zone apis
    
  6. オンプレミス ネットワークでは、オンプレミス DNS の参照先を Cloud DNS のフォワーダー IP アドレスにします。フォワーダー IP アドレスを確認するには、compute addresses list コマンドを使用します。

    gcloud compute addresses list --filter='name ~ ^dns-forwarding.*' \
        --format='csv[no-heading](address, subnetwork)'
    

BIND による DNS の構成

オンプレミスの DNS 解決に BIND を使用する場合は、レスポンス ポリシー ゾーン(RPZ)を使用して Google API リクエストを制限付きの Google API に解決するように BIND を構成します。次の BIND 構成をご覧ください。

  1. /etc/bind/named.conf に次の行を追加します。

    include "/etc/bind/named.conf.options";
    include "/etc/bind/named.conf.local";
    
  2. /etc/bind/named.conf.options に次の行を追加します。

    options {
      directory "/var/cache/bind";
    
      dnssec-validation no;
    
      auth-nxdomain no;    # conform to RFC 1035
      listen-on-v6 { any; };
      listen-on { any; };
      response-policy { zone "googleapis.zone"; };
      allow-query { any;};
    };
    
  3. /etc/bind/named.conf.local に次の行を追加します。

    include "/etc/bind/named.conf.default-zones";
    
    zone "googleapis.zone" {
      type master;
      file "/etc/bind/db.googleapis.zone";
      allow-query {none;};
    };
    
  4. /etc/bind/db.googleapis.zone に次の行を追加します。

    $TTL 1H
    @                       SOA LOCALHOST. noreply.localhost(1 1h 15m 30d 2h)
                            NS  LOCALHOST.
    
    *.googleapis.com CNAME restricted.googleapis.com.
    restricted.googleapis.com CNAME rpz-passthru.
    

次のステップ

このページは役立ちましたか?評価をお願いいたします。