Amazon Linux - Amazon Elastic Compute Cloud

Amazon Linux

Amazon Linux est fourni par Amazon Web Services (AWS). Il est conçu pour offrir un environnement d'exécution stable, sécurisé et très performant pour des applications s'exécutant sur Amazon EC2. Il comporte aussi des packages qui permettent une intégration facile à AWS, notamment des outils de configuration du lancement et plusieurs bibliothèques et outils AWS populaires. AWS fournit des mises à jour continues de sécurité et de maintenance pour toutes les instances s'exécutant sur Amazon Linux. Beaucoup applications développées sur CentOS (et des distributions similaires) s'exécutent sur Amazon Linux.

Disponibilité Amazon Linux

AWS fournit Amazon Linux 2 et l'Amazon Linux AMI. Si vous migrez à partir d'une autre distribution Linux vers Amazon Linux, nous vous recommandons de migrer vers Amazon Linux 2.

La dernière version de l'Amazon Linux AMI, 2018.03, atteindra la fin de la prise en charge standard le 31 décembre 2020. Pour plus d'informations, consultez le billet de blog sur la fin de vie de l'Amazon Linux AMI. Si vous utilisez actuellement l'Amazon Linux AMI, nous vous recommandons de migrer vers Amazon Linux 2. Pour migrer vers Amazon Linux 2, lancez une instance ou créez une machine virtuelle à l'aide de l'image Amazon Linux 2 actuelle. Installez vos applications, ainsi que tous les packages requis. Testez votre application et apportez les modifications requises pour que celle-ci s'exécute sur Amazon Linux 2.

Pour plus d'informations, consultez Amazon Linux 2 et Amazon Linux AMI. Pour les images de conteneur Docker Amazon Linux, consultez amazonlinux dans Docker Hub.

Connexion à une instance Amazon Linux

Amazon Linux n'autorise pas SSH racine à distance par défaut. De plus, l'authentification par mot de passe est désactivée pour empêcher les attaques de force sur les mots de passe. Pour activer les connexions SSH à une instance Amazon Linux, vous devez fournir votre paire de clés à l'instance lors du lancement. Vous devez aussi définir le groupe de sécurité utilisé pour lancer votre instance afin d'autoriser l'accès SSH. Par défaut, le seul compte qui peut se connecter à distance en utilisant SSH est ec2-user. Ce compte possède également des privilèges sudo. Pour activer la connexion racine à distance, ayez à l'esprit qu'elle est moins sécurisée que l'utilisation de paires de clés et d'un utilisateur secondaire.

Identifier les images Amazon Linux

Chaque image contient un fichier /etc/image-id unique qui l'identifie. Ce fichier contient les informations suivantes sur l'image :

  • image_name, image_version, image_arch — Valeurs issues de la recette de création qu'Amazon a utilisée pour créer l'image.

  • image_stamp — Valeur hexadécimale aléatoire unique qui a été générée pendant la création de l'image.

  • image_date — Heure UTC de la création de l'image, au format AAAAMMJJhhmmss

  • recipe_name, recipe_id — Nom et ID de la recette de création qu'Amazon a utilisée pour créer l'image.

Amazon Linux contient un fichier /etc/system-release qui spécifie la version actuelle qui est installée. Ce fichier est mis à jour à l'aide de la commande yum et fait partie du fichier RPM system-release.

Amazon Linux contient aussi une version lisible par la machine du fichier /etc/system-release qui suit la spécification CPE. Consultez /etc/system-release-cpe.

Amazon Linux 2

Voici un exemple de fichier /etc/image-id pour la version actuelle d'Amazon Linux 2 :

[ec2-user ~]$ cat /etc/image-id image_name="amzn2-ami-hvm" image_version="2" image_arch="x86_64" image_file="amzn2-ami-hvm-2.0.20180810-x86_64.xfs.gpt" image_stamp="8008-2abd" image_date="20180811020321" recipe_name="amzn2 ami" recipe_id="c652686a-2415-9819-65fb-4dee-9792-289d-1e2846bd"

Voici un exemple de fichier /etc/system-release pour la version actuelle d'Amazon Linux 2 :

[ec2-user ~]$ cat /etc/system-release Amazon Linux 2

Voici un exemple de fichier /etc/os-release pour Amazon Linux 2 :

[ec2-user ~]$ cat /etc/os-release NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com/"

Amazon Linux AMI

Voici un exemple de fichier /etc/image-id pour l'Amazon Linux AMI actuelle :

[ec2-user ~]$ cat /etc/image-id image_name="amzn-ami-hvm" image_version="2018.03" image_arch="x86_64" image_file="amzn-ami-hvm-2018.03.0.20180811-x86_64.ext4.gpt" image_stamp="cc81-f2f3" image_date="20180811012746" recipe_name="amzn ami" recipe_id="5b283820-dc60-a7ea-d436-39fa-439f-02ea-5c802dbd"

Voici un exemple de fichier /etc/system-release pour l'Amazon Linux AMI actuelle :

[ec2-user ~]$ cat /etc/system-release Amazon Linux AMI release 2018.03

Outils de ligne de commande AWS

Les outils de ligne de commande suivants pour l'intégration et l'utilisation AWS sont inclus dans l'AMI Amazon Linux ou dans les référentiels par défaut pour Amazon Linux 2. Pour obtenir la liste de packages complète de l'Amazon Linux AMI, consultez Packages Amazon Linux AMI 2017.09.

  • aws-amitools-ec2

  • aws-apitools-as

  • aws-apitools-cfn

  • aws-apitools-elb

  • aws-apitools-mon

  • aws-cfn-bootstrap

  • aws-cli

Amazon Linux 2 et les versions minimales d'Amazon Linux (amzn-ami-minimal-* et amzn2-ami-minimal-*) ne contiennent pas toujours tous ces packages. Par contre, vous pouvez les installer à partir des référentiels par défaut à l'aide de la commande suivante :

[ec2-user ~]$ sudo yum install -y package_name

Pour les instances lancées en utilisant les rôles IAM, un script simple a été inclus pour préparer AWS_CREDENTIAL_FILE, JAVA_HOME, AWS_PATH, PATH et les variables d'environnement spécifiques aux produits après l'installation d'un fichier d'identification pour simplifier la configuration de ces outils.

De plus, pour permettre l'installation de plusieurs version des outils API et AMI, nous avons placé des liens symboliques sur les versions souhaitées de ces outils dans /opt/aws, comme indiqué ici :

/opt/aws/bin

Liens symboliques vers les répertoires /bin dans chacun des répertoires des outils installés.

/opt/aws/{apitools|amitools}

Les produits sont installés dans les répertoires du type nom-version et un lien symbolique nom qui est attaché à la version la plus récemment installée.

/opt/aws/{apitools|amitools}/name/environment.sh

Utilisé par /etc/profile.d/aws-apitools-common.sh pour définir les variables d'environnement spécifiques aux produits, comme EC2_HOME.

Référentiel de package

Amazon Linux 2 et l'Amazon Linux AMI sont conçus pour être utilisés avec des référentiels de package en ligne hébergés dans chaque région AWS Amazon EC2. Ces référentiels fournissent les mises à jour continues aux packages dans Amazon Linux 2 et dans l'Amazon Linux AMI, ainsi que l'accès à des centaines d'applications serveur Open Source communes supplémentaires. Les référentiels sont disponibles dans toutes les régions et sont accessibles à l'aide des outils de mise à jour yum. L'hébergement de référentiels dans chaque région nous permet de déployer rapidement les mises à jour et sans aucuns frais de transfert de données.

Amazon Linux 2 et l'Amazon Linux AMI sont régulièrement mis à jour grâce avec des améliorations de la sécurité et des fonctions. Si vous n'avez pas besoin de conserver les données ou les personnalisations pour vos instances , il vous suffit de lancer de nouvelles instances à l'aide de l'AMI actuelle. Si vous devez conserver les données ou les personnalisations pour vos instances, vous pouvez maintenir ces instances via les référentiels de package d'Amazon Linux. Ces référentiels contiennent tous les packages mis à jour. Vous pouvez choisir d'appliquer ces mises à jour à vos instances en cours d'exécution. Les anciennes versions de l'AMI et des packages de mise à jour continuent d'être disponibles à l'utilisation, même lorsque de nouvelles versions sont proposées.

Important

Votre instance doit avoir un accès Internet sortant pour accéder au référentiel.

Pour installer des packages, utilisez la commande suivante :

[ec2-user ~]$ sudo yum install package

Pour l'Amazon Linux AMI, accédez au référentiel EPEL (Extra Packages for Enterprise Linux) qui est configuré, mais pas activé par défaut. Amazon Linux 2 n'est pas configuré pour utiliser le référentiel EPEL. Le référentiel EPEL fournit des packages tiers en plus de ceux qui sont dans les référentiels. Les packages tiers ne sont pas pris en charge par AWS. Vous pouvez activer le référentiel EPEL avec les commandes suivantes :

  • Dans Amazon Linux 2:

    [ec2-user ~]$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • Pour l'Amazon Linux AMI :

    [ec2-user ~]$ sudo yum-config-manager --enable epel

Si vous découvrez qu'Amazon Linux ne contient pas une application dont vous avez besoin, vous pouvez simplement installer l'application directement sur votre instance Amazon Linux. Amazon Linux utilise les fichiers RPM et la commande yum pour la gestion des packages. Il s'agit probablement de la façon la plus simple d'installer de nouvelles applications. Vous devriez toujours vérifier si une application est déjà disponible dans notre référentiel central d'Amazon Linux, car beaucoup d'applications sont disponibles ici. Ces applications peuvent être facilement ajoutées à votre instance Amazon Linux.

Pour charger vos applications sur une instance Amazon Linux en cours d'exécution, utilisez scp ou sftp, puis configurez l'application en vous connectant à votre instance. Vos applications peuvent aussi être chargées pendant le lancement de l'instance en utilisant l'action PACKAGE_SETUP à partir du package cloud-init intégré. Pour plus d'informations, consultez cloud-init.

Mises à jour de sécurité

Les mises à jour de sécurité sont fournies à l'aide des référentiels de package, ainsi que les AMI mises à jour. Les alertes de sécurité sont publiées dans le Centre de sécurité Amazon Linux. Pour plus d'informations sur les stratégies de sécurité AWS ou pour signaler un problème de sécurité, consultez le centre de sécurité AWS.

Amazon Linux est configuré pour télécharger et installer les mises à jour de sécurité critiques ou importantes au moment du lancement. Nous vous recommandons d'effectuer les mises à jour nécessaires pour votre cas d'utilisation après le lancement. Par exemple, vous pouvez souhaiter appliquer toutes les mises à jour (pas seulement les mises à jour de sécurité) au moment du lancement, ou évaluer chaque mise à jour et appliquer à votre système uniquement celles qui sont applicables. Ceci est contrôlé à l'aide du paramètre cloud-init suivant : repo_upgrade. L'extrait de configuration cloud-init suivant montre comment modifier les paramètres dans le texte de données utilisateur que vous transmettez à l'initialisation de votre instance :

#cloud-config repo_upgrade: security

Les valeurs possibles pour repo_upgrade sont les suivantes :

critical

Appliquez les mises à jour de sécurité critiques en attente.

important

Appliquez les mises à jour de sécurité importantes et critiques.

medium

Appliquez les mises à jour de sécurité critiques, importantes et moyennes.

low

Appliquez toutes les mises à jour de sécurité en attente, y compris les mises à jour de sécurité de faible gravité.

security

Appliquez les mises à jour critiques ou importantes indiquées par Amazon comme étant des mises à jour de sécurité.

bugfix

Appliquez les mises à jour indiquées par Amazon comme étant des correctifs de bogues. Les correctifs de bogues constituent un ensemble plus important de mises à jour ce qui comprend des mises à jour de sécurité et des correctifs pour plusieurs autres bogues mineurs.

all

Appliquez toutes les mises à jour disponibles appropriées, peu importe leur classification.

none

N'appliquez aucune mise à jour à l'instance au démarrage.

Le paramètre par défaut pour repo_upgrade est la sécurité. En effet, si vous ne spécifiez pas une valeur différente dans vos données utilisateur, Amazon Linux effectue par défaut les mises à niveau de sécurité au lancement pour tous les packages installés à ce moment. Amazon Linux vous avertit aussi de toutes les mises à jour pour les packages installés en faisant la liste des mises à jour disponibles au moment de la connexion en utilisant le fichier /etc/motd. Pour installer ces mises à jour, vous devez exécuter sudo yum upgrade sur l'instance.

Configuration du référentiel

Avec Amazon Linux, les AMI sont traitées comme des instantanés ponctuels, avec une structure de référentiel et de mise à jour qui vous donne toujours les derniers packages lorsque vous exécutez yum update -y.

