構成ファイルを作成する

このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンスの構成に使用する入力構成ファイルを作成する方法について説明します。

入力構成ファイルを作成する

  1. アプライアンスの構成プロセスでは、入力 YAML ファイルが使用されます。このファイルは、提供されたテンプレートとまったく同じ形式で作成します。「省略可」と記載されているフィールドまたはセクションは、空のままにせず、省略する必要があります。

  2. 入力構成ファイルの例を次に示します。

    bgp:
      dataASN: DATAPLANE_ASN
    interconnects:
      customerData:
        asn: CUSTOMER_ASN
        customerPeerSubnets:
        - ipFamily: UPLINK_IP_FAMILY_1
          ipv4:
            ip: UPLINK_IPV4_PEER_1
            subnet:
              gateway: UPLINK_IPV4_GW_1
              subnet: UPLINK_IPV4_NET_1
          # Optional: Only specify ipv6 for DualStack ipFamily
          ipv6:
            ip: UPLINK_IPV6_PEER_1
            subnet:
              gateway: UPLINK_IPV6_GW_1
              subnet: UPLINK_IPV6_NET_1
        - ipFamily: UPLINK_IP_FAMILY_2
          ipv4:
            ip: UPLINK_IPV4_PEER_2
            subnet:
              gateway: UPLINK_IPV4_GW_2
              subnet: UPLINK_IPV4_NET_2
          # Optional: Only specify ipv6 for DualStack ipFamily
          ipv6:
            ip: UPLINK_IPV6_PEER_2
            subnet:
              gateway: UPLINK_IPV6_GW_2
              subnet: UPLINK_IPV6_NET_2
    dns:
      delegatedSubdomain: DELEGATED_SUBDOMAIN
    externalCIDR:
      ipFamily: IP_FAMILY
      ipv4: EXTERNAL_NETWORK_IPV4
      ipv6: EXTERNAL_NETWORK_IPV6
    
    # Optional: External hardware security module (HSM) information
    externalHSM:
      primaryAddress:  EXTERNAL_HSM_PR_ADDR
      secondaryAddresses:
        - EXTERNAL_HSM_SE_ADDR
      caCert: EXTERNAL_HSM_CA_CERT
      clientCert: EXTERNAL_HSM_CLIENT_CERT
      clientKey: EXTERNAL_HSM_CLIENT_KEY
    
    # Optional: External IdP information
    externalIDP:
      name: EXTERNAL_IDP_NAME
      oidc:
        clientID: EXTERNAL_IDP_CLIENT_ID
        clientSecret: EXTERNAL_IDP_CLIENT_SECRET
        issuerURI: EXTERNAL_IDP_ISSUER_URI
        scopes: EXTERNAL_IDP_SCOPES
        userClaim: EXTERNAL_IDP_USER_CLAIM
        caCert: EXTERNAL_IDP_CA_DATA
      saml:
        idpEntityID: EXTERNAL_IDP_ENTITY_ID
        idpSingleSignOnURI: EXTERNAL_IDP_SSO_URI
        idpCertDataList: EXTERNAL_IDP_CERT_DATA
        userAttribute: EXTERNAL_IDP_USER_ATTRIBUTE
      initialAdmin: EXTERNAL_IDP_INITIAL_ADMIN
    

Border Gateway Protocol(BGP)情報

Border Gateway Protocol(BGP)は、外部ネットワークとルーティング情報を交換します。これらのネットワークは、自律システム番号(ASN)を使用して識別されます。GDC エアギャップ アプライアンスと外部ネットワーク間の接続を適切に行うには、すべての ASN 値がグローバルに一意である必要があります。

  1. DATAPLANE_ASN: GDC エアギャップ アプライアンス インスタンスのデータプレーンに割り当てられた ASN。たとえば、65204 のようにします。

  2. CUSTOMER_ASN: カスタマー ネットワークのデータプレーンに割り当てられた ASN。例: 4200002002

アップリンク構成は、GDC エアギャップ アプライアンス インスタンスを外部で顧客ネットワークや他の GDC エアギャップ アプライアンス インスタンスなどの他のサービスに接続するために使用されるピアリング接続です。GDC のエアギャップ アプライアンス インスタンスからのアップリンク構成と配線は、外部ネットワークとの適切な接続を確保するために重要です。

  1. GDC エアギャップ アプライアンス インスタンスへの顧客ピアリングに必要なアップリンクごとに、[顧客ピア サブネット] フィールドのアップリンク アイテム セクションに入力します。指定した数がアップリンクの想定数(2)と一致しない場合、残りのアップリンクは外部データプレーン サブネットから割り当てられます。
  2. アップリンクには、次の項目を指定します。
    1. UPLINK_IP_FAMILY_1UPLINK_IP_FAMILY_2: IP ファミリー サブネットを指定します。IPv4 または DualStack のいずれかを指定する必要があります。
      1. IPv4 を選択した場合、
        1. UPLINK_IPV4_PEER_1 IPUPLINK_IPV4_PEER_2 IP: ルーティングされたポートに割り当てられた IP アドレスを記述します。空白のままにすると、ピア サブネット ブロックから取得されます。
        2. UPLINK_IPV4_NET_1UPLINK_IPV4_NET_2: 提供されたスイッチとポートリンク用に、お客様のネットワークで構成されたピア サブネット ブロックを入力します。これは /31 サブネットです。例: 172.16.255.148/31
        3. UPLINK_IPV4_GW_1UPLINK_IPV4_GW_2: /31 ピア サブネットの顧客向け IP アドレスを表す IP アドレスを入力します。例: 172.16.255.148
      2. DualStack を選択した場合、
        1. UPLINK_IPV4_PEER_1 IPUPLINK_IPV4_PEER_2 IP: ルーティングされたポートに割り当てられた IPv4 アドレスを記述します。空白のままにすると、ピア サブネット ブロックから取得されます。
        2. UPLINK_IPV4_NET_1UPLINK_IPV4_NET_2: IPv4 の場合は、提供されたスイッチとポートリンク用に顧客のネットワークで構成されたピア サブネット ブロックを入力します。これは /31 サブネットです。例: 172.16.255.148/31
        3. UPLINK_IPV4_GW_1UPLINK_IPV4_GW_2: IPv4 の場合は、/31 ピア サブネットの顧客向け IP アドレスを表す IPv4 アドレスを入力します。例: 172.16.255.148
        4. UPLINK_IPV6_PEER_1 IPUPLINK_IPV6_PEER_2 IP: ルーティングされたポートに割り当てられた IPv6 アドレスを記述します。空白のままにすると、ピア サブネット ブロックから取得されます。
        5. UPLINK_IPV6_NET_1UPLINK_IPV6_NET_2: IPv6 の場合は、提供されたスイッチとポートリンク用に顧客ネットワークで構成されたピア サブネット ブロックを入力します。これは /127 サブネットです。例: FC00::/127
        6. UPLINK_IPV6_GW_1UPLINK_IPV6_GW_2: IPv6 の場合は、/127 ピア サブネットの顧客向け IP アドレスを表す IPv6 アドレスを入力します。例: FC00::

ドメイン ネーム システム(DNS)の情報

  1. DELEGATED_SUBDOMAIN: 親 DNS サーバーから GDC エアギャップ アプライアンス インスタンスの DNS 委任サブドメイン名を入力します。この完全修飾ドメイン名は、クラスタ管理などの GDC エアギャップ アプライアンス サービスの接尾辞として使用されます。LOCATION.SUFFIX という形式で指定してください。

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

    • LOCATION: GDC エアギャップ アプライアンス デプロイのゾーン ID(us-central1-a など)
    • SUFFIX: 有効な DNS サフィックス(zone1.google.gdch.testus-central1-a.gdch.customer など)

データプレーン ネットワーク(外部 CIDR)

  1. データプレーン IP ファミリー ネットワークの場合、サブネットが IPv4 か DualStack かを指定します。externalCIDR セクションで、IP_FAMILYIPv4 または DualStack に置き換えます。
    1. IPv4 を選択した場合は、
      1. 外部データプレーン ネットワークに、最小サイズが 23 の IPv4 ネットワーク アドレスを入力します。このネットワークは、Management API サーバーやストレージ インターフェースなどの外部からアクセス可能なサービスに使用します。ネットワーク アドレスは、ネットワークで事前割り当てされた連続した IP ブロックである必要があります。たとえば、EXTERNAL_NETWORK_IPV410.100.101.0/23 に置き換えます。
    2. DualStack を選択した場合、
      1. 外部データプレーン ネットワークに、最小サイズが 23 の IPv4 ネットワーク アドレスを入力します。このネットワークは、Management API サーバーやストレージ インターフェースなどの外部からアクセス可能なサービスに使用します。ネットワーク アドレスは、ネットワークで事前割り当てされた連続した IP ブロックである必要があります。たとえば、EXTERNAL_NETWORK_IPV410.100.101.0/23 に置き換えます。
      2. 最小サイズが 64 の IPv6 ネットワーク アドレスを入力します。この IP ブロックは 2 つに分割され、前半は外部データプレーン ネットワークとして使用され、後半は内部データプレーン ネットワークとして使用されます。たとえば、EXTERNAL_NETWORK_IPV6FC00::/64 に置き換えます。

省略可: 外部ハードウェア セキュリティ モジュール(HSM)情報

HSM デバイスは暗号鍵をホストし、KMIP(Key Management Interoperability Protocol)を使用して暗号オペレーションを実行します。ストレージに NetApp ONTAP Select(OTS)で HSM を使用できます。外部 NTP サーバーを使用する場合は、externalHSM セクションに入力します。

開始する前に、まず HSM ネットワークを構成します。

  1. EXTERNAL_HSM_PR_ADDR: プライマリ KMIP サービスのアドレス。(IP|DNS):Port の形式で指定します。ポートを省略すると、デフォルトのポート 5696 が使用されます。

    • [IP] に、KMIP サービスの IP ネットワーク アドレスを入力します。例: 8.8.8.8:5696
    • [DNS 名] に、KMIP サービスの完全修飾ドメイン名を入力します。例: te.us-central1-a:5696
  2. EXTERNAL_HSM_SE_ADDR: セカンダリ KMIP サービスのアドレス。(IP|DNS):Port の形式で指定します。ポートを省略すると、デフォルトのポート 5696 が使用されます。カンマで区切って、最大 3 つのセカンダリ アドレスを指定できます。

  3. EXTERNAL_HSM_CA_CERT: CACert を入力します。CA 証明書は、KMIP サービスの署名付き証明書です。

  4. EXTERNAL_HSM_CLIENT_CERT: 外部 HSM に接続するためのクライアント証明書を入力します。

  5. EXTERNAL_HSM_CLIENT_KEY: 外部 HSM への接続に使用するクライアント証明書に関連付けられたクライアント鍵を入力します。

省略可: ID プロバイダを接続する

ID とアクセス管理のために既存の ID プロバイダ(IdP)に接続するか、組み込みの Keycloak IdP を設定できます。独自の ID プロバイダを使用する場合は、externalIDP セクションに入力します。

  1. 接続する ID プロバイダのタイプ(OIDC(OpenID Connect)または SAML(Security Assertion Markup Language))を選択します。
  2. OIDC プロバイダを選択した場合は、次のパラメータを指定します。
    1. EXTERNAL_IDP_NAME: IdP の名前を入力します。ここで指定する名前は、システム内の ID のエイリアスです。
    2. EXTERNAL_IDP_ISSUER_URI: 発行元 URI を入力します。発行者 URI は .well-known/openid-configuration 内のレベルを指している必要があります。クライアント アプリケーションは、この URL に認可リクエストを送信します。Kubernetes API サーバーは、この URL を使用してトークン検証用の公開鍵を検出します。
    3. EXTERNAL_IDP_CA_DATA: IdP の認証局データの Base64 でエンコードされた PEM エンコード証明書を入力します。詳しくは、https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail をご覧ください。
      1. 文字列を作成するには、ヘッダーを含めた証明書を base64 でエンコードします。
      2. 結果の文字列は 1 行で含めます。例: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
    4. EXTERNAL_IDP_CLIENT_ID: IdP への認証リクエストを行うクライアント アプリケーションのクライアント ID を入力します。
    5. EXTERNAL_IDP_CLIENT_SECRET: IdP と GDC エアギャップ アプライアンス間の共有シークレットであるクライアント シークレットを入力します。
    6. EXTERNAL_IDP_USER_CLAIM: 各ユーザーを識別する ユーザー クレーム フィールドを入力します。これは、ユーザー名を保持する OIDC ID トークンのクレームの名前です。このクレームが ID トークンにない場合、ユーザーは認証できません。多くのプロバイダのデフォルトのクレームは sub です。ID プロバイダによっては、emailname などの他のクレームを選択できます。名前が競合しないように、email 以外のクレームには、発行元の URL が先頭に付加されます。
    7. EXTERNAL_IDP_SCOPES: ID プロバイダで追加のスコープが必要な場合は、IDP に送信するスコープのカンマ区切りのリストを入力します。たとえば、Microsoft Azure と Okta では、offline_access スコープが必要です。
  3. SAML プロバイダを選択した場合は、次のパラメータを指定します。
    1. EXTERNAL_IDP_NAME: IdP の名前を入力します。ここで指定する名前は、システム内の ID のエイリアスです。
    2. EXTERNAL_IDP_ENTITY_ID: SAML プロバイダのエンティティ ID を入力します。URI 形式で指定します(例: https://www.idp.com/saml)。
    3. EXTERNAL_IDP_SSO_URI: SSO URI(SAML プロバイダの SSO エンドポイントの URI。例: https://www.idp.com/saml/sso)を入力します。
    4. EXTERNAL_IDP_CERT_DATA: SAML レスポンスの検証に使用する IDP 証明書のリストを入力します。これらの証明書は標準の Base64 エンコード形式と PEM 形式にする必要があります。IDP 証明書のローテーションを容易にするため、サポートされる証明書は 2 つまでです。
    5. EXTERNAL_IDP_USER_ATTRIBUTE: ユーザー名を保持する SAML レスポンスの属性の名前であるユーザー属性を入力します。この属性が SAML レスポンスにない場合、認証は失敗します。
  4. EXTERNAL_IDP_INITIAL_ADMIN: SAML プロバイダと OIDC プロバイダの両方で、初期管理者のアカウントを入力します。初期管理者は、インストール完了後にシステムへのアクセス権が付与される最初のアカウントです。入力する値は、クレーム タイプと一致する必要があります。たとえば、OIDC プロバイダのユーザー クレームが email に設定されている場合は、メールアドレスと一致する必要があります。

    インストール完了後に初めてシステムにログインする際にこの情報が必要になるため、最初の管理者の名前を記録します。