Comment puis-je dépanner les échecs de test de connexion d'un point de terminaison Amazon S3 lors de l'utilisation d'AWS DMS ?

Dernière mise à jour : 14/12/2022

J'utilise Amazon Simple Storage Service (Amazon S3) comme point de terminaison source ou cible pour ma tâche AWS Database Migration Service (AWS DMS). J'ai reçu un message d'erreur, car le test de connexion d'un point de terminaison a échoué.

Brève description

Vous devez disposer des autorisations appropriées configurées pour le rôle AWS Identity and Access Management (IAM) qui utilise le point de terminaison Amazon S3. Dans le cas contraire, l'une des entrées suivantes s'affiche :

Message :

  • Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to connect to S3 endpoint. Access denied.
  • Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to list bucket wan-dms Failed to connect to database., Application-Detailed-Message: failed to list bucket wan-dms AWS failed to list bucket List bucket failed with exception 'AccessDenied', message 'Access Denied', error type '15' AWS failed to list bucket Not retriable error: Access Denied
  • Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to connect to database.
  • « Error Details: [message=putDatabase call failed, errType=ERROR_RESPONSE, status=1020414, errMessage= Failed to connect to database., errDetails=] » (Informations sur l'erreur: [message=putDatabase call failed, errType=ERROR_RESPONSE, status=1020414, errMessage= Failed to connect to database., errDetails=])

Résolution

Remarque : lorsque vous utilisez Amazon S3 comme source ou cible pour AWS DMS, veillez d'abord à consulter les articles suivants :

Pour résoudre ces erreurs, accordez les autorisations IAM minimales requises pour accéder au point de terminaison Amazon S3. Les points de terminaison source et cible Amazon S3 disposent d'autorisations minimales différentes pour AWS DMS.

Consultez cet exemple de politique IAM pour un point de terminaison source Amazon S3 :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::awsexamplebucket",
        "arn:aws:s3:::awsexamplebucket/*"
      ]
    }
  ]
}

Remarque : remplacez awsexamplebucket par le nom de votre propre compartiment.

Consultez cet exemple de politique IAM pour un point de terminaison cible Amazon S3 :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::awsexamplebucket/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::awsexamplebucket"
      ]
    }
  ]
}

Remarque : remplacez awsexamplebucket par le nom de votre propre compartiment.

Résolution des erreurs d'autorisations

1.    Vérifiez que le rôle IAM dispose des autorisations minimales requises pour accéder au point de terminaison Amazon S3.

2.    Vérifiez s'il existe une correspondance entre le nom du compartiment spécifié pour le point de terminaison Amazon S3 et la ressource autorisée dans le rôle IAM. Par exemple, le rôle IAM autorise l'accès à un seul compartiment, comme awsexamplebucket dans l'exemple de politique précédent. Cependant, si awsexamplebucket2 est spécifié dans le Nom de compartiment du point de terminaison Amazon S3, la connexion de test échoue.

3.    Vérifiez que dms.amazonaws.com constitue l'entité de confiance associée au rôle IAM. Pour plus d'informations, consultez la rubrique Modification de la relation d'approbation pour un rôle existant et cet exemple de politique d'approbation pour AWS DMS :

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

4.    Si vous utilisez AWS Organizations, vérifiez que le rôle IAM utilisé fait partie d'une organisation autorisant l'accès à Amazon S3. Si votre organisation n'autorise pas l'accès, AWS DMS ne peut pas se connecter au point de terminaison Amazon S3 à l'aide de ce rôle IAM, même si le rôle possède toutes les autorisations requises. Si votre organisation n'autorise pas l'accès, contactez l'administrateur de votre compte pour autoriser Amazon S3 à accéder à votre organisation.

5.    Si la version de votre instance de réplication est 3.4.7 ou ultérieure, effectuez l'une des actions suivantes :

        Rendez les sous-réseaux de votre instance de réplication publiquement routables. Ajoutez une passerelle Internet Gateway (IGW) au VPC utilisé par votre instance de réplication AWS DMS.

        -ou-

        La création des points de terminaison VPC facilite l'accès de votre instance de réplication à tous les points de terminaison sources et cibles utilisés par AWS DMS. Pour plus d'informations, consultez Préparation d'une migration vers les versions 3.4.7 et supérieures d'AWS DMS.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?