GDC 신뢰 번들 가져오기

트러스트 번들(트러스트 목록이라고도 함)은 본질적으로 신뢰할 수 있고 신뢰가 다른 항목(신뢰할 수 있는 서드 파티)에 의해 이전되지 않는 항목과 같은 트러스트 앵커 그룹입니다. 이러한 신뢰 앵커는 인증 기관 (CA) 인증서로 제공됩니다. 인증 경로 빌드 알고리즘은 이러한 CA 인증서를 사용하여 검증을 획득하는 인증서와 신뢰 앵커 간의 체인을 설정합니다.

Google Distributed Cloud (GDC) 에어 갭 적용형에는 전용 신뢰 번들이 있습니다. 이 가이드에서는 조직 관리자의 신뢰 번들을 가져오는 단계를 설명합니다.

신뢰 번들 유형

Distributed Cloud는 플랫폼 관리자를 위해 두 가지 유형의 관리형 신뢰 번들을 제공합니다.

  • trust-store-root-ext: 내부 루트 CA와 웹 TLS CA를 포함합니다. 콘텐츠는 루트 또는 테넌트 조직과 같은 위치에 따라 다릅니다. 이 신뢰 번들을 사용하여 조직 경계를 넘어 통신하거나 조직 내에서 객체 스토리지와 같은 서비스에 액세스합니다.

  • trust-store-global-root-ext: 전역 API 서버 및 영역 API 서버 platform 네임스페이스에서 사용할 수 있습니다. 전역 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:?}.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 트러스트 번들을 가져와 이전 단계에서 만든 파일에 저장합니다.

    Linux

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

    Windows

    Invoke-WebRequest -Uri "https://console.${ORG_NAME}.google.gdch.test/.well-known/certificate-authority" -OutFile ".\global-trust-bundle.crt"
    

    가져온 신뢰 번들 파일에 하나 이상의 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 파일이 없다면 로그인하고 관리 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: 관리 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}
    

    가져온 신뢰 번들 파일에 하나 이상의 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-----