Esta página descreve os passos para criar uma autoridade de certificação (AC) de raiz no Google Distributed Cloud (GDC) air-gapped.
Uma CA raiz, que se encontra no topo da hierarquia da infraestrutura de chave pública (PKI), estabelece a âncora de confiança para a PKI. Para usar certificados numa PKI, os dispositivos, o software e os componentes têm de confiar na AC raiz. Esta configuração garante a confiança em todos os certificados emitidos pela AC de raiz, o que permite a confiança na própria PKI.
Antes de começar
Antes de poder criar uma autoridade de certificação raiz, certifique-se de que tem as autorizações necessárias e um ficheiro kubeconfig.
Autorizações necessárias
Para receber as autorizações necessárias para criar uma autoridade de certificação de raiz, peça ao administrador de IAM da sua organização para lhe conceder a função de administrador do Certificate Authority Service (certificate-authority-service-admin). Para mais informações sobre as funções, consulte o artigo
Definições de funções.
Obtenha o ficheiro kubeconfig
Para executar comandos no servidor da API Management, faça o seguinte:
Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.
Use o caminho para o ficheiro kubeconfig do servidor da API Management para substituir
MANAGEMENT_API_SERVER_KUBECONFIGnestas instruções.
Crie uma autoridade de certificação de raiz
Para criar uma AC raiz, aplique um recurso personalizado à sua instância isolada do Distributed Cloud.
Crie um recurso
CertificateAuthoritye guarde-o como um ficheiro YAML denominadoroot-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 AC de raiz. USER_PROJECT_NAMESPACE O nome do espaço de nomes onde reside o projeto do utilizador. COMMON_NAME O nome comum do certificado da AC. DURATION A duração total pedida do certificado da CA. SECRET_NAME O nome do segredo do Kubernetes que contém a chave privada e o certificado da CA assinado. As seguintes variáveis são valores opcionais:
Variável Descrição RENEW_BEFORE O tempo de rotação antes de o certificado da CA expirar. ORGANIZATION Organização a usar no certificado. ORGANIZATIONAL_UNITS Unidades organizacionais a usar no certificado. COUNTRIES Países a usar no certificado. LOCALITIES Cidades a usar no certificado. PROVINCES Estados ou províncias a usar no certificado. STREET_ADDRESSES Moradas a usar no certificado. POSTAL_CODES Códigos postais a usar no certificado. EXTENDED_KEY_USAGE A utilização alargada da chave para o certificado. Se for 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 valor predefinido é 256 paraECDSAe 2048 paraRSA. O tamanho da chave é ignorado paraEd25519.KEY_SIZE O tamanho, em bits, da chave privada deste certificado depende do algoritmo. RSApermite 2048, 3072, 4096 ou 8192 (predefinição: 2048).ECDSApermite 256, 384 ou 521 (predefinição 256).Ed25519ignora o tamanho.ACME_ENABLED Se estiver definido como true, a AC é executada no modo ACME e produz o URL do servidor ACME. Em seguida, pode usar o cliente e o protocolo ACME para gerir certificados.Aplique o recurso personalizado à sua instância do Distributed Cloud:
kubectl apply -f root-ca.yaml –kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGSubstitua
MANAGEMENT_API_SERVER_KUBECONFIGpelo caminho para o ficheiro kubeconfig do servidor da API Management.Verifique a prontidão da AC de raiz. Normalmente, a AC demora cerca de 40 minutos a ficar 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))O resultado tem um aspeto semelhante ao seguinte:
{ "lastTransitionTime": "2025-01-24T17:09:19Z", "message": "CA reconciled", "observedGeneration": 2, "reason": "Ready", "status": "True", "type": "Ready" }
Apresente ACs
Para apresentar uma lista de todos os recursos do serviço de autoridade de certificação na sua instância isolada do Distributed Cloud, 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
O resultado tem um aspeto semelhante ao seguinte:
NAMESPACE NAME READY REASON AGE
foo root-ca True Ready 7h24m
foo sub-ca True Ready 7h24m