GDC 信頼バンドルを取得する

信頼バンドル(信頼リストとも呼ばれます)は、本質的に信頼されており、その信頼が別のエンティティ(信頼できる第三者)によって転送されないエンティティなどの信頼アンカーのグループです。これらのトラスト アンカーは、認証局(CA)証明書として提供されます。証明書パス構築アルゴリズムは、これらの CA 証明書を使用して、検証を取得する証明書とトラスト アンカーの間にチェーンを確立します。

Google Distributed Cloud(GDC)エアギャップには専用の信頼バンドルがあります。このガイドでは、組織管理者が信頼バンドルを取得する手順について説明します。

信頼バンドルのタイプ

Distributed Cloud は、プラットフォーム管理者に次の 2 種類のマネージド信頼バンドルを提供します。

  • trust-store-root-ext: 内部ルート CA と web-tls CA が含まれます。コンテンツは、ルートやテナント組織など、コンテンツが存在する場所によって異なります。この信頼バンドルを使用して、組織の境界を越えて通信したり、組織内のオブジェクト ストレージなどのサービスにアクセスしたりします。

  • trust-store-global-root-ext: グローバル API サーバーとゾーン API サーバーの platform Namespace で使用できます。グローバル API サーバーの準備が整うと、バンドルはローカル データを含む他のすべてのゾーン trust-store-root-ext データを入力します。

信頼バンドルを取得する

信頼バンドルは、既知のサーバー エンドポイントから取得することも、kubectl を使用してクラスタから取得することもできます。

既知のサーバーから取得する

GDC は、既知のサーバー エンドポイントを介してトラスト バンドルに安全にアクセスする方法を提供します。kubectl を使用してクラスタを直接操作せずに trust-store-global-root-ext バンドルを取得する必要がある場合は、このメソッドを使用します。

  1. 次の環境変数をエクスポートします。

    export STORAGE=STORAGE
    export ORG_NAME=ORG_NAME
    

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

    • STORAGE: 信頼バンドル ファイルを保存するディレクトリ パス。
    • ORG_NAME: GDC 内の組織の名前。
  2. WELL_KNOWN_URL 環境変数を設定します。

    export WELL_KNOWN_URL=https://console.${ORG_NAME:?}.zone1.google.gdch.test/.well-known/certificate-authority
    
  3. GLOBAL_TRUST_BUNDLE_FILE 環境変数を設定します。このファイルは、指定した $STORAGE の場所に GDC 信頼バンドルをローカルに保存します。

    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  4. 既知のサーバーから trust-store-global-root-ext 信頼バンドルを取得し、前の手順で作成したファイルに保存します。

    echo -n | curl ${WELL_KNOWN_URL:?} > ${GLOBAL_TRUST_BUNDLE_FILE:?}
    

    取得したトラスト バンドル ファイルには、1 つ以上の CA 証明書が含まれています。出力は次のようになります。

    -----BEGIN CERTIFICATE-----
    MIIC8TCCAdmgAwIBAgIRAODQ/dOB39RBs8ZpN0RujIswDQYJKoZIhvcNAQELBQAw
    EjEQMA4GA1UEAxMHcm9vdC1jYTAeFw0yNTAxMDYwNzM3MzVaFw00ODEyMzEwNzM3
    MzVaMBIxEDAOBgNVBAMTB3Jvb3QtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
    ggEKAoIBAQC41U4+3M1EAHggUBw5ki97533zTvwHukmZyORwbQ3tlQ4GQDscoCEh
    nn+KCaG767VCaGDcQhq99hl6qa/nBoc1X6WQ3a/uhv5E2ztRD40PB5NFNdSulxTH
    gsitukSmv+DAx15UJnVkJtPP/FzxEWPu0piIiFZakTxT83VUSs54QRmTahxP80FI
    R0xZ0ohsu9jzA2CAyxTccJU0/xE2kDwN8c8kiYYuG+czMdNVdnT4Jm2ToSkzIDux
    Yi9MzNmarVGG/rtW5SlqnUMYzSsxtUYSmMRlCsFDVxkSzfmICmTRw2zmNkFA/3nz
    XneVSIsUHOA2NzvMN4eoLTVRgSFcHlZRAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
    hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEeB0EQwhc5p++GhwNymsBfN93
    WjANBgkqhkiG9w0BAQsFAAOCAQEAKBqn4AXjUWmhIUOrWQ5cetsmI76Wl+RBeSzU
    HxbqMBH8Dk1oJbGHtmQbu7EmWz1pKYge650s9N83hMgjFZD24t9GiQZ7YY+i+317
    D6HzJ8VIKPnxVtnUIQzCpkRTQoglDlb1f/7+fi2SYJoHdhnRI/3OaVQTnObjbW5T
    mBhsMxFKc0zGa3HIEm9SUH608V60xUPanl23YZ6X7W8nWAJfnzKvH+3q3Fz58u/S
    VR5t/FkbOktVtnU8AfcMKLof6KG2KhE2L7FAC+fp0ZsjV9vE2uqlZ+8mIQHyc3tM
    cbWxOx+SO/XUCenY9C1yrublln9aOEn4/s3aSURPguiSZOfDyQ==
    -----END CERTIFICATE-----
    

