As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Comece a usar o CA Privada da AWS Connector for Kubernetes.
Os tópicos a seguir mostram como usar CA Privada da AWS para proteger as comunicações em um cluster Kubernetes. Para outro exemplo, consulte Criptografia em trânsito para Kubernetes ativado
Você pode usar uma autoridade de certificação privada para proteger as comunicações com seus clusters do Amazon EKS. Antes de começar, verifique se você tem:
-
Uma AWS conta com permissões apropriadas de acordo com suas políticas de segurança.
-
Um cluster Kubernetes. Para criar um cluster do Amazon Elastic Kubernetes Service, consulte o guia de início rápido do Amazon EKS. Para simplificar, crie uma variável de ambiente para conter o nome do cluster:
export CLUSTER=aws-privateca-demo -
O Região da AWS local em que seu cluster CA e Amazon EKS estão localizados. Para simplificar, crie uma variável de ambiente para manter a Região:
export REGION=aws-region -
O Amazon Resource Name (ARN) de uma autoridade de certificação CA Privada da AWS privada. Para simplificar, crie uma variável de ambiente para manter o CA ARN privado:
export CA_ARN="arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID"Para criar uma CA privada, consulte https://docs.aws.amazon.com/privateca/latest/userguide/create-CA.html Criar uma CA privada no CA Privada da AWS
-
Um computador com o seguinte software instalado:
-
Para clusters que não são do Amazon EKS, Helm v3
Instalar cert-manager
Para usar uma CA privada, você deve instalar o cert-manager> complemento que solicita certificados, os distribui e automatiza a renovação do certificado. Você também deve instalar o aws-private-ca-issuer plug-in que permite emitir certificados privados do CA Privada da AWS. Use as etapas a seguir para instalar o complemento e o plug-in.
Configurar permissões do IAM
O aws-privateca-issuer plug-in requer permissão para interagir com CA Privada da AWS. Para clusters do Amazon EKS, você usa a identidade do pod. Para outros clusters que você usa AWS Identity and Access Management Roles Anywhere.
Primeiro, crie uma política do IAM. A política usa a política AWSPrivateCAConnectorForKubernetesPolicy gerenciada. Para obter mais informações sobre a política, consulte o guia AWSPrivateCAConnectorForKubernetesPolicyde referência da política AWS gerenciada.
Instalar e configurar o emissor CA Privada da AWS do cluster
Para instalar o aws-privateca-connector-for-kubernetes complemento, use os seguintes comandos:
Aguarde até que o emissor esteja pronto. Use o seguinte comando:
kubectl wait --for=condition=ready pods --all -n aws-privateca-issuer --timeout=120s
Em seguida, verifique a instalação para garantir que todos os pods tenham atingido o READY estado:
kubectl -n aws-privateca-issuer get all
Para configurar oaws-private-ca-cluster-issuer, crie um arquivo YAML chamado cluster-issuer.yaml contendo a configuração do emissor:
cat > cluster-issuer.yaml <<EOF apiVersion: awspca.cert-manager.io/v1beta1 kind: AWSPCAClusterIssuer metadata: name: aws-privateca-cluster-issuer spec: arn: "$CA_ARN" region: "$REGION" EOF
Em seguida, aplique a configuração do cluster:
kubectl apply -f cluster-issuer.yaml
Verifique o status do emissor:
kubectl describe awspcaclusterissuer aws-privateca-cluster-issuer
Você verá uma resposta semelhante à seguinte:
Status:
Conditions:
Last Transition Time: 2025-08-13T21:00:00Z
Message: AWS PCA Issuer is ready
Reason: Verified
Status: True
Type: Ready
Gerencie o certificado CA Privada da AWS do cliente com o cert-manager
Se você não estiver usando um cluster Amazon EKS, depois de inicializar manualmente um certificado confiável, aws-privateca-issuer você poderá fazer a transição para um certificado de autenticação de cliente gerenciado porcert-manager. Isso permite cert-manager renovar automaticamente o certificado de autenticação do cliente.
-
Crie um arquivo chamado
pca-auth-cert.yaml:cat > pca-auth-cert.yaml <<EOF apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: aws-privateca-client-cert namespace: aws-privateca-issuer spec: secretName: aws-privateca-credentials duration: 168h renewBefore: 48h commonName: aws-privateca-issuer privateKey: algorithm: ECDSA size: 256 rotationPolicy: Always usages: - client auth issuerRef: name: aws-privateca-cluster-issuer kind: AWSPCAClusterIssuer group: awspca.cert-manager.io EOF -
Crie o novo certificado de autenticação de cliente gerenciado:
kubectl apply -f pca-auth-cert.yaml -
Valide se o certificado foi criado:
kubectl get certificate aws-privateca-client-cert -n aws-privateca-issuerVocê verá uma resposta semelhante à seguinte:
NAME READY SECRET AGE aws-privateca-client-cert True aws-privateca-credentials 19m
Emita seu primeiro certificado TLS
Agora que o cert-manager e aws-privateca-issuer está instalado, você pode emitir um certificado.
Crie um arquivo YAML chamado certificate.yaml contendo o recurso de certificado:
cat > certificate.yaml <<EOF apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: example-certificate namespace: default spec: secretName: example-certificate-tls issuerRef: name: aws-privateca-cluster-issuer kind: AWSPCAClusterIssuer group: awspca.cert-manager.io commonName: example.internal dnsNames: - example.internal - api.example.internal duration: 2160h # 90 days renewBefore: 360h # 15 days usages: - digital signature - key encipherment - server auth EOF
Aplique o certificado usando o seguinte comando:
kubectl apply -f certificate.yaml
Em seguida, você pode verificar o status do certificado com os seguintes comandos:
kubectl get certificate example-certificate kubectl describe certificate example-certificate
Você deve ver uma resposta semelhante a esta:
NAME READY SECRET AGE
example-certificate True example-certificate-tls 30s
Você pode inspecionar o certificado emitido com o seguinte comando:
kubectl get secret example-certificate-tls -o yaml
Você também pode decodificar e examinar o certificado com o seguinte comando:
kubectl get secret example-certificate-tls -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout