MD5 認証を使用する

Cloud Router は、Border Gateway Protocol(BGP)を使用して、Virtual Private Cloud(VPC)ネットワークとピア ネットワーク間のルートを交換します。デフォルトでは、Cloud Router BGP セッションは認証されていません。ただし、特定のプロダクトで Cloud Router を使用する場合は、必要に応じて MD5 認証を使用するように BGP セッションを構成できます。

MD5 認証を使用できるプロダクトは次のとおりです。

サードパーティ製のネットワーク仮想アプライアンスでも MD5 認証を使用できます。詳細については、Network Connectivity Center のドキュメントの Router アプライアンスをご覧ください。

MD5 認証を使用するようにセッションを構成するときに、シークレット共有キーを指定します。この鍵は、Cloud Router の構成時とピアルーターの構成時に使用します。必要な設定手順を完了すると、Cloud Router はその鍵を使用して BGP ピアを認証します。Cloud Router では、RFC 2385 のモデルを使用して MD5 認証が適用されます。

ピアの作成時に MD5 認証を追加できます。また、既存のセッションに認証を追加することもできます。セッションが使用する鍵の変更や認証の削除も可能です。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud CLI をインストールします。
  5. gcloud CLI を初期化するには:

    gcloud init
  6. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  7. Google Cloud プロジェクトで課金が有効になっていることを確認します

  8. Google Cloud CLI をインストールします。
  9. gcloud CLI を初期化するには:

    gcloud init
  1. Google Cloud CLI を使用している場合は、次のコマンドを実行してプロジェクト ID を設定します。このページの gcloud の説明では、プロジェクト ID がすでに設定されていることを前提としています。
    gcloud config set project PROJECT_ID
        
  1. 次のコマンドを実行して、ID が設定されていることを確認します。
    gcloud config list --format='text(core.project)'
        

認証を使用するセッションを作成する

一部のネットワーク接続プロダクトでは、リソースの作成中に MD5 認証を使用するように BGP ピアを構成できます。これらのプロダクトには、HA VPN と Dedicated Interconnect があります。

詳しくは、以下のセクションをご覧ください。

レイヤ 2 Partner Interconnect の VLAN アタッチメントを作成する場合は、まずアタッチメントを作成してから、BGP ピアを更新して MD5 認証を追加します。BGP セッションの更新中に認証を追加する方法については、次のセクションをご覧ください。レイヤ 3 接続がある場合は、手順についてはサービス プロバイダにお問い合わせください。

既存のセッションに認証を追加する

既存の BGP ピアに認証を追加する場合は、次のいずれかの手順を行います。認証を追加するときに、使用する鍵がピアルーターで使用されている鍵と同じであることを確認してください。

Google Cloud では MD5 認証鍵は表示されません。構成が適切に完了すると、鍵名のみが表示されます。

  • gcloud または UI を使用して MD5 認証を構成すると、Google Cloud によって鍵名が PEER_NAME-key の形式で自動的に生成されます。
  • API で MD5 認証を構成する場合は、鍵名を指定できます。

コンソール

  1. Google Cloud コンソールで [Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. [名前] フィールドで、適切な Cloud Router の名前をクリックします。

  3. [ルーターの詳細] ページで、変更する BGP セッションの名前をクリックします。

  4. [BGP セッションの詳細] ページで、[編集] を選択します。

  5. MD5 認証を追加するには:

    1. [MD5 認証] セクションで、[有効] を選択します。ページが更新され、テキスト フィールドが追加されます。
    2. セキュリティ キーを入力するか、新しいセキュリティ キーを生成するために [生成してコピー] をクリックします。
    3. 鍵をメモしておきます。このページから移動すると、鍵を取得できなくなります。

  6. [保存] をクリックします。

gcloud

gcloud CLI を使用してセッションを更新するには、gcloud compute routers update-bgp-peer コマンドを使用します。

  gcloud compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

次の値を置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • PEER_NAME: BGP ピアの名前
  • REGION: Google Cloud リージョン
  • SECRET_KEY: シークレットの共有 MD5 認証鍵

API

API を使用してセッションを更新するには、compute.routers.patch メソッドを使用します。このメソッドを使用してセッションに認証を追加する場合、リクエストで次の 2 つのことを行う必要があります。

  • キーのエントリを md5AuthenticationKeys 配列に追加します。エントリを追加する際に、キーの名前と値の両方を指定します。
  • bgpPeers 配列を更新して、md5AuthenticationKeyName フィールドの値を含めます。このフィールドは、名前でキーを参照します。

md5AuthenticationKeys 配列にパッチを適用するときは、配列内の各アイテムの name を指定する必要があります(一部のアイテムを削除する場合を除きます)。ただし、各アイテムの key フィールドの値を指定する必要はありません。この値を省略すると、Cloud Router は以前に使用された値を保持します。この動作は、鍵の機密性を保護することを目的としています。これは、他のパッチメソッドとは異なり、配列項目の各フィールドに値を指定する必要があります。

bgpPeers 配列にパッチを適用するときは、(一部のピアまたは一部の値を削除する場合を除き)すべての項目のすべてのフィールドに値を指定する必要があります。

たとえば、Cloud Router にピア 2 つがあり、1 つは MD5 認証を使用するものと、使用しないものがあるとします。最初のピアを変更せずに、2 番目のピアに MD5 認証を追加する場合、次のようなリクエストを使用します。

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
      {
        "name": "KEY_NAME_1",
      },
      {
        "name": "KEY_NAME_2",
        "key": "SECRET_KEY"
      }
    ],
    "bgpPeers": [
      {
        "name": "PEER_NAME_1",
        "md5AuthenticationKeyName": "KEY_NAME_1",
        "interfaceName": "INTERFACE_NAME_1",
        "ipAddress": "IP_ADDRESS_1",
        "peerIpAddress": "PEER_IP_ADDRESS_1",
        "peerAsn": "PEER_ASN_1"
      },
      {
        "name": "PEER_NAME_2",
        "md5AuthenticationKeyName": "KEY_NAME_2",
        "interfaceName": "INTERFACE_NAME_2",
        "ipAddress": "IP_ADDRESS_2",
        "peerIpAddress": "PEER_IP_ADDRESS_2",
        "peerAsn": "PEER_ASN_2"
      }
    ],
  }
 

次の値を置き換えます。

  • PROJECT_ID: Cloud Router が含まれるプロジェクト
  • REGION: Google Cloud リージョン
  • ROUTER_NAME: Cloud Router の名前
  • KEY_NAME_1: 現在使用されている鍵の名前(PEER_NAME_1
  • KEY_NAME_2: PEER_NAME_2 に追加する新しい鍵の名前。名前をメモしておきます。後で API を使用して変更するときに、この名前が必要になります。
  • SECRET_KEY: PEER_NAME_2 に追加するシークレット MD5 認証鍵
  • PEER_NAME_1: 変更しない BGP ピアの名前
  • INTERFACE_NAME_1: 変更しない BGP ピアリング セッションのインターフェースの名前
  • IP_ADDRESS_1: Cloud Router の IP アドレス(変更しないピア用)
  • PEER_IP_ADDRESS_1: 変更しないピアの IP アドレス
  • PEER_ASN_1: 変更しないピアの BGP 自律システム番号(ASN)
  • PEER_NAME_2: MD5 認証を使用するように更新する BGP ピアの名前
  • INTERFACE_NAME_2: BGP ピアリング セッションのインターフェースの名前
  • IP_ADDRESS_2: Cloud Router の IP アドレス
  • PEER_IP_ADDRESS_2: ピアルーターの IP アドレス
  • PEER_ASN_2: この BGP ピアの BGP 自律システム番号(ASN)

認証鍵を更新する

Cloud Router がピアリング セッションに使用する鍵を変更するには、次のいずれかの方法を使用します。Cloud Router の鍵を更新するときは、使用する鍵が、ピアルーターで使用されている鍵と同じであることを確認してください。

Google Cloud では MD5 認証鍵は表示されません。構成が適切に完了すると、鍵名のみが表示されます。

  • gcloud または UI を使用して MD5 認証を構成すると、Google Cloud によって鍵名が PEER_NAME-key の形式で自動的に生成されます。
  • API で MD5 認証を構成する場合は、鍵名を指定できます。

コンソール

  1. Google Cloud コンソールで [Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. [名前] フィールドで、適切な Cloud Router の名前をクリックします。

  3. [ルーターの詳細] ページで、変更する BGP セッションの名前をクリックします。

  4. [BGP セッションの詳細] ページで、[編集] を選択します。

  5. [MD5 認証] セクションで、[MD5 認証キーの更新] をクリックします。

  6. [MD5 認証キー] フィールドに新しいシークレット認証キーを入力します。フィールドに入力するには、[生成してコピー] をクリックします。

  7. 鍵をメモしておきます。このページから移動すると、鍵を取得できなくなります。

  8. [保存] をクリックします。

gcloud

セッションを更新するには、gcloud compute routers update-bgp-peer コマンドを使用します。

  gcloud compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

次の値を置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • PEER_NAME: BGP ピアの名前
  • REGION: Google Cloud リージョン
  • SECRET_KEY: 使用する新しいシークレット MD5 認証鍵

API

セッションを更新するには、compute.routers.patch メソッドを使用します。たとえば、次のようなリクエストを使用します。

この例では、識別された特定のピアだけでなく、ピア配列全体が置き換えられます。つまり、PEER_NAME を除くすべてのピアが削除されます。KEY_NAME を除くすべての鍵を削除し、新しい値 UPDATED_SECRET_KEYKEY_NAME を更新します。

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
       {
        "name": "KEY_NAME",
        "key": "UPDATED_SECRET_KEY"
      }
    ],

    "bgpPeers": [
      {
        "name": "PEER_NAME",
        "md5AuthenticationKeyName": "KEY_NAME",
        "interfaceName": "INTERFACE_NAME",
        "ipAddress": "IP_ADDRESS",
        "peerIpAddress": "PEER_IP_ADDRESS",
        "peerAsn": "PEER_ASN"
      }
    ],
  }
 

次の値を置き換えます。

  • PROJECT_ID: Cloud Router が含まれるプロジェクト
  • REGION: Google Cloud リージョン
  • ROUTER_NAME: Cloud Router の名前
  • KEY_NAME: 更新する鍵の名前。API を使用して MD5 認証を操作する場合は、鍵名で鍵を参照する必要があります。
  • UPDATED_SECRET_KEY: 新しいシークレット MD5 認証鍵
  • PEER_NAME: BGP ピアの名前
  • INTERFACE_NAME: BGP ピアリング セッションのインターフェースの名前
  • IP_ADDRESS: Cloud Router の IP アドレス
  • PEER_IP_ADDRESS: ピアルーターの IP アドレス
  • PEER_ASN: この BGP ピアの BGP 自律システム番号(ASN)

認証ステータスを確認する

MD5 認証のステータスを確認するには、次の手順を行います。Cloud Router の詳細の表示もご覧ください。

コンソール

  1. Google Cloud コンソールで [Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. [名前] フィールドで、適切な Cloud Router の名前をクリックします。

  3. [ルーターの詳細] ページで、[MD5 認証] 列を探します。セッションごとに、この列の値は MD5 認証が有効かどうかを示します。

gcloud

gcloud CLI を使用してセッションを確認するには、gcloud compute routers get-status コマンドを使用します。

  gcloud compute routers get-status ROUTER_NAME \
     --project=PROJECT \
     --region=REGION \
 

次の値を置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • PROJECT: プロジェクトの名前
  • REGION: Google Cloud リージョン

出力には、Cloud Router の BGP セッションに関する情報を格納する result.bgpPeerStatus[] オブジェクトが含まれます。各セッションのデータには、次の 2 つのフィールドがあります。

  • md5AuthEnabled - セッションで MD5 認証が有効かどうかを示すブール値フィールド
  • statusReason - セッションのステータスを示すフィールド

API

routers.getRouterStatus メソッドを使用します。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/getRouterStatus

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

  • PROJECT_ID: Cloud Router が含まれるプロジェクト
  • REGION: Cloud Router が配置されているリージョン
  • ROUTER_NAME: Cloud Router の名前

出力には、各 BGP セッションに関する情報が含まれます。各セッションのデータには、次の 2 つのフィールドがあります。

  • md5AuthEnabled: セッションで MD5 認証が有効かどうかを示すブール値フィールド
  • statusReason: セッションのステータスを示すフィールド。このフィールドは、MD5 認証に問題がある場合にのみ表示されます(その場合、フィールドの値は MD5_AUTH_INTERNAL_PROBLEM です)。

BGP セッションの継続的なモニタリングを設定するには、Cloud Logging を使用します。Logging は、情報ログの一部である BGP イベントに、MD5 認証ステータスの情報を記録します。

セッションから認証を削除する

BGP セッションから MD5 認証を削除する場合は、Cloud Router とピアルーターの両方から MD5 認証を削除する必要があります。

Cloud Router の BGP セッションから MD5 認証を削除するには、次のいずれかの手順を行います。

コンソール

  1. Google Cloud コンソールで [Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. [名前] フィールドで、適切な Cloud Router の名前をクリックします。

  3. [ルーターの詳細] ページで、変更する BGP セッションの名前をクリックします。

  4. [BGP セッションの詳細] ページで、[編集] を選択します。

  5. [MD5 認証] で [無効] をクリックします。

  6. [保存] をクリックします。[MD5 認証キーを無効にしますか] ダイアログ ボックスが表示されます。

  7. 確認のダイアログで [確認] をクリックします。

gcloud

MD5 認証を削除するには、gcloud compute routers update-bgp-peer コマンドを使用します。

   gcloud compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --clear-md5-authentication-key

次の値を置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • PEER_NAME: BGP ピアの名前
  • REGION: Google Cloud リージョン

API

MD5 認証を削除するには、compute.routers.patch メソッドを使用します。

API を使用して認証を削除する場合、更新で次の 2 つの処理を行う必要があります。

  • md5AuthenticationKeys 配列を更新する
  • 関連する bgpPeers エントリから md5AuthenticationKey 値を削除する

たとえば、Cloud Router に 2 つの BGP ピアがあり、そのうちの 1 つから MD5 認証を削除するとします。この場合、次のようなリクエストを使用します。

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_NAME_FOR_UNCHANGED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_UPDATED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UPDATED_PEER",
        "ipAddress": "IP_ADDRESS_FOR_UPDATED_PEER",
        "peerIpAddress": "PEER_IP_ADDRESS_FOR_UPDATED_PEER",
        "peerAsn": "PEER_ASN_FOR_UPDATED_PEER"
      },
      {
        "name": "NAME_OF_UNCHANGED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UNCHANGED_PEER",
        "ipAddress": "IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerIpAddress": "PEER_IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerAsn": "PEER_ASN_FOR_UNCHANGED_PEER"
        "md5AuthenticationKeyName": "KEY_NAME_FOR_UNCHANGED_PEER"
      }
    ],
    ],
  }
 