kubectl を使用してクラスタから取得する

kubectl コマンドライン ツールを使用して、GDC クラスタから信頼バンドルを直接取得できます。この方法は、クラスタとその構成に直接アクセスでき、trust-store-root-ext または trust-store-global-root-ext 信頼バンドルを取得する必要がある場合に使用します。

このセクションの手順を完了するには、次のものを取得する必要があります。

  • 必要な権限: 組織の IAM 管理者に、トラスト ストア閲覧者(trust-store-viewer)ロールの付与を依頼します。
  • Kubeconfig ファイル: まだ kubeconfig ファイルがない場合は、ログインして Management API サーバーの kubeconfig ファイルを生成します。以降のステップで MANAGEMENT_API_SERVER_KUBECONFIG を置き換えるには、kubeconfig ファイルのパスが必要です。

kubectl を使用してクラスタから信頼バンドルを取得します。

  1. 次の環境変数をエクスポートします。

    export KUBECONFIG=MANAGEMENT_API_SERVER_KUBECONFIG
    export STORAGE=STORAGE
    export ZONE=ZONE
    

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

    • MANAGEMENT_API_SERVER_KUBECONFIG: Management API サーバーの kubeconfig ファイルのパス。
    • STORAGE: 信頼バンドル ファイルを保存するディレクトリ パス。
    • ZONE: GDC ゾーン名。
  2. TRUST_BUNDLE_FILE 環境変数を設定します。このファイルは、GDC $ZONE の指定された $STORAGE の場所に GDC 信頼バンドルをローカルに保存します。

    export TRUST_BUNDLE_FILE="$STORAGE/$ZONE/ca-bundles/trust-bundle"
    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  3. 名前空間の NS 名前空間環境変数を設定します。

    export NS=platform
    
  4. 認証局(CA)を取得し、ステップ 2 で作成したファイルに保存します。

    trust-store-root-ext:

    kubectl --kubeconfig ${KUBECONFIG} get secret trust-store-root-ext -n ${NS} -o go-template='{{ index .data "ca.crt" }}' | base64 -d | sed '$a\' > ${TRUST_BUNDLE_FILE}
    

    trust-store-global-root-ext:

    kubectl --kubeconfig ${KUBECONFIG} get secret trust-store-global-root-ext -n ${NS} -o go-template='{{ index .data "ca.crt" }}' | base64 -d | sed '$a\' > ${GLOBAL_TRUST_BUNDLE_FILE}
    

    取得したトラスト バンドル ファイルには、1 つ以上の CA 証明書が含まれています。出力は次のようになります。

    -----BEGIN CERTIFICATE-----
    MIIC8TCCAdmgAwIBAgIRAODQ/dOB39RBs8ZpN0RujIswDQYJKoZIhvcNAQELBQAw
    EjEQMA4GA1UEAxMHcm9vdC1jYTAeFw0yNTAxMDYwNzM3MzVaFw00ODEyMzEwNzM3
    MzVaMBIxEDAOBgNVBAMTB3Jvb3QtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
    ggEKAoIBAQC41U4+3M1EAHggUBw5ki97533zTvwHukmZyORwbQ3tlQ4GQDscoCEh
    nn+KCaG767VCaGDcQhq99hl6qa/nBoc1X6WQ3a/uhv5E2ztRD40PB5NFNdSulxTH
    gsitukSmv+DAx15UJnVkJtPP/FzxEWPu0piIiFZakTxT83VUSs54QRmTahxP80FI
    R0xZ0ohsu9jzA2CAyxTccJU0/xE2kDwN8c8kiYYuG+czMdNVdnT4Jm2ToSkzIDux
    Yi9MzNmarVGG/rtW5SlqnUMYzSsxtUYSmMRlCsFDVxkSzfmICmTRw2zmNkFA/3nz
    XneVSIsUHOA2NzvMN4eoLTVRgSFcHlZRAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
    hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEeB0EQwhc5p++GhwNymsBfN93
    WjANBgkqhkiG9w0BAQsFAAOCAQEAKBqn4AXjUWmhIUOrWQ5cetsmI76Wl+RBeSzU
    HxbqMBH8Dk1oJbGHtmQbu7EmWz1pKYge650s9N83hMgjFZD24t9GiQZ7YY+i+317
    D6HzJ8VIKPnxVtnUIQzCpkRTQoglDlb1f/7+fi2SYJoHdhnRI/3OaVQTnObjbW5T
    mBhsMxFKc0zGa3HIEm9SUH608V60xUPanl23YZ6X7W8nWAJfnzKvH+3q3Fz58u/S
    VR5t/FkbOktVtnU8AfcMKLof6KG2KhE2L7FAC+fp0ZsjV9vE2uqlZ+8mIQHyc3tM
    cbWxOx+SO/XUCenY9C1yrublln9aOEn4/s3aSURPguiSZOfDyQ==
    -----END CERTIFICATE-----