Adicionar CAs personalizadas ao pacote de confiança do sistema

Nesta página, explicamos como adicionar certificados de autoridade certificadora (CA) personalizados ao pacote de confiança do sistema no Google Distributed Cloud (GDC) com isolamento físico. Um pacote de confiança é uma coleção de CAs confiáveis que os serviços da sua organização usam para verificar a identidade de outros serviços. Ao adicionar suas próprias CAs personalizadas, você pode controlar em quais certificados sua organização confia, permitindo conexões seguras com seus recursos internos e outros endpoints confiáveis.

Nesta página, mostramos como adicionar CAs personalizadas ao pacote de confiança do sistema trust-store-root-ext. Quando você modifica o pacote de confiança trust-store-root-ext, as mudanças são propagadas automaticamente para o pacote trust-store-global-root-ext, disponibilizando suas CAs personalizadas em todas as zonas.

Esta página é destinada a públicos-alvo do grupo de administradores da plataforma (como administradores de TI) que precisam gerenciar e proteger os recursos da organização no GDC. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Antes de começar

Para adicionar certificados de CA personalizados ao pacote de confiança do sistema, é necessário solicitar as permissões necessárias e preparar o ambiente.

Solicitar papéis do IAM

Para criar, ler, atualizar e excluir secrets, entre em contato com o admin. da organização do IAM para solicitar o papel de administrador do repositório de confiança (trust-store-admin).

Preparar o ambiente

Gerar um arquivo kubeconfig

Siga as etapas abaixo para gerar o arquivo kubeconfig do cluster de infraestrutura da organização e defini-lo como a variável KUBECONFIG para uso posterior.

  1. Confira todas as zonas disponíveis:

    gdcloud zones list
    

    Anote o nome da zona que hospeda o recurso personalizado.

  2. Defina a variável de ambiente ZONE como a zona que hospeda o cluster de infraestrutura da organização:

    export ZONE="ZONE"
    

    Substitua ZONE pelo nome da zona.

  3. Defina a variável de ambiente ORG_INFRA_CLUSTER:

    export ORG_INFRA_CLUSTER="ORG_NAME-infra"
    

    Substitua ORG_NAME pelo nome da sua organização, como org-1.

  4. Gere o arquivo kubeconfig do cluster de infraestrutura da organização para a zona de destino e valide as credenciais:

    export KUBECONFIG=${HOME}/${ORG_INFRA_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${ORG_INFRA_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${ORG_INFRA_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    O comando rm ${KUBECONFIG:?} remove o arquivo kubeconfig atual no diretório inicial. Quando você gera um novo arquivo kubeconfig, ele substitui o atual. Se você não quiser substituir ou remover o arquivo, faça backup dele em outro local seguro.

Adicionar CAs personalizadas ao pacote de confiança do sistema

Para adicionar ACs personalizadas ao pacote de confiança do sistema trust-store-root-ext, é necessário preparar o recurso de AC personalizada e aplicá-lo ao cluster de infraestrutura da organização.

  1. Defina a variável de ambiente para o arquivo PEM da CA personalizada:

    export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE
    

    Substitua CUSTOM_CA_PEM_FILE pelo caminho para o arquivo que contém os certificados de CA personalizados, codificados no formato PEM.

  2. Codifique os certificados de CA usando base64:

    export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)
    
  3. Crie o arquivo YAML de secret (custom-ca.yaml) que segmenta o pacote de confiança do sistema trust-store-root-ext:

    cat > custom-ca.yaml <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
      ca.crt: ${ENCODED_CA:?}
    EOF
    

    Veja a seguir um exemplo de arquivo custom-ca.yaml:

    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
       ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSU...LQWZRSUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    
  4. Aplique o secret ao cluster de infraestrutura da organização usando o comando kubectl:

     kubectl apply -f custom-ca.yaml --kubeconfig ${KUBECONFIG:?}
    

    Essa etapa disponibiliza suas CAs personalizadas para os serviços do GDC atualizando automaticamente os pacotes de confiança trust-store-root-ext e trust-store-global-root-ext.

Verificar se as CAs estão disponíveis

Confirme se as CAs personalizadas foram adicionadas ao pacote de confiança:

  1. Faça o download da versão mais recente do pacote de confiança trust-store-root-ext seguindo as etapas em Buscar pacotes de confiança do GDC.

    Se você quiser buscar as CAs personalizadas de uma zona diferente, use o pacote de confiança trust-store-global-root-ext.

  2. Abra o arquivo de pacote de confiança salvo e confirme se cada certificado de CA personalizado especificado por CUSTOM_CA_PEM_FILE está presente.

    Pesquise cada certificado de CA personalizado individualmente. A ordem em que eles aparecem pode variar, e não há garantia de que eles vão aparecer no final da lista.

    Confira um exemplo de trust-store-root-ext:

    -----BEGIN CERTIFICATE-----
    MIIC8DCCAdigAwIBAgIQPLOPa...
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
       < Imported CA data>
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
    MIIDAzCCAeugAwIBAgIRAIV2...
    -----END CERTIFICATE-----