次の値を置き換えます。

  • PROJECT_ID: Cloud Router が含まれるプロジェクト
  • REGION: Cloud Router が配置されている Google Cloud リージョン
  • ROUTER_NAME: Cloud Router の名前
  • NAME_OF_UPDATED_PEER: 変更するピアリング セッションの名前
  • INTERFACE_NAME_FOR_UPDATED_PEER: 変更する BGP ピアのインターフェースの名前
  • IP_ADDRESS_FOR_UPDATED_PEER: 変更するピアで使用される Cloud Router の IP アドレス
  • PEER_IP_ADDRESS_FOR_UPDATED_PEER: 変更するピアリング セッションのピアルーターの IP アドレス
  • PEER_ASN: 変更するこの BGP ピアの BGP 自律システム番号(ASN)
  • NAME_OF_UNCHANGED_PEER: 保持するピアリング セッションの名前
  • INTERFACE_NAME_FOR_UNCHANGED_PEER: 保持する BGP ピアのインターフェースの名前
  • IP_ADDRESS_FOR_UNCHANGED_PEER: 保持するピアで使用されている Cloud Router 上の IP アドレス
  • PEER_IP_ADDRESS_FOR_UNCHANGED_PEER: 保持するピアリング セッションのピアルーターの IP アドレス
  • PEER_ASN_FOR_UNCHANGED_PEER: 保持する BGP ピアの BGP 自律システム番号(ASN)
  • KEY_NAME_FOR_UNCHANGED_PEER: 保持する BGP ピアの MD5 認証キーの名前

認証を使用するセッションを削除する

MD5 認証を使用するピアリング セッションを削除するには、次のいずれかの手順を行います。

コンソール

  1. Google Cloud コンソールで [Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. BGP セッションを削除するルーターを選択します。
  3. [BGP セッション] で、削除する BGP セッションを選択します。
  4. ページの上部にある [削除] をクリックして、削除を確定します。

gcloud

MD5 認証を有効にした BGP セッションを削除するには、gcloud compute routers remove-bgp-peer コマンドを使用します。

詳細については、BGP セッションの無効化または削除をご覧ください。

API

MD5 認証を有効にした BGP セッションを削除するには、compute.routers.patch メソッドを使用します。

API を使用して MD5 認証の BGP セッションを削除する場合、md5AuthenticationKeys 配列から鍵を削除し、bgpPeer 自体を削除する必要があります。

たとえば、Cloud Router に 2 つのピアがあり、そのうちの 1 つを削除するとします。この場合、次のようなリクエストを使用します。

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_NAME_FOR_RETAINED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_RETAINED_PEER",
        "interfaceName": "INTERFACE_FOR_RETAINED_PEER",
        "ipAddress": "IP_ADDRESS_FOR_RETAINED_PEER",
        "peerIpAddress": "PEER_IP_ADDRESS_FOR_RETAINED_PEER",
        "peerAsn": "PEER_ASN_FOR_RETAINED_PEER",
        "md5AuthenticationKeyName": "KEY_NAME_FOR_RETAINED_PEER"
      }
    ],
  }
 

次の値を置き換えます。

  • PROJECT_ID: Cloud Router が含まれるプロジェクト
  • REGION: Google Cloud リージョン
  • ROUTER_NAME: Cloud Router の名前
  • KEY_NAME_FOR_RETAINED_PEER: 保持するピアにより使用される鍵の名前
  • NAME_OF_RETAINED_PEER: 保持する BGP ピアの名前
  • INTERFACE_FOR_RETAINED_PEER: 保持する BGP ピアのインターフェースの名前
  • IP_ADDRESS_FOR_RETAINED_PEER: 保持するピアの Cloud Router の IP アドレス
  • PEER_IP_ADDRESS_FOR_RETAINED_PEER: 保持するピアの IP アドレス
  • PEER_ASN_FOR_RETAINED_PEER: 保持するピアの BGP 自律システム番号(ASN)
  • KEY_NAME_FOR_RETAINED_PEER: 保持する BGP ピアの MD5 認証キーの名前

たとえば、次のピアを作成したとします。

  PATCH https://compute.googleapis.com/compute/v1/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
        "key":  "first_secret_key_value"
      },
      {
        "name":  "second_key_name",
        "key":  "second_secret_key_value"
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      },
      {
        "name": "second_peer",
        "md5AuthenticationKeyName": "second_key_name",
        "interfaceName": "second_interface",
        "ipAddress": "second_address",
        "peerIpAddress": "second_peer_interface",
        "peerAsn": "second_peer_asn"
      }
    ],
  }
 

2 つ目のピアを削除するには、次のようなリクエストを使用します。

  PATCH https://compute.googleapis.com/compute/v1/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      }
    ],
  }
 

次のステップ