Comment résoudre les problèmes liés à une politique de cycle de vie en ÉCHEC ou une politique qui s'est terminée, mais des images sont toujours disponibles dans ma politique de cycle de vie EC2 Image Builder ?

Lecture de 9 minute(s)
0

Je souhaite résoudre les problèmes liés à une politique de cycle de vie en ÉCHEC ou une politique qui s'est terminée, mais des images sont toujours disponibles dans ma politique de cycle de vie EC2 Image Builder.

Brève description

Les problèmes courants que vous pouvez rencontrer avec votre stratégie de cycle de vie Image Builder sont les suivants :

  • L’état de la stratégie de cycle de vie est ÉCHEC.
  • La stratégie de cycle de vie est terminée, mais l'AMI, les instantanés ou les images de conteneur sont toujours disponibles.

Résolution

Remarque : Si des erreurs se produisent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

L’état de la stratégie de cycle de vie est ÉCHEC

Si l’état de la stratégie de cycle de vie est ÉCHEC, exécutez la commande suivante et vérifiez la description de la raison :
Remarque : Remplacez example-lifecycle-execution-id par l'ID d'exécution de la stratégie de cycle de vie et example-region par la région AWS.

aws imagebuilder get-lifecycle-execution --example-lifecycle-execution-id --region example-region

Exemple de sortie :

