Renouvellement des certificats dans une infrastructure PKI privée - AWS Certificate Manager

Renouvellement des certificats dans une infrastructure PKI privée

Les certificats ACM signés par une autorité de certification privée a partir de Autorité de certification privée AWS peuvent faire l'objet d'un renouvellement géré. Contrairement aux certificats ACM approuvés publiquement, les certificats d'une infrastructure PKI privée ne nécessitent aucune validation. La confiance est établie lorsqu'un administrateur installe le certificat de l'autorité de certification racine appropriée dans les magasins d'approbation clients.

Note

Seuls les certificats obtenus à l'aide de la console ACM ou de l'action RequestCertificate de l'API ACM sont éligibles au renouvellement géré. Les certificats émis directement depuis Autorité de certification privée AWS à l'aide de l'action IssueCertificate de Autorité de certification privée AWS API ne sont pas gérés par ACM.

Soixante jours avant la date d'expiration d'un certificat géré, ACM tente de le renouveler automatiquement. Cela s'applique également aux certificats exportés et installés manuellement (par exemple, dans un centre de données sur site). À tout moment, les clients peuvent aussi forcer le renouvellement à l'aide de l'action RenewCertificate de l'API ACM. Pour obtenir un exemple d'implémentation Java du renouvellement forcé, consultez Renouvellement d'un certificat.

Après le renouvellement, le déploiement d'un certificat s'effectue de l'une des manières suivantes :

Automatisation de l'exportation des certificats renouvelés

La procédure suivante fournit un exemple de solution pour automatiser l'exportation de vos certificats PKI privés lorsque ACM les renouvelle. Cet exemple n’exporte qu’un certificat et sa clé privée hors d'ACM ; après l'exportation, le certificat doit encore être installé sur son périphérique cible.

Automatiser l’exportation de certificats à l'aide de la console
  1. En suivant les procédures du AWS Guide Lambda Developer, créez et configurez une fonction Lambda qui appelle l'API d'exportation ACM.

    1. Création d'une fonction Lambda.

    2. Création d'un rôle d'exécution Lambda pour votre fonction et ajoutez-y la politique d'approbation suivante. La politique accorde l'autorisation au code de votre fonction de récupérer le certificat et la clé privée renouvelés en appelant l’action ExportCertificate de l'API ACM.

      { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"acm:ExportCertificate", "Resource":"*" } ] }
    3. Ajoutez du code d'application à votre fonction, tel que l'exemple suivant en Python. Ce code examine l'événement qui déclenche la fonction pour appeler l’action ExportCertificate. Pour plus d'informations, consultez Création de fonctions Lambda avec Python.

      import json import boto3 acm = boto3.client('acm') passphrase = b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x00' def lambda_handler(event, context): context.log("Incoming Event : " + json.dumps(event) + "\n"); certificateArn = event['resources'][0]; context.log("Renewed Certificate ARN : " + certificateArn + "\n"); description = event['detail']['eventDescription'][0]['latestDescription']; if "completed the renewal" in description: response = acm.export_certificate(CertificateArn=certificateArn,Passphrase=passphrase) certificate = response['Certificate'] certificateChain = response['CertificateChain'] encrPrivateKey = response['PrivateKey'] context.log("Certificate : " + certificate + "\n"); context.log("Certificate Chain : " + certificateChain + "\n"); context.log("Encrypted Private Key : " + encrPrivateKey + "\n"); #TODO Install the private key, cert and chain to where it will be consumed return { 'statusCode': 200, }
  2. Création d'une règle dans Amazon EventBridge pour écouter les événements d'état d’ACM et appeler votre fonction Lambda lorsqu'elle en détecte un. ACM écrit dans un événement AWS Health chaque fois qu'il tente de renouveler un certificat. Pour plus d'informations sur ces avis, consultez Vérifier le statut à l'aide du tableau de bord Personal Health Dashboard (PHD).

    Configurez la règle en ajoutant le modèle d'événement suivant.

    { "source":[ "aws.health" ], "detail-type":[ "AWS Health Event" ], "detail":{ "service":[ "ACM" ], "eventTypeCategory":[ "scheduledChange" ], "eventTypeCode":[ "AWS_ACM_RENEWAL_STATE_CHANGE" ] }, "resources":[ "arn:aws:acm:region:account:certificate/certificate_ID" ] }
  3. Finalisez le processus de renouvellement en installant manuellement le certificat sur le système cible.

Test du renouvellement géré des certificats PKI privés

Pour tester manuellement la configuration de votre flux de travail de renouvellement géré ACM, vous pouvez utiliser l'API ACM ou l'interface AWS CLI. De cette façon, vous pouvez confirmer que vos certificats seront renouvelés automatiquement par ACM avant expiration.

Note

Vous ne pouvez tester que le renouvellement des certificats émis par Autorité de certification privée AWS.

Lorsque vous utilisez les actions d'API ou les commandes CLI décrites ci-dessous, ACM tente de renouveler le certificat. Si le renouvellement aboutit, ACM met à jour les métadonnées du certificat affichées dans la Console de gestion ou dans la sortie de l'API. Si le certificat est associé à un service intégré ACM, le nouveau certificat est déployé et un événement de renouvellement est généré dans Amazon CloudWatch Events. Si le renouvellement échoue, ACM renvoie une erreur et suggère une action corrective. (Vous pouvez afficher cette information à l'aide de la commande describe-certificate). Si le certificat n'est pas déployé via un service intégré, vous devez malgré tout l'exporter et l'installer manuellement sur votre ressource.

Important

Pour renouveler vos certificats avec Autorité de certification privée AWS, vous devez d'abord accorder les autorisations appropriées au principal du service ACM. Pour plus d'informations, consultez Assigning Certificate Renewal Permissions to ACM(Octroi d'autorisations de renouvellement de certificats à ACM).

Pour tester manuellement le renouvellement de certificats (AWS CLI)
  1. Utilisez la commande renew-certificate pour renouveler un certificat privé exporté.

    aws acm renew-certificate \ --certificate-arn arn:aws:acm:region:account:certificate/certificate_ID
  2. Utilisez ensuite la commande describe-certificate pour confirmer que les informations du certificat ont été mises à jour.

    aws acm describe-certificate \ --certificate-arn arn:aws:acm:region:account:certificate/certificate_ID
Pour tester manuellement le renouvellement de certificat (API ACM)
  • Envoyez une demande RenewCertificate en indiquant l'ARN du certificat privé à renouveler. Utilisez ensuite l'opération DescribeCertificate pour confirmer que les informations du certificat ont été mises à jour.