La structure du référentiel est configurée pour offrir un flux continu de mises à jour qui vous permettent de passer d'une version d'Amazon Linux à la suivante. Par exemple, si vous lancez une instance à partir d'une version plus ancienne de l'Amazon Linux AMI (comme 2017.09 ou antérieures) et exécutez yum update -y, vous obtenez les derniers packages.

Vous pouvez désactiver la propagation des mises à jour en activant la fonction de verrouillage au lancement. La fonction de verrouillage au lancement verrouille l'instance pour recevoir uniquement les mises à jour de la version spécifiée de l'AMI. Par exemple, vous pouvez lancer une AMI 2017.09 et faire en sorte qu'elle ne reçoive que les mises à jour qui ont été publiées avant l'AMI 2018.03 jusqu'à ce que vous soyez prêt à migrer vers l'AMI 2018.03.

Important

Si vous verrouillez une version de référentiels autre que la dernière version, vous ne recevez plus aucune mise à jour. Pour recevoir un flux continu de mises à jour, vous devez utiliser l'AMI la plus récente ou à mettre régulièrement à jour l'AMI avec les référentiels pointant vers la dernière version.

Pour activer la fonctionnalité de verrouillage au lancement dans les nouvelles instances, lancez-la avec les données utilisateur transmises à cloud-init :

#cloud-config repo_releasever: 2017.09

Pour relier des instances existantes à leur version d'AMI actuelle

  1. Modification /etc/yum.conf.

  2. Mettez en commentaire releasever=latest.

  3. Pour vider le cache, exécutez yum clean all.

Bibliothèque Extras (Amazon Linux 2)

Avec Amazon Linux 2, vous pouvez utiliser la bibliothèque Extras pour installer les mises à jour d'application et logicielles sur vos instances. Ces mises à jour logicielles sont appelées rubriques. Vous pouvez installer une version spécifique d'une rubrique ou omettre les informations de version pour utiliser la version la plus récente.

Pour répertorier les rubriques disponibles, utilisez la commande suivante :

[ec2-user ~]$ amazon-linux-extras list

Pour activer une rubrique et installer la dernière version de son package pour garantir son actualité, utilisez la commande suivante :

[ec2-user ~]$ sudo amazon-linux-extras install topic

Pour activer des rubriques et installer des versions spécifiques de leurs packages afin de garantir la stabilité, utilisez la commande suivante :

[ec2-user ~]$ sudo amazon-linux-extras install topic=version topic=version

Pour supprimer un package installé à partir d'une rubrique, utilisez la commande suivante :

[ec2-user ~]$ sudo yum remove $(yum list installed | grep amzn2extra-topic | awk '{ print $1 }')
Note

Cette commande ne supprime pas les paquets qui ont été installés en tant que dépendances de l'extra.

Pour désactiver une rubrique et rendre les packages inaccessibles au gestionnaire de paquets yum, utilisez la commande suivante :

[ec2-user ~]$ sudo amazon-linux-extras disable topic
Important

Cette commande est destinée aux utilisateurs avancés. Une utilisation incorrecte de cette commande peut entraîner des conflits de compatibilité de paquets.

Accéder aux packages source à des fins de référence

Vous pouvez voir la source des packages que vous avez installés sur votre instance à des fins de référence en utilisant des outils fournis dans Amazon Linux. Les packages source sont disponibles pour tous les packages compris dans Amazon Linux et le référentiel de package en ligne. Il vous suffit de déterminer le nom du package pour le package source que vous voulez installer et d'utiliser la commande yumdownloader --source pour voir la source dans votre instance en cours d'exécution. Exemples :

[ec2-user ~]$ yumdownloader --source bash

Le fichier RPM source peut être décompressé et, à des fins de référence, vous pouvez voir l'arborescence source en utilisant les outils RPM standard. Après le débogage, le package peut être utilisé.

cloud-init

Le package cloud-init est une application open source réalisée par Canonical, qui est utilisée pour amorcer les images Linux dans un environnement de cloud computing, comme Amazon EC2. Amazon Linux contient une version personnalisée de cloud-init. Elle vous permet de spécifier des actions qui devraient arriver à votre instance au moment du démarrage. Vous pouvez transmettre les actions souhaitées à cloud-init via les champs de données utilisateur lors du lancement d'une instance. Cela signifie que vous pouvez utiliser des AMI communes pour plusieurs cas d'utilisation et les configurer dynamiquement au démarrage. Amazon Linux utilise aussi cloud-init pour effectuer une configuration initiale du compte ec2-user.

Pour plus d'informations, consultez la documentation cloud-init.

Amazon Linux utilise les actions cloud-init trouvées dans /etc/cloud/cloud.cfg.d et /etc/cloud/cloud.cfg. Vous pouvez créer vos propres fichiers d'actions cloud-init dans /etc/cloud/cloud.cfg.d. Tous les fichiers dans ce répertoire sont lus par cloud-init. Ils sont lus en ordre lexical, et les fichiers plus récents remplacent les valeurs des fichiers plus anciens.

Le package cloud-init effectue des tâches de configuration communes (et d'autres tâches) pour les instances au démarrage :

  • Définir les paramètres régionaux par défaut.

  • Définir le nom d'hôte.

  • Analyser et gérer les données utilisateur.

  • Générer des clés SSH privées d'hôte.

  • Ajouter des clés SSH publiques d'utilisateur à .ssh/authorized_keys pour une connexion et une administration faciles.

  • Préparer les référentiels pour la gestion des packages.

  • Gérer les actions de package définies dans les données utilisateur.

  • Exécuter les scripts utilisateur trouvés dans les données utilisateur.

  • Monter les volumes de stockage d'instance, le cas échéant.

    • Par défaut, le volume de stockage d'instance ephemeral0 est monté sur /media/ephemeral0 s'il est présent et contient un système de fichiers valide ; sinon, il n'est pas monté.

    • Par défaut, les volumes d'échange associés à l'instance sont montés (uniquement pour les types d'instance m1.small et c1.medium).

    • Vous pouvez remplacer le montage de volume de stockage d'instance par défaut avec la directive cloud-init suivante :

      #cloud-config mounts: - [ ephemeral0 ]

      Pour plus de contrôle sur les montages, consultez Mounts dans la documentation cloud-init.

    • Les volumes de stockage d'instance qui prennent en charge la commande TRIM ne sont pas formatés au lancement de l'instance. Vous devez donc les partitionner et les formater pour pouvoir les monter et les utiliser. Pour plus d'informations, consultez Prise en charge de TRIM sur les volumes de stockage d'instance. Vous pouvez utiliser le module disk_setup pour partitionner et formater vos volumes de stockage d'instance au démarrage. Pour plus d'informations, consultez Disk Setup dans la documentation cloud-init.

Formats de données utilisateur pris en charge

Le package cloud-init prend en charge la gestion des données utilisateur sous différents formats :

  • Gzip

    • Si les données utilisateur sont compressés avec gzip, cloud-init décompresse les données et les gère de façon appropriée.

  • Fichier MIME en plusieurs parties

    • En utilisant un fichier MIME en plusieurs parties, vous pouvez spécifier plus d'un type de données. Par exemple, vous pourriez spécifier à la fois un script de données utilisateur et un type de configuration Cloud. Chaque partie de ce fichier peut être traitée par cloud-init s'il s'agit d'un des formats pris en charge.

  • Décodage Base64

    • Si les données utilisateur sont sous la forme encodée base64, cloud-init détermine s'il peut comprendre les données décodées comme l'un des types pris en charge. S'il comprend les données décodées, il décode les données et les gère de façon appropriée. Si non, il renvoie les données base64 intactes.

  • Script de données utilisateur

    • Commence par #! ou Content-Type: text/x-shellscript.

    • Le script est exécuté par /etc/init.d/cloud-init-user-scripts pendant le premier cycle de démarrage. Cela se produit tard dans le processus de démarrage (après l'exécution des actions de configuration initiales).

  • Fichier d'inclusion

    • Commence par #include ou Content-Type: text/x-include-url.

    • Ce contenu est un fichier d'inclusion. Le fichier contient une liste d'URL, une par ligne. Chacune des URL est lue, et leur contenu est passé par le même ensemble de règles. Le contenu lu à partir de l'URL peut être compressé avec gzip, sous forme de fichier MIME en plusieurs parties ou de texte brut.

  • Données de configuration Cloud

    • Commence par #cloud-config ou Content-Type: text/cloud-config.

    • Ce contenu correspond aux données de configuration Cloud. Pour obtenir un exemple commenté des formats de configuration pris en charge, consultez les exemples.

  • Tâche Upstart

    • Commence par #upstart-job ou Content-Type: text/upstart-job.

    • Ce contenu est stocké dans un fichier dans /etc/init, et upstart consomme le contenu conformément aux autres tâches upstart.

  • Cloud Boothook

    • Commence par #cloud-boothook ou Content-Type: text/cloud-boothook.

    • Ce contenu correspond aux données boothook. Il est stocké dans un fichier sous /var/lib/cloud, puis exécuté immédiatement.

    • Il s'agit du « hook » le plus récent disponible. Il n'existe aucun mécanisme proposé pour l'exécuter seulement une fois. Le boothook doit s'en occuper lui-même. Il est fourni avec l'ID d'instance dans la variable d'environnement INSTANCE_ID. Utilisez cette variable pour fournir un ensemble de données boothook à exécuter une fois par instance.

S'abonner aux notifications Amazon Linux

Pour être informé de la publication de nouvelles AMI, vous pouvez vous abonner à l'aide de Amazon SNS.

Pour s'abonner aux notifications Amazon Linux

  1. Ouvrez la console Amazon SNS à l’adresse https://console.aws.amazon.com/sns/v3/home.

  2. Dans la barre de navigation, remplacez la région par USA Est (Virginie du Nord) si besoin. Vous devez sélectionner la région dans laquelle la notification SNS à laquelle vous vous abonnez a été créée.

  3. Dans le panneau de navigation, choisissez Abonnements, puis Créer un abonnement.

  4. Dans la boîte de dialogue Créer un abonnement, procédez comme suit :

    1. [Amazon Linux 2] Pour ARN de la rubrique, copiez et collez l'Amazon Resource Name (ARN) suivant : arn:aws:sns:us-east-1:137112412989:amazon-linux-2-ami-updates.

    2. [Amazon Linux] Pour ARN de la rubrique, copiez et collez l'Amazon Resource Name (ARN) suivant : arn:aws:sns:us-east-1:137112412989:amazon-linux-ami-updates.

    3. Pour Protocole, choisissez E-mail.

    4. Pour Point de terminaison, entrez une adresse e-mail que vous pouvez utiliser pour recevoir les notifications.

    5. Choisissez Créer un abonnement.

  5. Vous recevrez un e-mail de confirmation avec la ligne d'objet « AWS Notification - Subscription Confirmation » (Notification AWS - Confirmation de l'abonnement). Ouvrez l'e-mail et choisissez Confirm subscription (Confirmer l'abonnement) pour terminer votre abonnement.

Chaque fois que des AMI sont publiées, nous envoyons des notifications aux abonnés de la rubrique correspondante. Pour arrêter de recevoir ces notifications, utilisez la procédure suivante pour vous désabonner.

Pour annuler votre abonnement aux notifications Amazon Linux

  1. Ouvrez la console Amazon SNS à l’adresse https://console.aws.amazon.com/sns/v3/home.

  2. Dans la barre de navigation, remplacez la région par USA Est (Virginie du Nord) si besoin. Vous devez utiliser la région dans laquelle la notification SNS a été créée.

  3. Dans le panneau de navigation, sélectionnez Abonnements, sélectionnez l'abonnement, puis Actions, Supprimer des abonnements.

  4. Lorsque vous êtes invité à confirmer l'opération, choisissez Supprimer.

Format du message Amazon Linux AMI SNS

Le schéma du message SNS est le suivant.

{ "description": "Validates output from AMI Release SNS message", "type": "object", "properties": { "v1": { "type": "object", "properties": { "ReleaseVersion": { "description": "Major release (ex. 2018.03)", "type": "string" }, "ImageVersion": { "description": "Full release (ex. 2018.03.0.20180412)", "type": "string" }, "ReleaseNotes": { "description": "Human-readable string with extra information", "type": "string" }, "Regions": { "type": "object", "description": "Each key will be a region name (ex. us-east-1)", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "Name": { "description": "AMI Name (ex. amzn-ami-hvm-2018.03.0.20180412-x86_64-gp2)", "type": "string" }, "ImageId": { "description": "AMI Name (ex.ami-467ca739)", "type": "string" } }, "required": [ "Name", "ImageId" ] } } } }, "required": [ "ReleaseVersion", "ImageVersion", "ReleaseNotes", "Regions" ] } }, "required": [ "v1" ] }