J'essaie d'exporter un instantané d'Amazon RDS for MySQL vers Amazon S3, mais j’obtiens une erreur. Pourquoi cela se produit-il ?

Lecture de 5 minute(s)
0

J'essaie d'exporter un instantané vers mon compartiment Amazon Simple Storage Service (Amazon S3) à partir de mon instance MySQL Amazon Relational Database Service (Amazon RDS). Cependant, une erreur s'affiche ou l'option n'est pas disponible.

Brève description

L'exportation d'un instantané de base de données de Amazon RDS vers Amazon S3 peut échouer pour les raisons suivantes :

  • Configuration incorrecte du rôle et des stratégies AWS Identity Access Management (IAM)
  • Échec de la vérification des clés AWS KMS
  • Tâche d'exportation bloquée à l’état « STARTING » (DÉMARRAGE)
  • Erreur d'accès refusé
  • KMSKeyNotAccessibleFault
  • Problèmes d'autorisation sur la table
  • Rôle IAM inexistant

Résolution

Remarque : en cas d'erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Configuration incorrecte du rôle et des stratégies AWS Identity Access Management (IAM)

Si votre rôle IAM n'est pas autorisé à exporter un instantané depuis votre instance MySQL Amazon RDS vers Amazon S3, l'erreur suivante s'affiche :

An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:GetBucketLocation on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:DeleteObject on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:PutObject on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:ListBucket on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:GetObject on the S3 bucket my_bucket_name.

Pour réussir l'exportation d'un instantané vers Amazon S3, votre rôle IAM doit disposer des autorisations appropriées pour les cinq actions suivantes :

  • s3:PutObject
  • s3:DeleteObject
  • s3:GetObject
  • s3:ListBucket
  • s3:GetBucketLocation

Voici un exemple de stratégie IAM (au format JSON) qui autorise ces cinq actions :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExportPolicy",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject*",
        "s3:ListBucket",
        "s3:GetObject*",
        "s3:DeleteObject*",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::s3_bucket_name",
        "arn:aws:s3:::s3_bucket_name/export/*"
      ]
    }
  ]
}

Échec de la vérification des clés AWS KMS

Si votre clé AWS KMS a été désactivée ou supprimée alors que vous exportiez un instantané, l'erreur suivante s'affiche :

Error: KMS keys check failed. Please check the credentials on your KMS key and try again.

Pour résoudre ce problème, assurez-vous que la clé AWS KMS utilisée pour l'exportation d'instantanés existe dans la console AWS KMS. L'état de la clé AWS KMS doit être « Enabled » (Activé).

La tâche d'exportation est bloquée à l'état « STARTING » (DÉMARRAGE)

Le temps nécessaire pour exporter votre instantané de la base de données Amazon RDS for MySQL vers Amazon S3 dépend de la taille et du type de la base de données. La tâche d'exportation restaure et redimensionne l'intégralité de la base de données avant d'extraire les données vers Amazon S3. Au cours de cette étape, votre tâche d'exportation indique le statut « STARTING » (DÉMARRAGE). Lorsque votre tâche commence à exporter les données vers Amazon S3, le statut passe à « En cours ». Si la tâche d'exportation réussit, l'état indique que la tâche est terminée. En cas de problème avec le processus de votre tâche d'exportation, l'état indique que la tâche a échoué.

Si votre rôle IAM ne dispose pas des autorisations requises et que vous utilisez AWS Lambda avec Amazon API Gateway, l'erreur suivante s'affiche :

An error occurred (AccessDenied) when calling the StartExportTask operation: User: arn:aws:sts::1234567890:assumed-role/user/rds_lambda is not authorized to perform: rds:StartExportTask

Pour résoudre ce problème, autorisez l'accès en écriture à RDS:StartExportTask. Vous devez toutefois avoir accès à l'action StartExportTask :

"Effect": "Allow",
"Action": "rds:StartExportTask",
"Resource": "*"

Si votre rôle IAM n'est pas autorisé à appeler l'opération StartExportTask, l'erreur suivante s'affiche :

An error occurred (AccessDenied) when calling the StartExportTask operation: User: arn:aws:sts::1234567890:assumed-role/user/rds_lambda is not authorized to perform: iam:PassRole on Resource ,iam role arn.

Pour résoudre cette erreur, veillez à accorder aux utilisateurs les autorisations nécessaires pour transmettre un rôle à un service AWS :

{
    "Effect": "Allow",
    "Action": [
      "iam:GetRole",
      "iam:PassRole"
    ],
    "Resource": "arn:aws:iam::1234567890:role/role_name"
}

KMSKeyNotAccessibleFault

Si votre clé AWS KMS ou votre rôle IAM ne sont pas accessibles à partir du mécanisme d'exportation instantanée, l'erreur suivante s'affiche :

An error occurred (KMSKeyNotAccessibleFault) when calling the StartExportTask operation: The specified KMS key <key_id> does not exist, is not enabled or you do not have permissions to access it.

Pour résoudre l'erreur KMSKeyNotAccessibleFault dans Amazon RDS, consultez Configuration de l'accès à un compartiment Amazon S3.

Pour résoudre l'erreur KMSKeyNotAccessibleFault dans Amazon Aurora, consultez la section Utilisation d'une clé AWS KMS multicomptes.

Problèmes d'autorisation sur la table

Si vous ne disposez pas des autorisations appropriées pour accéder à une table dans Amazon RDS, l'erreur suivante s'affiche :

Error: PERMISSIONS_DO_NOT_EXIST error stating that (n) tables were skipped

Pour résoudre ce problème, exécutez la commande suivante après vous être connecté à une base de données PostgreSQL :

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO superuser_name;

Rôle IAM inexistant

Si la relation de confiance appropriée n'est pas spécifiée dans la politique d'approbation du rôle IAM, l'erreur suivante s'affiche :

Error: The Principal export.rds.amazonaws.com isn't allowed to assume the IAM role arn:aws:iam::1234567890:role/iam_role or the IAM role arn:aws:iam::1234567890:role/iam_role doesn't exist.

Pour résoudre ce problème, assurez-vous que la relation de confiance spécifie « export.rds.amazonaws.com » au lieu de « rds.amazonaws.com » dans votre politique IAM :

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

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an