Emitir um certificado usando a Google Cloud CLI

Nesta página, explicamos como gerar ou emitir certificados pelo Certificate Authority Service usando a Google Cloud CLI.

O serviço de AC permite implantar e gerenciar ACs privadas sem precisar gerenciar a infraestrutura.

Antes de começar

  • Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

    gcloud init

    Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  • Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos (roles/resourcemanager.projectCreator), que contém a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Crie um Google Cloud projeto:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o Google Cloud projeto que você está criando.

    • Selecione o Google Cloud projeto que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do Google Cloud projeto.

  • Ative a API Certificate Authority Service:

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (roles/serviceusage.serviceUsageAdmin), que contém a serviceusage.services.enable permissão. Saiba como conceder papéis.

    gcloud services enable privateca.googleapis.com

  • Verifique se o faturamento está ativado para o Google Cloud projeto.

  • Configure um local padrão para uso nos comandos gcloud neste guia de início rápido.

    gcloud config set privateca/location LOCATION
    

    Os recursos do serviço de AC, como pools de ACs e ACs, ficam em um único Google Cloud local que não pode ser alterado após a criação desses recursos.

Criar um pool de CA

Um pool de ACs (autoridades certificadoras) é uma coleção de várias ACs. Um pool de ACs oferece a capacidade de alternar as cadeias de confiança sem nenhuma interrupção ou inatividade das cargas de trabalho.

Para criar um pool de ACs no nível Enterprise, execute o seguinte comando:

gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"

Substitua:

  • POOL_ID: o nome do pool de ACs
  • LOCATION: o local do pool de ACs. Para a lista completa de locais, consulte Locais.

Os nomes de recursos podem conter letras, números, hifens (-) e sublinhados (_) e ter até 63 caracteres.

Crie uma AC raiz:

Um pool de ACs está vazio na criação. Para solicitar certificados de um pool de ACs, é necessário adicionar uma AC a ele.

Para criar uma AC raiz e adicioná-la ao pool de ACs criado, execute o seguinte comando:

gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA,O=Google"

Substitua:

  • CA_ID: o nome da CA raiz
  • POOL_ID: o nome do pool de ACs
  • LOCATION: o local do pool de ACs. Para a lista completa de locais, consulte Locais.

O serviço de AC retorna a saída a seguir quando cria a AC raiz:

Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]

Ative a AC raiz inserindo y quando solicitado pela CLI gcloud.

Opcional: criar um pool de ACs subordinadas

Para criar um pool de ACs subordinadas, execute o seguinte comando:

    gcloud privateca pools create SUBORDINATE_POOL_ID
        --location LOCATION
        --tier TIER

Substitua:

  • SUBORDINATE_POOL_ID: o ID do pool de ACs subordinadas
  • LOCATION: o local do pool de ACs subordinadas. Para a lista completa de locais, consulte Locais.
  • TIER: o nível de AC subordinada, devops ou enterprise

Opcional: criar uma AC subordinada assinada por uma AC raiz armazenada em Google Cloud

Para criar uma AC subordinada no pool de ACs subordinadas criado na etapa anterior, execute o seguinte comando:

    gcloud privateca subordinates create SUBORDINATE_CA_ID \
        --location=LOCATION \
        --pool=SUBORDINATE_POOL_ID \
        --issuer-pool=POOL_ID \
        --issuer-location=ISSUER_LOCATION \
        --from-ca=EXISTING_CA_ID \
        --kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION

Substitua:

  • SUBORDINATE_CA_ID: o ID da AC subordinada
  • LOCATION: o local da AC subordinada. Para a lista completa de locais, consulte Locais.
  • SUBORDINATE_POOL_ID: o ID do pool de ACs subordinadas criado na seção anterior
  • POOL_ID: o ID do pool de ACs principais
  • ISSUER_LOCATION: o local do certificado
  • EXISTING_CA_ID: o ID da AC de origem
  • PROJECT_ID: o ID do projeto
  • LOCATION_ID: o local do keyring
  • KEY_RING: o nome do keyring em que a chave está localizada
  • KEY: o nome da chave
  • KEY_VERSION: a versão da chave

A instrução a seguir é retornada quando a AC subordinada é criada.

Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].

Ative a CA subordinada inserindo y quando solicitado pela CLI gcloud.

Criar um certificado

Para usar a AC recém-criada para criar um certificado, faça o seguinte:

  1. Instale a biblioteca de criptografia Pyca usando o comando pip.

      pip install --user "cryptography>=2.2.0"
    

    O serviço de AC usa a biblioteca de criptografia Pyca para gerar e armazenar um novo par de chaves assimétricas na máquina local. Essa chave nunca é enviada ao serviço de AC.

  2. Para permitir que o SDK Google Cloud use a biblioteca de criptografia Pyca, é necessário ativar os pacotes de sites.

    macOS ou Linux

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    

    Windows

    set CLOUDSDK_PYTHON_SITEPACKAGES=1
    
  3. Crie um certificado.

      gcloud privateca certificates create \
          --issuer-pool POOL_ID \
          --issuer-location ISSUER_LOCATION \
          --subject "CN=Example Prod,O=Google" \
          --generate-key \
          --key-output-file=./key \
          --cert-output-file=./cert.pem
    

    Substitua:

    • POOL_ID: o ID do recurso do pool de ACs criado
    • ISSUER_LOCATION: o local da autoridade certificadora que emitiu o certificado digital

    O serviço de AC retorna a seguinte resposta:

    Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
    

Limpar

Faça uma limpeza excluindo o pool de ACs, a AC e o projeto que você criou para este guia de início rápido.

  1. Revogue o certificado.

      Para revogar um certificado, execute o seguinte comando:

       gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location 
      LOCATION
        

      Substitua:

      • CERT_NAME: o nome do certificado que você quer revogar
      • POOL_ID: o nome do pool de ACs que emitiu o certificado
      • LOCATION: o local do pool de ACs
  2. Exclua a AC.

    Só é possível excluir uma AC depois de revogar todos os certificados emitidos por ela.

    1. Desative a AC.

      gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION
      

      Substitua:

      • CA_ID: o ID do recurso da AC
      • POOL_ID: o ID do recurso do pool de ACs
      • LOCATION: o local do pool de ACs. Para a lista completa de locais, consulte Locais.
    2. Exclua a AC.

      gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
      

    O estado da AC muda para Deleted. O serviço de AC exclui permanentemente a AC 30 dias após o início da exclusão.

  3. Exclua o pool de ACs.

    Só é possível excluir um pool de ACs depois que a AC nele for excluída permanentemente.

    gcloud privateca pools delete POOL_ID --location=LOCATION
    
  4. Exclua o projeto.

    Exclua um Google Cloud projeto:

    gcloud projects delete PROJECT_ID

A seguir