Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Inizia a usare AWS Private CA Connector for Kubernetes.
I seguenti argomenti mostrano come utilizzare per proteggere le comunicazioni in AWS Private CA un cluster Kubernetes. Per un altro esempio, fai riferimento a Encryption in transit for
Puoi utilizzare un'autorità di certificazione privata per proteggere le comunicazioni con i tuoi cluster Amazon EKS. Prima di iniziare, assicurati di disporre di quanto riportato di seguito:
-
Un AWS account con le autorizzazioni appropriate nell'ambito delle tue politiche di sicurezza.
-
Un cluster Kubernetes. Per creare un cluster Amazon Elastic Kubernetes Service, consulta la guida rapida di Amazon EKS. Per semplicità, crea una variabile di ambiente che contenga il nome del cluster:
export CLUSTER=
aws-privateca-demo
-
La posizione Regione AWS in cui si trovano il cluster CA e Amazon EKS. Per semplicità, crea una variabile di ambiente per contenere la regione:
export REGION=
aws-region
-
L'Amazon Resource Name (ARN) di un'autorità di certificazione AWS Private CA privata. Per semplicità, crea una variabile di ambiente per contenere l'ARN CA privato:
export CA_ARN="arn:aws:acm-pca:
region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
"Per creare una CA privata, consulta https://docs.aws.amazon.com/privateca/latest/userguide/create-CA.html Creare una CA privata in AWS Private CA
-
Un computer con il seguente software installato:
Installa cert-manager
Per utilizzare una CA privata, è necessario installare il cert-manager>
componente aggiuntivo che richiede i certificati, li distribuisce e automatizza il rinnovo dei certificati. È inoltre necessario installare il aws-private-ca-issuer
plug-in che consente di emettere certificati privati da. AWS Private CA Utilizza i seguenti passaggi per installare il componente aggiuntivo e il plug-in.
Configurazione delle autorizzazioni IAM
Il aws-privateca-issuer
plugin richiede l'autorizzazione con AWS Private CA cui interagire. Per i cluster Amazon EKS si utilizza l'identità del pod. Per gli altri cluster che usi. AWS Identity and Access Management Roles Anywhere
Innanzitutto, crea una policy IAM. La policy utilizza la policy AWSPrivateCAConnectorForKubernetesPolicy
gestita. Per ulteriori informazioni sulla policy, consulta la guida AWSPrivateCAConnectorForKubernetesPolicydi riferimento alla policy AWS gestita.
Installa e configura l'emittente del AWS Private CA cluster
Per installare il aws-privateca-connector-for-kubernetes
componente aggiuntivo, utilizza i seguenti comandi:
Attendi che l'emittente sia pronto. Utilizza il seguente comando:
kubectl wait --for=condition=ready pods --all -n aws-privateca-issuer --timeout=120s
Quindi verifica l'installazione per assicurarti che tutti i pod abbiano raggiunto lo READY
stato:
kubectl -n aws-privateca-issuer get all
Per configurareaws-private-ca-cluster-issuer
, create un file YAML denominato cluster-issuer.yaml
contenente la configurazione dell'emittente:
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
Quindi, applica la configurazione del cluster:
kubectl apply -f cluster-issuer.yaml
Verifica lo stato dell'emittente:
kubectl describe awspcaclusterissuer aws-privateca-cluster-issuer
Noterai una risposta simile alla seguente:
Status:
Conditions:
Last Transition Time: 2025-08-13T21:00:00Z
Message: AWS PCA Issuer is ready
Reason: Verified
Status: True
Type: Ready
Gestisci il certificato del AWS Private CA client con cert-manager
Se non utilizzi un cluster Amazon EKS, dopo aver avviato manualmente un certificato affidabile aws-privateca-issuer
puoi passare a un certificato di autenticazione client gestito dacert-manager
. Ciò consente di cert-manager
rinnovare automaticamente il certificato di autenticazione del client.
-
Crea un file chiamato
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
-
Crea il nuovo certificato di autenticazione del client gestito:
kubectl apply -f pca-auth-cert.yaml
-
Verifica che il certificato sia stato creato:
kubectl get certificate aws-privateca-client-cert -n aws-privateca-issuer
Noterai una risposta simile alla seguente:
NAME READY SECRET AGE aws-privateca-client-cert True aws-privateca-credentials 19m
Emetti il tuo primo certificato TLS
Ora che i cert-manager
e aws-privateca-issuer
sono installati, puoi emettere un certificato.
Crea un file YAML denominato certificate.yaml
contenente la risorsa del certificato:
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
Applica il certificato utilizzando il seguente comando:
kubectl apply -f certificate.yaml
È quindi possibile controllare lo stato del certificato con i seguenti comandi:
kubectl get certificate example-certificate kubectl describe certificate example-certificate
Dovresti vedere una risposta simile a questa:
NAME READY SECRET AGE
example-certificate True example-certificate-tls 30s
È possibile controllare il certificato emesso con il seguente comando:
kubectl get secret example-certificate-tls -o yaml
Puoi anche decodificare ed esaminare il certificato con il seguente comando:
kubectl get secret example-certificate-tls -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout