Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erstellen und aktualisieren Sie AMI-Verteilungskonfigurationen
In diesem Abschnitt wird das Erstellen und Aktualisieren von Distributionskonfigurationen für ein Image Builder-AMI behandelt.
Inhalt
Voraussetzungen für die AMI-Verteilung
Für einige Verteilungseinstellungen gelten folgende Voraussetzungen:
Themen
Voraussetzungen für SSM-Ausgabeparameter
Bevor Sie eine neue AMI-Verteilungskonfiguration erstellen, die einen AWS Systems Manager Parameter Store-Parameter (SSM-Parameter) festlegt, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen.
- Rolle „Ausführung“
-
Wenn Sie eine Pipeline erstellen oder den Befehl create-image in der verwenden AWS CLI, können Sie nur eine Image Builder-Ausführungsrolle angeben. Wenn Sie eine Image Builder-Workflow-Ausführungsrolle definiert haben, würden Sie dieser Rolle zusätzliche Funktionsberechtigungen hinzufügen. Andernfalls würden Sie eine neue benutzerdefinierte Rolle erstellen, die die erforderlichen Berechtigungen enthält.
Wichtig
Es wird empfohlen, die AWSServiceRoleForImageBuilder serviceverknüpfte Rolle nicht als Ausführungsrolle zu übergeben. Erstellen Sie stattdessen eine benutzerdefinierte IAM-Rolle und hängen Sie die EC2ImageBuilderExecutionPolicy AWS verwaltete Richtlinie an. Diese Richtlinie gewährt dieselben Berechtigungen, die Image Builder benötigt, um in AWS-Services Ihrem Namen anzurufen. Durch die Verwendung einer benutzerdefinierten Rolle haben Sie die volle Kontrolle über die Berechtigungen, die Image Builder verwendet. Außerdem bleiben Ihre Service Control Policies (SCPs) und Resource Control Policies (RCPs) für Vorgänge gültig, die Image Builder in Ihrem Namen ausführt.
-
Um die Ausgabe-AMI-ID während der Verteilung in einem SSM-Parameter zu speichern, müssen Sie die
ssm:PutParameterAktion in Ihrer Image Builder-Ausführungsrolle angeben, wobei der Parameter als Ressource aufgeführt wird. -
Wenn Sie den Parameter-Datentyp auf
AWS EC2 ImageSignal Systems Manager setzen, um den Parameterwert als AMI-ID zu validieren, müssen Sie auch dieec2:DescribeImagesAktion hinzufügen.
-
- Opt-in Region
-
Sie müssen eine Opt-In-Region (Region, die standardmäßig deaktiviert ist) im Quellkonto aktivieren. Diese Anforderung gilt, wenn Ihre Verteilungskonfiguration auf diese Region abzielt, unabhängig davon
ssmParameterConfigurations, ob Sie die serviceverknüpfte Image Builder-Rolle oder eine benutzerdefinierte Ausführungsrolle verwenden.Anmerkung
Die AMI-Kopie in eine Opt-in-Region kann auch dann erfolgreich sein, wenn das Quellkonto die Region nicht aktiviert hat. Nur das Schreiben des SSM-Ausgabeparameters schlägt fehl.
Ohne diese Voraussetzung schlägt der Build mit einem Fehler ähnlich dem folgenden fehl:
In region 'af-south-1' - 'STS Client Error: The provided execution role does not exist or does not have sufficient permissions.'Sie lösen dieses Problem, indem Sie einen der folgenden Schritte ausführen:
-
Aktivieren Sie die Opt-in-Regionen im Quellkonto. Anweisungen zum Aktivieren einer Region findest du im Referenzhandbuch zur Kontoverwaltung unter AWS Regionen in deinem AWS Konto aktivieren oder deaktivieren.
-
Lassen Sie diese Option für die Regionen aus,
ssmParameterConfigurationsfür die Sie sich anmelden. Verwenden Sie stattdessen eine EventBridge Amazon-Regel, um auf das Ereignis EC2 Image Builder Image State Change zu reagieren, und schreiben Sie die Parameter selbst.
-
Voraussetzungen für EC2 Fast Launch
Bevor Sie eine neue Vertriebskonfiguration für EC2 Fast Launch für Windows-AMIs erstellen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen.
-
Wenn Sie bei der Konfiguration von EC2 Fast Launch eine benutzerdefinierte Startvorlage angeben, verwendet der Service die VPC und andere Konfigurationseinstellungen, die Sie in der Startvorlage definiert haben. Weitere Informationen finden Sie unter Verwenden einer Startvorlage beim Einrichten von EC2 Fast Launch.
-
Wenn Sie keine benutzerdefinierte Startvorlage verwenden, um Ihre Einstellungen zu konfigurieren, müssen Sie die EC2FastLaunchFullAccess Richtlinie an die IAM-Rolle anhängen, die Image Builder zum Erstellen Ihres Images verwendet. Wenn Sie eine Pipeline erstellen oder den Befehl create-image in der verwenden AWS CLI, können Sie nur eine Image Builder-Ausführungsrolle angeben. Wenn Sie eine Image Builder-Workflow-Ausführungsrolle definiert haben, würden Sie dieser Rolle zusätzliche Funktionsberechtigungen hinzufügen. Andernfalls würden Sie eine neue benutzerdefinierte Rolle erstellen, die die erforderlichen Berechtigungen enthält.
Für diese Funktion sind zusätzliche Berechtigungen erforderlich, die über die in der Basisausführungsrichtlinie enthaltenen hinausgehen. Sie müssen also eine benutzerdefinierte Rolle verwenden. Es wird empfohlen, eine benutzerdefinierte Rolle zu erstellen, an die die EC2ImageBuilderExecutionPolicy AWS verwaltete Richtlinie angehängt ist, und die EC2FastLaunchFullAccess Richtlinie dann dieser Rolle hinzuzufügen.
Wenn Image Builder dann Ihr Image kopiert, erstellt EC2 Fast Launch automatisch einen CloudFormation Stapel mit den folgenden Ressourcen in Ihrem AWS-Konto.
-
Eine Virtual Private Cloud (VPC)
-
Private Subnetze über mehrere Availability Zones hinweg
-
Eine Startvorlage, konfiguriert mit Instance Metadata Service Version 2 (IMDSv2)
-
Eine Sicherheitsgruppe mit keinen Regeln für ein- oder ausgehenden Datenverkehr
-
Anmerkung
Image Builder unterstützt keine kontoübergreifende Verteilung für AMIs, für die EC2 Fast Launch voraktiviert ist. EC2 Fast Launch muss vom Zielkonto aus aktiviert werden.
Erstellen Sie eine AMI-Verteilungskonfiguration
Zu den Verteilungskonfigurationen gehören der Ausgabe-AMI-Name, spezifische Regionseinstellungen für die Verschlüsselung, Startberechtigungen und AWS-Konten Organisationen und Organisationseinheiten (OUs), die das Ausgabe-AMI starten können, sowie Lizenzkonfigurationen.
Eine Verteilungskonfiguration ermöglicht es Ihnen, den Namen und die Beschreibung Ihres Ausgabe-AMI anzugeben, andere AWS-Konten zum Starten des AMI zu autorisieren, das AMI auf andere Konten zu kopieren und das AMI in andere AWS Regionen zu replizieren. Außerdem können Sie das AMI in Amazon Simple Storage Service (Amazon S3) exportieren oder EC2 Fast Launch für Windows-Ausgabe-AMIs konfigurieren. Um ein AMI öffentlich zu machen, setzen Sie die Startberechtigung für autorisierte Konten auf all. Sehen Sie sich die Beispiele für die Veröffentlichung eines AMI auf ModifyImageAttribute EC2 an.
Aktualisieren Sie eine AMI-Verteilungskonfiguration
Sie können Ihre AMI-Verteilungskonfiguration ändern. Die Änderungen, die Sie vornehmen, gelten jedoch nicht für Ressourcen, die Image Builder bereits verteilt hat. Wenn Sie beispielsweise ein AMI an eine Region verteilt haben, die Sie später aus Ihrer Distribution entfernen, verbleibt das AMI, das bereits verteilt wurde, in dieser Region, bis Sie es manuell entfernen.
Beispiel: Aktivieren Sie EC2 Fast Launch mit einer Startvorlage für Ausgabe-AMIs
Das folgende Beispiel zeigt, wie Sie den create-distribution-configuration
Um EC2 Fast Launch-Einstellungen ohne Startvorlage zu konfigurieren, stellen Sie sicher, dass Sie alle Bedingungen erfüllt haben, Voraussetzungen für das Einrichten von EC2-Schnellstart bevor Sie Ihre Verteilungskonfiguration erstellen.
-
Erstellen einer CLI-Eingabe-JSON-Datei
Verwenden Sie ein Dateibearbeitungswerkzeug, um eine JSON-Datei mit Schlüsseln zu erstellen, wie im folgenden Beispiel gezeigt, plus Werten, die für Ihre Umgebung gültig sind.
In diesem Beispiel werden Instances für alle Zielressourcen gleichzeitig gestartet, da die maximale Anzahl paralleler Starts größer ist als die Anzahl der Zielressourcen. Diese Datei ist
ami-dist-config-win-fast-launch.jsonin dem Befehlsbeispiel benannt, das im nächsten Schritt gezeigt wird.{ "name": "WinFastLaunchDistribution", "description": "An example of Windows AMI EC2 Fast Launch settings in the distribution configuration.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "Includes Windows AMI EC2 Fast Launch settings.", "amiTags": { "KeyName": "Some Value" } }, "fastLaunchConfigurations": [{ "enabled": true, "snapshotConfiguration": { "targetResourceCount": 5 }, "maxParallelLaunches": 6, "launchTemplate": { "launchTemplateId": "lt-0ab1234c56d789012", "launchTemplateVersion": "1" } }], "launchTemplateConfigurations": [{ "launchTemplateId": "lt-0ab1234c56d789012", "setDefaultVersion": true }] }] }Anmerkung
Sie können
launchTemplateIdimlaunchTemplateAbschnittlaunchTemplateNameanstelle von den angeben, aber Sie können nicht sowohl den Namen als auch die ID angeben. -
Führen Sie den folgenden Befehl aus, indem Sie die Datei verwenden, die Sie als Eingabe erstellt haben.
aws imagebuilder create-distribution-configuration --cli-input-json file://ami-dist-config-win-fast-launch.jsonAnmerkung
-
Sie müssen die
file://-Notation am Anfang des JSON-Dateipfades. -
Der Pfad für die JSON-Datei sollte der entsprechenden Konvention für das Basisbetriebssystem folgen, auf dem Sie den Befehl ausführen. Beispielsweise verwendet Windows den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.
Weitere Informationen finden Sie create-distribution-configuration
in der AWS CLI Befehlsreferenz. -
Beispiel: Erstellen Sie Verteilungseinstellungen für Ausgabe-VM-Festplatten aus dem AWS CLI
Das folgende Beispiel zeigt, wie Sie den create-distribution-configuration Befehl verwenden, um Verteilungseinstellungen zu erstellen, mit denen VM-Image-Festplatten bei jedem Image-Build nach Amazon S3 exportiert werden.
-
Erstellen einer CLI-Eingabe-JSON-Datei
Sie können den create-distribution-configuration Befehl, den Sie in der AWS CLI verwenden, optimieren. Erstellen Sie dazu eine JSON-Datei, die die gesamte Exportkonfiguration enthält, die Sie an den Befehl übergeben möchten.
Anmerkung
Die Benennungskonvention für die Datenwerte in der JSON-Datei folgt dem Muster, das für die Image Builder-API-Operationsanforderungsparameter angegeben ist. Informationen zur Überprüfung der Anforderungsparameter für API-Operationen finden Sie im CreateDistributionConfiguration Befehl in der EC2 Image Builder-API-Referenz.
Um die Datenwerte als Befehlszeilenparameter bereitzustellen, beziehen Sie sich auf die in der AWS CLI Befehlsreferenz angegebenen Parameternamen. Gehen Sie zum create-distribution-configuration Befehl als Optionen.
Hier ist eine Zusammenfassung der Parameter, die wir im
s3ExportConfigurationJSON-Objekt für dieses Beispiel angeben:-
roleName (string, required) — Der Name der Rolle, die der VM die Import/Export Erlaubnis erteilt, Bilder in Ihren S3-Bucket zu exportieren.
-
disk ImageFormat (string, required) — Exportiert das aktualisierte Disk-Image in eines der folgenden unterstützten Formate:
-
Virtuelle Festplatte (VHD) — Kompatibel mit Hyper-V Virtualisierungsprodukten von Citrix Xen und Microsoft.
-
Stream-optimized ESX Virtual Machine Disk (VMDK) — Kompatibel mit den Versionen 4, 5 und 6 von VMware ESX und VMware vSphere.
-
Raw — Rohformat.
-
-
s3Bucket (string, erforderlich) — Der S3-Bucket, in dem die Ausgabe-Disk-Images für Ihre VM gespeichert werden.
Speichern Sie die Datei als
export-vm-disks.json. Verwenden Sie den Dateinamen im Befehlcreate-distribution-configuration.{ "name": "example-distribution-configuration-with-vm-export", "description": "example", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "description": "example-with-vm-export" }, "s3ExportConfiguration": { "roleName": "vmimport", "diskImageFormat": "RAW", "s3Bucket": "vm-bucket-export" } }], "clientToken": "abc123def4567ab" } -
-
Führen Sie den folgenden Befehl aus, indem Sie die Datei verwenden, die Sie als Eingabe erstellt haben.
aws imagebuilder create-distribution-configuration --cli-input-json file://export-vm-disks.jsonAnmerkung
-
Sie müssen die
file://-Notation am Anfang des JSON-Dateipfades. -
Der Pfad für die JSON-Datei sollte der entsprechenden Konvention für das Basisbetriebssystem folgen, auf dem Sie den Befehl ausführen. Beispielsweise verwendet Windows den Backslash (\), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.
Weitere Informationen finden Sie create-distribution-configuration
in der AWS CLI Befehlsreferenz. -