{
        "state": {
            "status": "FAILED",
            "reason": "Lifecycle execution failed. Reason: One or more resources failed."
        }

Pour résoudre les problèmes liés à la description du motif, vérifiez les points suivants :

Vérifiez le rôle IAM
Pour autoriser Image Builder à exécuter des stratégies de cycle de vie, utilisez le rôle EC2ImageBuilderLifecycleExecutionRole par défaut ou créez un rôle AWS Identity and Access Management (IAM) personnalisé. Assurez-vous que votre rôle IAM personnalisé est associé à la politique d’approbation adéquate et qu’il inclut la politique gérée EC2ImageBuilderLifecycleExecutionPolicy.

Vérifier les balises dans les référentiels Amazon ECR
Pour les images de conteneurs Amazon Elastic Container Registry (Amazon ECR), vérifiez si la description du motif est similaire à la suivante :

« ImageBuilder n'est pas autorisé à exécuter : ecr:BatchGetImage sur la ressource »

Pour résoudre le message d'erreur précédent, ajoutez la balise ** LifecycleExecutionAccess : EC2 Image Builder** à vos référentiels Amazon ECR. Pour plus d'informations, consultez la section Prérequis en matière de gestion du cycle de vie pour les images EC2 Image Builder.

La stratégie de cycle de vie est terminée, mais l'AMI, les instantanés ou les images de conteneur sont toujours disponibles

Pour résoudre les problèmes liés à une stratégie de cycle de vie qui est terminée mais que l'AMI, les instantanés ou les images de conteneur sont toujours disponibles, vérifiez les points suivants :

Vérifier la portée de la stratégie de cycle de vie
Pour vérifier la portée de la stratégie de cycle de vie, exécutez la commande suivante :
Remarque : Remplacez example-lifecycle-execution-id par l'ID d'exécution de la stratégie de cycle de vie et example-region par la région.

aws imagebuilder get-lifecycle-execution --example-lifecycle-execution-id --region example-region

Exemple de sortie :

{
    "lifecycleExecution": {
        "lifecycleExecutionId": "lce-#",
        "resourcesImpactedSummary": {
            "hasImpactedResources": false
        }

Si votre stratégie de cycle de vie est terminée et qu’une valeur faux s’affiche pour ** HasImpactedResources**, cela signifie que l'instance d'exécution n'a identifié aucune ressource d'image. Pour résoudre ce problème, consultez l'onglet Portée de votre stratégie de cycle de vie. Assurez-vous que les recettes et les balises sélectionnées correspondent à toutes les images. Les recettes et les balises doivent correspondre à une image avec des ressources nouvelles ou actives et disponibles que la stratégie de cycle de vie n'a pas encore appliquées.

Vérifier les conditions de la règle de stratégie du cycle de vie
Vérifiez les conditions de la règle de stratégie du cycle de vie pour identifier l'AMI, les instantanés et les images de conteneur qui sont marqués pour suppression ou conservation. Pour consulter les détails de la stratégie, utilisez l'AWS CLI ou la console de gestion AWS.

Pour utiliser l'AWS CLI afin de consulter les détails de votre stratégie de cycle de vie, utilisez la commande suivante. Vérifiez si le paramètre includeResources est vrai ou faux. Si IncludeResources indique « faux », les ressources de la stratégie sont conservées une fois la stratégie de cycle de vie terminée. 
Remarque : Remplacez example-policy-arn par l'ARN de la stratégie de cycle de vie et example-region par la région.

aws imagebuilder get-lifecycle-policy --lifecycle-policy-arn example-policy-arn --region example-region

Exemple de sortie :

"policyDetails": [
            {
                "action": {
                    "type": "DELETE",
                    "includeResources": {
                        "amis": false,
                        "snapshots": false
                    }

Pour utiliser la console de gestion AWS afin de consulter les détails de votre stratégie de cycle de vie, procédez comme suit :

  1. Ouvrez la console EC2 Image Builder.
  2. Sélectionnez votre stratégie, puis accédez à Règles > Conditions de règle.
  3. Vérifiez si les options Annuler l’enregistrement des AMI associées et supprimer leurs instantanés ou Supprimer les images de conteneurs ECR associées sont sélectionnées. Si ces options ne sont pas sélectionnées, les ressources de la stratégie sont conservées une fois la stratégie de cycle de vie terminée.

Vérifiez que les images appartenant à EC2 Image Builder sont conservées en fonction de la configuration des règles de cycle de vie
Dans la stratégie de cycle de vie Supprimer les règles, vous pouvez sélectionner Par âge ou Par décompte. Si vous sélectionnez Par âge, vous pouvez sélectionner l'option Retenir au moins une image par recette. Cette option ne conserve que la dernière image disponible pour chaque recette concernée par cette règle. Si vous sélectionnez Par décompte, vous pouvez sélectionner Retenir un nombre spécifique d'images par recette.

Si vous avez sélectionné Par âge, utilisez la commande suivante :
Remarque : Remplacez example-policy-arn par l'ARN de la stratégie de cycle de vie et example-region par la région.

aws imagebuilder get-lifecycle-policy --lifecycle-policy-arn example-policy-arn --region example-region
"filter": {
    "type": "AGE",
    "value": 3,
    "unit": "YEARS",
    "retainAtLeast": 1
}

Si vous avez sélectionné Par décompte, utilisez la commande suivante :
Remarque : Remplacez example-policy-arn par l'ARN de la stratégie de cycle de vie et example-region par la région.

aws imagebuilder get-lifecycle-policy --lifecycle-policy-arn example-policy-arn --region example-region
"filter": {
    "type": "COUNT",
    "value": 4
}

Pour les options Par âge et Par décompte, vous pouvez également conserver des images en fonction de règles d'exclusion ou des images comportant une balise spécifique. Pour les images qui comportent une balise spécifique, sélectionnez l'option Retenir les images, les AMI et les instantanés avec les balises associées lorsque vous utilisez la console de gestion AWS.

Pour vérifier les règles d'exclusion, utilisez la commande suivante :
Remarque : Remplacez example-policy-arn par l'ARN de la stratégie de cycle de vie, example-tag par la balise requise et example-region par la région.

aws imagebuilder get-lifecycle-policy --lifecycle-policy-arn example-policy-arn --region example-region
"exclusionRules": {
    "tagMap": {
        "RetainImageTag": "example-tag"
    }
}

Assurez-vous que les images, les AMI, les instantanés ou les images de conteneur qui n'ont pas été supprimées ne correspondent pas aux paramètres de Images conservées définis dans la configuration des règles de cycle de vie. Par exemple, le pipeline Image Builder ne possède qu'une seule ressource d'image de sortie et la stratégie de cycle de vie est configurée pour Retenir au moins une image par recette.

Vérifier que les images de votre Image Builder sont correctement balisées
Vérifiez si votre stratégie de cycle de vie utilise la portée de la règle des balises et si les images, l'AMI, les instantanés et les images de conteneur sont toujours disponibles sur le compte. Si ces images sont disponibles sur le compte une fois la stratégie terminée, vérifiez qu'elles sont correctement balisées. Les balises provenant d'AMI, de recettes et de pipelines ne sont pas prises en charge en tant que portée de la règle de balises. En outre, la stratégie de cycle de vie s'exécute uniquement en fonction des balises des ressources d'images d'Image Builder.

Remarque : Actuellement, vous ne pouvez pas utiliser la console de gestion AWS ou une configuration de pipeline pour baliser les ressources d'image d'Image Builder.

Pour baliser des ressources d'image, utilisez l'API CreateImage pour créer des images ou utilisez l'API TagResource pour baliser des ressources d'image qui existent déjà.

Pour utiliser l'API TagResource afin de baliser une ressource d'image existante, utilisez la commande suivante :
Remarque : Remplacez example-image-resource-arn par l'ARN de la ressource d'image et example-region par la région.

aws imagebuilder tag-resource --resource-arn example-image-resource-arn --tags KeyName1=Value1,KeyName2=Value2 --region example-region

Vérifier que vos AMI et instantanés distribués entre les comptes ne sont pas supprimés
Image Builder requiert des autorisations pour effectuer des actions de cycle de vie dans les comptes de destination pour les ressources associées. Pour accorder des autorisations, créez le rôle IAM qu'il utilise pour effectuer des actions de cycle de vie dans les comptes de destination. Vous devez créer ce rôle IAM dans le compte de destination.

Pour les AMI qui ne parviennent pas à être supprimées, assurez-vous que le rôle Ec2ImageBuilderCrossAccountLifecycleAccess existe pour la gestion du cycle de vie entre les comptes d'Image Builder sur les comptes cibles. Assurez-vous que ce rôle utilise la politique d’approbation adéquate et est associé à la stratégie gérée par le cycle de vie Image Builder ** EC2ImageBuilderLifecycleExecutionPolicy**. Vous pouvez également utiliser une stratégie personnalisée avec les autorisations requises pour l'exécution de la stratégie de cycle de vie. Pour plus d'informations, consultez la section Créer un rôle IAM pour la gestion du cycle de vie entre les comptes d'Image Builder.

Pour les instantanés dont la suppression a échoué alors que l'image a déjà été supprimée, supprimez-les manuellement.

Remarque : Les stratégies de cycle de vie présentent une limite de 100 exécutions simultanées et de 50 recettes et balises par ressource.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 mois