Pourquoi le nouveau volume Amazon EBS que je crée à partir d'un instantané chiffré n'existe-t-il pas ?

Lecture de 4 minute(s)
0

J'ai utilisé la commande create-volume de l'interface de la ligne de commande AWS (AWS CLI) pour créer un volume Amazon Elastic Block Store (Amazon EBS) à partir d'un instantané chiffré. La commande s'exécute correctement et renvoie un ID de volume. Lorsque j'essaie d'attacher le volume à une instance, je ne le trouve pas.

Brève description

Lorsque vous créez un volume Amazon EBS à partir d'un instantané, deux opérations s'exécutent :

  1. Amazon EBS lance la création du volume. Cette action renvoie un ID de volume et définit l'état du volume sur création tel que renvoyé dans la sortie de l'API ou de l'AWS CLI. Cela signifie que l'API createVolume est valide et a été enregistrée avec succès.
  2. Un appel asynchrone est lancé pour valider la clé AWS Key Management Service (AWS KMS) utilisée pour chiffrer et déchiffrer le volume que vous créez.

Si la validation AWS KMS aboutit, l'état du volume est défini sur « disponible » et le volume EBS devient accessible. Si l'ID de clé AWS KMS, l'alias ou l'ARN spécifiés ne sont pas valides, l'opération semble terminée. Cependant, la création du volume finit par échouer et ne renvoie aucune erreur.

Remarque : la validation AWS KMS pour createVolume est asynchrone. Pour plus d'informations, consultez les sections Créer un volume et Chiffrer des ressources Amazon EBS.

Vous remarquerez peut-être le problème lorsque vous connectez le volume EBS ou que vous y accédez. Bien que l'API createVolume renvoie un ID de volume, le volume EBS n'existe pas et les journaux AWS CloudTrail ne présentent aucune erreur.

Exemple de problème

Cet exemple montre l'API createVolume utilisée avec un alias non valide pour la clé AWS KMS. L'opération d'API createVolume réussit et renvoie un ID de volume, puis définit l'état du volume sur création. L'alias de la clé AWS KMS n'étant pas valide, l'authentification asynchrone échoue. Cela entraîne l'échec de toute l'opération. Lorsque vous consultez les journaux AWS CloudTrail pour détecter l'événement de création de volume, aucune erreur n'est détectée, car l'opération createVolume a réussi.

$ aws ec2 create-volume --volume-type gp2 --availability-zone eu-west-1c --encrypted --kms-key-id hana --snapshot-id snap-0a27fe340500641d9 {
     "AvailabilityZone": "eu-west-1c",
     "MultiAttachEnabled": false,
     "Tags": [],
     "Encrypted": true,
     "VolumeType": "gp2",
     "VolumeId": "vol-043fe27d0ccf74b36",
     "State": "creating",
     "KmsKeyId": "hana",
     "SnapshotId": "snap-0a27fe340500641d9",
     "Iops": 100,
     "CreateTime": "2020-10-06T18:03:09.000Z",
     "Size": 8
}

Journaux AWS CloudTrail :

responseElements": {        "requestId": "8677d3cd-ad1d-4866-95f5-375d92a35813",
        "volumeId": "vol-043fe27d0ccf74b36",
        "size": "8",
        "snapshotId": "snap-0a27fe340500641d9",
        "zone": "eu-west-1c",z
        "status": "creating",
        "createTime": 1602007389000,
        "volumeType": "gp2",
        "iops": 100,
        "encrypted": true,
        "masterEncryptionKeyId": "hana",
        "tagSet": {},
        "multiAttachEnabled": false
    },
    "requestID": "8677d3cd-ad1d-4866-95f5-375d92a35813",
    "eventID": "bd4216df-ba39-425e-b272-936212ae6699",
    "eventType": "AwsApiCall",
    "recipientAccountId": "864258534754"
}

Lorsque vous exécutez la commande describe-volume-status, vous constatez que le volume n'existe pas :

$ aws ec2 describe-volume-status --volume-ids vol-043fe27d0ccf74b36An error occurred (InvalidVolume.NotFound) when calling the DescribeVolumeStatus operation:
The volume 'vol-043fe27d0ccf74b36' does not exist.

Résolution

Remarque : si des erreurs surviennent lors de l'exécution des commandes de l'AWS CLI, assurez-vous que vous utilisez la version la plus récente de l'AWS CLI.

Utiliser l'API describe-volume-status

Pour vérifier si le volume EBS existe, utilisez l'API describe-volume-status.

S'abonner aux événements CloudWatch createVolume

Pour plus d'informations sur les échecs de création de volumes, abonnez-vous aux évènements CloudWatch createVolume publics. Dans cet exemple, la notification indique l'événement CloudWatch createVolume. Elle indique également que l'opération createVolume échoue en raison d'un ID de clé non valide.

AWS Notification MessageCreateVolume <no-reply@sns.amazonaws.com>
{
"version":"0","id":"192e695f-2387-1cf0-fb1c-1cb32f047212",
"detail-type":"EBS Volume Notification","source":"aws.ec2",
"account":"12345678","time":"2020-10-06T18:03:10Z",
"region":"eu-west-1",
"resources":["arn:aws:ec2:eu-west-1:864258534754:volume/vol-043fe27d0ccf74b36"],
"detail":
{"result":"failed","cause":"Invalid keyId hana","event":"createVolume",
"request-id":"8677d3cd-ad1d-4866-95f5-375d92a35813"}
}

Remarque : si vous créez un volume EBS à partir d'un instantané chiffré, la création de l'instantané peut également échouer pour les raisons suivantes :

  • L'utilisateur ou le rôle AWS Identity and Access Management (IAM) qui crée le volume ne dispose pas des autorisations suffisantes. L'utilisateur ou le rôle IAM doit être autorisé à accéder à la clé AWS KMS utilisée pour chiffrer l'instantané.
  • La clé AWS KMS utilisée pour chiffrer l'instantané est désactivée, supprimée ou ne se trouve pas dans la région AWS.

Informations connexes

Comment puis-je optimiser les performances de mes volumes Amazon EBS ?

Pourquoi ne puis-je pas trouver le nom d'utilisateur qui a créé un volume EBS lorsque je recherche dans les journaux d'événements CloudTrail ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois