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
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, certifique-se de que tem os seguintes recursos:
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_KUBECONFIG
nestas 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
CertificateAuthority
e 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_ENABLED
Substitua 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 serverAuth
eclientAuth
.KEY_ALGORITHYM O algoritmo de chave privada usado para este certificado. Os valores permitidos são RSA
,Ed25519
ouECDSA
. Se o tamanho não for fornecido, o valor predefinido é 256 paraECDSA
e 2048 paraRSA
. O tamanho da chave é ignorado paraEd25519
.KEY_SIZE O tamanho, em bits, da chave privada deste certificado depende do algoritmo. RSA
permite 2048, 3072, 4096 ou 8192 (predefinição: 2048).ECDSA
permite 256, 384 ou 521 (predefinição 256).Ed25519
ignora 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_KUBECONFIG
Substitua
MANAGEMENT_API_SERVER_KUBECONFIG
pelo 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