Neste documento, descrevemos as etapas para criar uma autoridade certificadora raiz (CA) no Google Distributed Cloud (GDC) com isolamento físico.
Uma CA raiz, que fica no topo da hierarquia da infraestrutura de chave pública (PKI), estabelece a âncora de confiança para a PKI. Para usar certificados em uma PKI, os dispositivos, softwares e componentes precisam confiar na CA raiz. Essa configuração garante a confiança em todos os certificados emitidos pela CA raiz, permitindo a confiança na própria ICP.
Este documento é destinado a públicos-alvo do grupo de operadores de aplicativos, como desenvolvedores de aplicativos ou cientistas de dados, que gerenciam ciclos de vida de certificados no projeto. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Antes de criar uma autoridade certificadora raiz, é preciso solicitar as permissões necessárias e preparar o ambiente.
Solicitar papéis do IAM
Para criar, atualizar e excluir uma autoridade certificadora raiz, entre em contato com o
administrador da organização do IAM para solicitar o papel de administrador do Certificate Authority Service
(certificate-authority-service-admin).
Preparar o ambiente
Faça o download e instale a CLI gdcloud, caso ainda não tenha feito isso.
Gere um arquivo kubeconfig para configurar o acesso ao
kubectl.
Criar uma autoridade certificadora raiz
Para criar uma CA raiz, aplique um recurso personalizado à sua instância do Distributed Cloud com isolamento físico.
Crie um recurso
CertificateAuthoritye salve-o como um arquivo YAML chamadoroot-ca.yaml:apiVersion: pki.security.gdc.goog/v1 kind: CertificateAuthority metadata: name: ROOT_CA_NAME namespace: USER_PROJECT_NAMESPACE spec: caProfile: commonName: COMMON_NAME duration: DURATION renewBefore: RENEW_BEFORE organizations: - ORGANIZATION organizationalUnits: - ORGANIZATIONAL_UNITS countries: - COUNTRIES localities: - LOCALTIES provinces: - PROVINCES streetAddresses: - STREET_ADDRESSES postalCodes: - POSTAL_CODES caCertificate: selfSignedCA: {} certificateProfile: keyUsage: - digitalSignature - keyCertSign - crlSign extendedKeyUsage: - EXTENDED_KEY_USAGE secretConfig: secretName: SECRET_NAME privateKeyConfig: algorithm: KEY_ALGORITHM size: KEY_SIZE acme: enabled: ACME_ENABLEDSubstitua as seguintes variáveis:
Variável Descrição ROOT_CA_NAME O nome da CA raiz. USER_PROJECT_NAMESPACE O nome do namespace em que o projeto do usuário está localizado. COMMON_NAME O nome comum do certificado de CA. DURATION O ciclo de vida solicitado do certificado de CA. Especifique como uma duração em horas (por exemplo, 1000h). Unidades como dias (d) ou anos (y) não são aceitas.SECRET_NAME O nome do secret do Kubernetes que contém a chave privada e o certificado de CA assinado. As variáveis a seguir são valores opcionais:
Variável Descrição RENEW_BEFORE O tempo de rotação antes que o certificado de CA expire. ORGANIZATION Organização que será usada no certificado. ORGANIZATIONAL_UNITS Unidades organizacionais a serem usadas no certificado. COUNTRIES Países que serão usados no certificado. LOCALITIES Cidades que serão usadas no certificado. PROVINCES Estado ou províncias a serem usados no certificado. STREET_ADDRESSES Endereços que serão usados no certificado. POSTAL_CODES Códigos postais a serem usados no certificado. EXTENDED_KEY_USAGE O uso de chave estendido para o certificado. Se fornecido, os valores permitidos são serverAutheclientAuth.KEY_ALGORITHYM O algoritmo de chave privada usado para este certificado. Os valores permitidos são RSA,Ed25519ouECDSA. Se o tamanho não for fornecido, o padrão será 256 paraECDSAe 2048 paraRSA. O tamanho da chave é ignorado paraEd25519.KEY_SIZE O tamanho, em bits, da chave privada desse certificado depende do algoritmo. RSApermite 2048, 3072, 4096 ou 8192 (padrão 2048).ECDSApermite 256, 384 ou 521 (padrão 256).Ed25519ignora o tamanho.ACME_ENABLED Se definido como true, a CA é executada no modo ACME e gera o URL do servidor ACME. Em seguida, use o cliente e o protocolo ACME para gerenciar certificados.Aplique o recurso personalizado à instância do Distributed Cloud:
kubectl apply -f root-ca.yaml –kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGSubstitua
MANAGEMENT_API_SERVER_KUBECONFIGpelo caminho para o arquivo kubeconfig do servidor de API Management.Verifique a prontidão da CA raiz. Normalmente, leva cerca de 40 minutos para que a CA fique pronta:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG -n USER_PROJECT_NAMESPACE get certificateauthority.pki.security.gdc.goog/ROOT_CA_NAME -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))A saída será assim:
{ "lastTransitionTime": "2025-01-24T17:09:19Z", "message": "CA reconciled", "observedGeneration": 2, "reason": "Ready", "status": "True", "type": "Ready" }
Listar CAs
Para listar todos os recursos do Certificate Authority Service na sua instância do Distributed Cloud com isolamento físico, faça o seguinte:
Use o parâmetro certificateauthorities para listar todos os recursos
CertificateAuthority:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG -n USER_PROJECT_NAMESPACE get certificateauthorities
A saída será assim:
NAMESPACE NAME READY REASON AGE
foo root-ca True Ready 7h24m
foo sub-ca True Ready 7h24m