Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Commencez avec AWS CA privée Connector pour Kubernetes.
Les rubriques suivantes montrent comment AWS CA privée sécuriser les communications dans un cluster Kubernetes. Pour un autre exemple, reportez-vous à la section Chiffrement en transit pour Kubernetes activé
Vous pouvez utiliser une autorité de certification privée pour sécuriser les communications avec vos clusters Amazon EKS. Avant de commencer, vérifiez que vous disposez des éléments suivants :
-
Un AWS compte doté des autorisations appropriées adaptées à vos politiques de sécurité.
-
Un cluster Kubernetes. Pour créer un cluster Amazon Elastic Kubernetes Service, consultez le guide de démarrage rapide Amazon EKS. Pour plus de simplicité, créez une variable d'environnement contenant le nom du cluster :
export CLUSTER=aws-privateca-demo -
L' Région AWS emplacement de votre CA et de votre cluster Amazon EKS. Pour plus de simplicité, créez une variable d'environnement pour contenir la région :
export REGION=aws-region -
Le nom de ressource Amazon (ARN) d'une autorité de certification AWS CA privée privée. Pour plus de simplicité, créez une variable d'environnement contenant l'ARN CA privé :
export CA_ARN="arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID"Pour créer une autorité de certification privée, reportez-vous à la section https://docs.aws.amazon.com/privateca/latest/userguide/create-CA.html Création d'une autorité de certification privée dans AWS CA privée
-
Un ordinateur sur lequel sont installés les logiciels suivants :
-
AWS CLI v2 configuré
-
Pour les clusters autres qu'Amazon EKS, Helm v3
-
Installer cert-manager
Pour utiliser une autorité de certification privée, vous devez installer le cert-manager> module complémentaire qui demande les certificats, les distribue et automatise le renouvellement des certificats. Vous devez également installer le aws-private-ca-issuer plugin qui vous permet d'émettre des certificats privés à partir de AWS CA privée. Procédez comme suit pour installer le module complémentaire et le plug-in.
Configuration des autorisations IAM
Le aws-privateca-issuer plugin nécessite une autorisation pour interagir avec AWS CA privée. Pour les clusters Amazon EKS, vous utilisez l'identité du pod. Pour les autres clusters que vous utilisez AWS Identity and Access Management Roles Anywhere.
Créez d'abord une politique IAM. La stratégie utilise la stratégie AWSPrivateCAConnectorForKubernetesPolicy gérée. Pour plus d'informations sur la politique, reportez-vous AWSPrivateCAConnectorForKubernetesPolicyau guide de référence des politiques AWS gérées.
Installation et configuration de l'émetteur AWS CA privée du cluster
Pour installer le aws-privateca-connector-for-kubernetes module complémentaire, utilisez les commandes suivantes :
Attendez que l'émetteur soit prêt. Utilisez la commande suivante :
kubectl wait --for=condition=ready pods --all -n aws-privateca-issuer --timeout=120s
Vérifiez ensuite l'installation pour vous assurer que tous les pods ont atteint l'READYétat suivant :
kubectl -n aws-privateca-issuer get all
Pour configurer leaws-private-ca-cluster-issuer, créez un fichier YAML nommé cluster-issuer.yaml contenant la configuration de l'émetteur :
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
Appliquez ensuite la configuration du cluster :
kubectl apply -f cluster-issuer.yaml
Vérifiez le statut de l'émetteur :
kubectl describe awspcaclusterissuer aws-privateca-cluster-issuer
La réponse devrait être similaire à ce qui suit :
Status:
Conditions:
Last Transition Time: 2025-08-13T21:00:00Z
Message: AWS PCA Issuer is ready
Reason: Verified
Status: True
Type: Ready
Gérez le certificat AWS CA privée client avec cert-manager
Si vous n'utilisez pas de cluster Amazon EKS, après avoir démarré manuellement un certificat sécurisé, aws-privateca-issuer vous pouvez passer à un certificat d'authentification client géré parcert-manager. Cela permet cert-manager de renouveler automatiquement le certificat d'authentification du client.
-
Créez un fichier appelé
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 -
Créez le nouveau certificat d'authentification client géré :
kubectl apply -f pca-auth-cert.yaml -
Vérifiez que le certificat a été créé :
kubectl get certificate aws-privateca-client-cert -n aws-privateca-issuerLa réponse devrait être similaire à ce qui suit :
NAME READY SECRET AGE aws-privateca-client-cert True aws-privateca-credentials 19m
Émettez votre premier certificat TLS
Maintenant que les cert-manager et aws-privateca-issuer sont installés, vous pouvez émettre un certificat.
Créez un fichier YAML nommé certificate.yaml contenant la ressource de certificat :
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
Appliquez le certificat à l'aide de la commande suivante :
kubectl apply -f certificate.yaml
Vous pouvez ensuite vérifier l'état du certificat à l'aide des commandes suivantes :
kubectl get certificate example-certificate kubectl describe certificate example-certificate
Vous devriez voir une réponse similaire à celle-ci :
NAME READY SECRET AGE
example-certificate True example-certificate-tls 30s
Vous pouvez inspecter le certificat émis à l'aide de la commande suivante :
kubectl get secret example-certificate-tls -o yaml
Vous pouvez également décoder et examiner le certificat à l'aide de la commande suivante :
kubectl get secret example-certificate-tls -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout