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 : 02/02/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 mon test de connexion d’un point de terminaison a échoué. Comment puis-je dépanner et résoudre les échecs de connectivité d’un point de terminaison ?

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. Si vous ne disposez pas des autorisations appropriées, 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.

Reportez-vous à l’exemple de politique IAM suivant 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.

Reportez-vous à l’exemple de politique IAM suivant pour Amazon S3 en comme point de terminaison cible :

{
  "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.

Important :

Pour résoudre les erreurs d'autorisations, procédez comme suit :

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 que le nom du compartiment spécifié pour le point de terminaison Amazon S3 correspond à 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 Bucket name (Nom de compartiment) du point de terminaison Amazon S3, la connexion de test échoue.

3    Vérifiez que dms.amazonaws.com représente l'entité de confiance associée au rôle IAM. Pour plus d’informations, consultez la section Modification de la relation d'approbation pour un rôle existant et l'exemple de politique d’approbation suivant 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 qui autorise 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 dispose 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.