Passer au contenu

Comment puis-je résoudre l'erreur d’instantané manuel dans mon cluster OpenSearch Service ?

Lecture de 6 minute(s)
0

Lorsque je restaure un instantané manuel pour mon cluster Amazon OpenSearch Service et que je tente de m'enregistrer ou d'accéder à un référentiel, un message d'erreur s'affiche.

Résolution

Si vous n'effectuez pas le processus de migration approprié pour votre version d'OpenSearch Service, un message d'erreur s'affiche. Pour résoudre le problème, terminez la résolution de l'erreur que vous recevez.

Erreur 403 Unauthorized

Si vous avez activé le contrôle d'accès affiné (FGAC) sur votre domaine OpenSearch Service, un message d’erreur similaire au suivant peut s'afficher lorsque vous prenez un instantané :

"type: security_exception,
reason: no permissions for [cluster:admin/repository/put] and User [name=arn:aws:iam::012345678912:user/username, backend_roles=[], requestedTenant=null]
status: 403"

L'erreur précédente se produit lorsque vous ne fournissez pas les informations d'identification correctes.

Pour résoudre ce problème, exécutez la commande curl suivante pour spécifier un paramètre username:password lorsque vous prenez un instantané manuel :

curl -XPUT -u 'username:password' 'opensearch-domain-endpoint/_snapshot/snapshot-repository-name/snapshot-name'

Remarque : Pour activer le FGAC pour votre domaine OpenSearch Service, vous devez être un super-utilisateur. Vous pouvez soit utiliser votre nom et votre mot de passe de super-utilisateur, soit définir un rôle Gestion des identités et des accès AWS (AWS IAM) en tant que super-utilisateur. Lorsque vous accédez à votre instantané de cluster, spécifiez vos informations d'identification de super-utilisateur ou votre rôle IAM. Si vous spécifiez un rôle IAM, celui-ci doit utiliser AWS Signature version 4 pour signer les requêtes HTTP. Pour plus d'informations sur les rôles FGAC et IAM, consultez la section Création et gestion de domaines OpenSearch Service.

Vous devez également mapper le rôle manage_snapshots à un rôle IAM et enregistrer un référentiel d’instantanés. Le rôle manage_snapshots doit disposer des autorisations IAM:PassRole pour assumer le rôle IAM. Pour plus d'informations, consultez la section Prérequis.

illegal_state_exception

Si vous utilisez un compartiment Amazon Simple Storage Service (Amazon S3) afin de prendre des instantanés manuels pour plusieurs domaines, un message d'erreur similaire au suivant s'affiche :

"type: illegal_state_exception
reason: Can't get text on a FIELD_NAME at 1:1838
status: 500"

Pour résoudre l’erreur précédente, créez un nouveau compartiment Amazon S3 et prenez un instantané manuel, ou effacez toutes les données du compartiment existant.

Repository_missing_exception

Avant de créer un instantané d'index manuel, vous devez enregistrer un référentiel d'instantanés manuels auprès d'OpenSearch Service. Vous devez également satisfaire aux prérequis relatifs aux instantanés manuels.

Si vous n'avez pas enregistré votre référentiel d’instantanés, si le nom du référentiel est incorrect ou si vous ne remplissez pas les prérequis, le message d'erreur suivant s'affiche :

"type: repository_missing_exception
reason: [snapshot-repository-name] missing
status: 404"

Concurrent_snapshot_execution_exception

Si vous tentez de prendre un instantané lorsqu’un autre instantané est en cours, le message d'erreur suivant s'affiche :

type: concurrent_snapshot_execution_exception
reason: [snapshot-repository-name:snapshot-name] a snapshot is already running »

Pour vérifier si un autre instantané est en cours, exécutez la commande curl suivante :

curl -XGET 'opensearch-domain-endpoint/_snapshot/_status'

Si un instantané est en cours, attendez que l'instantané actuel soit terminé. Si votre instantané est bloqué, consultez votre historique d’instantanés horaires. Pour plus d'informations, consultez la section Pourquoi m’est-il impossible de supprimer un index ou de mettre à niveau mon cluster OpenSearch Service ?

Snapshot_restore_exception

Si vous migrez des données d'un cluster sur site vers un domaine OpenSearch Service, le message d'erreur suivant peut s'afficher :

type: snapshot_restore_exception
reason: [manual-snapshot-repo:my-manual-snapshot1/HPOcIJryTj6a6GJvyP79bw] the snapshot was created with Elasticsearch version [6.8.0] which is higher than the version of this node [6.7.0]
status: 500 »

Lorsque vous prenez un instantané d'un cluster existant qui s'exécute sur une version d'Amazon Elasticsearch différente de celle d'OpenSearch Service, l'erreur précédente se produit. Pour résoudre ce problème, mettez à jour votre version d'Elasticsearch. Vous pouvez également utiliser l'opération d'API réindexation à distance pour migrer vos index.

Si vous avez activé le FGAC du domaine et que vous essayez de restaurer les index à partir de l’instantané, le message d'erreur suivant peut s'afficher :

"type: security_exception
reason: no permissions for [] and User [name=username, backend_roles=[], requestedTenant=]
status: 403"

Pour résoudre l'erreur précédente, exécutez la commande curl suivante pour exclure les index de sécurité :

curl -XPOST -u 'username:password' "https://opensearch-domain-endpoint/_snapshot/snapshot-repository/snapshot-id/_restore" -H 'Content-Type: application/json' -d'
{  
"indices": "-.opensearch*,-.opendistro*,-.kibana*"
}'

Remarque : Dans la commande précédente, remplacez les exemples de valeurs par les vôtres.

a_w_s_security_token_service_exception

Si le rôle IAM que vous avez associé à votre instantané manuel n’établit pas de relation d’approbation pour es.amazonaws.com, le message d’erreur suivant s’affiche :

"type: repository_exception
reason: [es_01082021_repo] Could not determine repository generation from root blobs
type: i_o_exception
reason: Exception when listing blobs by prefix [index-]
type: a_w_s_security_token_service_exception
reason: a_w_s_security_token_service_exception: User: arn:aws:sts::332315457451:assumed-role/cp-sts-grant-role/swift-us-west-2-prod-679203657591 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::679203657591:role/ES_Backup_Role (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: 36d09b93-d94f-457e-8fa5-b0a50ba436c3)
status: 500"

Pour résoudre ce problème, assurez-vous de spécifier le rôle IAM associé à l’instantané manuel lorsque vous enregistrez le référentiel d’instantanés. Si vous n'avez pas de rôle IAM, créez-en un.

Vérifiez également que la relation d’approbation pour le rôle IAM spécifie OpenSearch Service dans l'instruction Principal.

Exemple de relation d’approbation :

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

État de l'instantané PARTIEL

Un instantané passe à l'état PARTIEL pour les raisons suivantes :

Si l'instantané est à l'état PARTIEL, OpenSearch Service n'a pas stocké les données d'une partition. Vous pouvez toujours restaurer des données à partir d'un instantané partiel, mais vous devez utiliser des instantanés antérieurs pour restaurer les index manquants. Pour vérifier si votre cluster est à l’état PARTIEL, consultez votre historique d’instantanés.

Problème lié à la classe de stockage Amazon S3 Glacier

Si vous stockez un instantané restauré dans l'une des classes de stockage Amazon S3 Glacier, n'appliquez pas de règle Amazon S3 Glacier Lifecycle au compartiment. Les instantanés manuels ne prennent pas en charge les classes de stockage S3 Glacier. Si vous appliquez une politique de cycle de vie S3 Glacier au compartiment, déplacez les objets qui effectuent la transition vers le compartiment de nouveau vers une classe de stockage standard.

Après avoir replacé les objets, vous pouvez les restaurer à partir des instantanés. Pour plus d'informations, consultez la section Prérequis.

Informations connexes

Comment puis-je résoudre l'erreur dans Amazon OpenSearch Service ?"cannot restore index [.kibana]"

Prendre des instantanés manuels

AWS OFFICIELA mis à jour il y a 3 mois