Buscar pacotes de confiança do GDC

Um pacote de confiança, também conhecido como lista de confiança, é um grupo de âncoras de confiança, como entidades, que são inerentemente confiáveis e cuja confiança não é transferida por outra entidade (terceiros confiáveis). Essas âncoras de confiança são fornecidas como certificados de autoridade de certificação (CA). O algoritmo de criação de caminhos de certificação usa esses certificados de CA para estabelecer uma cadeia entre um certificado que recebe validação e as âncoras de confiança.

O Google Distributed Cloud (GDC) com isolamento físico tem pacotes de confiança dedicados. Este guia descreve as etapas para buscar o pacote de confiança dos administradores organizacionais.

Tipos de pacote de confiança

O Distributed Cloud oferece dois tipos de pacotes de confiança gerenciados para administradores de plataforma:

  • trust-store-root-ext: contém a CA raiz interna e a CA web-tls. O conteúdo é diferente dependendo de onde ele reside, como a raiz ou a organização do locatário. Use esse pacote de confiança para se comunicar entre limites da organização ou acessar serviços como armazenamento de objetos dentro da organização.

  • trust-store-global-root-ext: disponível no servidor de API global e no namespace platform do servidor de API zonal. Quando o servidor de API global estiver pronto, o pacote vai preencher todos os outros dados zonais trust-store-root-ext, incluindo dados locais.

Buscar o pacote de confiança

É possível buscar pacotes de confiança do endpoint de servidor conhecido ou do cluster usando kubectl.

Buscar do servidor conhecido

O GDC oferece uma maneira segura de acessar pacotes de confiança por um endpoint de servidor conhecido. Use esse método quando precisar buscar o pacote trust-store-global-root-ext sem interagir diretamente com o cluster usando kubectl.

  1. Exporte as seguintes variáveis de ambiente:

    export STORAGE=STORAGE
    export ORG_NAME=ORG_NAME
    

    Substitua:

    • STORAGE: o caminho do diretório em que você quer armazenar o arquivo do pacote de confiança.
    • ORG_NAME: o nome da organização no GDC.
  2. Defina a variável de ambiente WELL_KNOWN_URL:

    export WELL_KNOWN_URL=https://console.${ORG_NAME:?}.zone1.google.gdch.test/.well-known/certificate-authority
    
  3. Defina a variável de ambiente GLOBAL_TRUST_BUNDLE_FILE. Esse arquivo armazena o pacote de confiança do GDC localmente no local $STORAGE especificado.

    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  4. Extraia o pacote de confiança trust-store-global-root-ext do servidor conhecido e armazene-o no arquivo criado na etapa anterior:

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

    O arquivo de pacote de confiança buscado contém um ou mais certificados de CA. A resposta será semelhante a:

    -----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-----
    

Extrair do cluster usando kubectl

É possível buscar pacotes de confiança diretamente do cluster do GDC usando a ferramenta de linha de comando kubectl. Use esse método se tiver acesso direto ao cluster e à configuração dele e precisar buscar os pacotes de confiança trust-store-root-ext ou trust-store-global-root-ext.

Antes de concluir as etapas desta seção, você precisa ter o seguinte:

  • Permissões necessárias: peça ao administrador do IAM da organização para conceder a você o papel de Leitor da loja de confiança (trust-store-viewer).
  • Arquivo kubeconfig: faça login e gere o arquivo kubeconfig para o servidor da API Management se você ainda não tiver um. Você precisa do caminho para o arquivo kubeconfig para substituir MANAGEMENT_API_SERVER_KUBECONFIG nas etapas a seguir.

Extraia o pacote de confiança do cluster usando kubectl:

  1. Exporte as seguintes variáveis de ambiente:

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

    Substitua:

    • MANAGEMENT_API_SERVER_KUBECONFIG: o caminho até o arquivo kubeconfig do servidor da API Management.
    • STORAGE: o caminho do diretório em que você quer armazenar o arquivo do pacote de confiança.
    • ZONE: o nome da sua zona do GDC.
  2. Defina a variável de ambiente TRUST_BUNDLE_FILE. Esse arquivo armazena o pacote de confiança do GDC localmente no local $STORAGE especificado para seu $ZONE do GDC:

    export TRUST_BUNDLE_FILE="$STORAGE/$ZONE/ca-bundles/trust-bundle"
    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  3. Defina a variável de ambiente NS para o namespace:

    export NS=platform
    
  4. Consiga as autoridades certificadoras (CA) e armazene-as no arquivo criado na etapa 2:

    Para obter 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}
    

    Para obter 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}
    

    O arquivo de pacote de confiança buscado contém um ou mais certificados de CA. A resposta será semelhante a:

    -----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-----