Comment résoudre les erreurs d'autorisation avec la correction automatique pour la règle AWS Config s3-bucket-logging-enabled ?

Date de la dernière mise à jour : 20/11/2020

J' ai configuré la règle AWS Config s3-bucket-logging-enabled pour corriger automatiquement les compartiments Amazon Simple Storage Service (Amazon S3) non conformes. Toutefois, l'exécution de la correction a échoué et la console AWS Config a affiché le message d'erreur de statut d'action suivant : « Échec de l'exécution de l'action (détails) ». J'ai ouvert la page Détails, mais elle ne contient pas suffisamment d'informations pour résoudre le problème.

Brève description

La règle AWS Config s3-bucket-logging-enabled utilise le document AWS Systems Manager Automation AWS-Configures3BucketLogging pour corriger les ressources non conformes. Le service Systems Manager doit être autorisé dans la stratégie d'approbation du rôle d’automatisation à l'aide d'AWS Identity and Access Management (IAM), qui est transmise en tant que paramètre AutomationAssumerole . En outre, le rôle d’automatisation doit disposer des autorisations PutBucketLogging et le compartiment Amazon S3 cible doit être configuré pour stocker les journaux.

Résolution

Pour obtenir un message d'erreur plus détaillé, exécutez la commande describe-remediation-execution-status depuis l’interface de ligne de commande AWS (AWS CLI). Suivez ensuite ces instructions pour résoudre le message d’erreur. Pour en savoir plus, consultez la section Comment résoudre les problèmes d'échec d'exécution de correction dans AWS Config ?

Important : Avant de commencer, assurez-vous d’avoir installé et configuré AWS CLI. Si vous recevez des erreurs lors de l'exécution des commandes AWS CLI, assurez-vous que vous utilisez la version la plus récente d'AWS CLI.

« L'étape échoue lorsqu'il s'agit de l'action Exécuter/Annuler. Une erreur s'est produite (MalformedXML) au moment d'appeler l'opération PutBucketLogging : le fichier XML que vous avez fourni n'était pas correctement formé ou n'a pas été validé par rapport à notre schéma publié. Pour plus de détails sur le diagnostic, reportez-vous au guide de résolution des problèmes liés à l'automatisation des services. »

« L'étape échoue lorsqu'il s'agit de l'action Exécuter/Annuler. Une erreur s'est produite (AccessDenied) lors de l'appel de l'opération PutBucketLogging : Accès refusé. Pour plus de détails sur le diagnostic, reportez-vous au guide de résolution des problèmes liés à l'automatisation des services. »

Cette erreur se produit car le rôle AutomationAssumeRole n'a pas les autorisations pour appeler l'API PutBucketLogging sur les compartiments S3 non conformes. Vous pouvez utiliser l'exemple de stratégie suivant pour autoriser le rôle à appeler l'API PutBucketLogging :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:PutBucketLogging",
            "Resource": [
                "arn:aws:s3:::<BUCKET_NAME_1>",
                "arn:aws:s3:::<BUCKET_NAME_2>",
                "arn:aws:s3:::<BUCKET_NAME_3>"
            ]
        }
    ]
}

Remarque : Si vous avez besoin que la correction se produise sur tous les compartiments d'une région AWS, limitez l'autorisation du rôle à une région spécifique à l'aide de la clé de condition aws:RequestedRegion.

« Paramètres d'exécution non valides envoyés à Systems Automation. Le rôle défini ne peut pas être assumé. »

Cette erreur se produit, car le rôle IAM AutomationAssumeRole ne peut pas être assumé par le service Systems Manager Automation. Utilisez l'exemple de stratégie suivant pour autoriser Systems Manager à assumer le rôle IAM :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ssm.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}