Steuern Sie die Verwendung von Amazon EC2 EC2-Startvorlagen in Auto Scaling Scaling-Gruppen - Amazon EC2 Auto Scaling

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.

Steuern Sie die Verwendung von Amazon EC2 EC2-Startvorlagen in Auto Scaling Scaling-Gruppen

Amazon EC2 Auto Scaling unterstützt die Verwendung von Amazon EC2-Startvorlagen mit Ihren Auto Scaling-Gruppen. Es wird empfohlen, Benutzern das Erstellen von Auto Scaling-Gruppen anhand von Startvorlagen zu gestatten, da sie auf diese Weise die neuesten Funktionen von Amazon EC2 Auto Scaling und Amazon EC2 verwenden können. Beispielsweise müssen Benutzer eine Startvorlage angeben, um eine Richtlinie für gemischte Instances verwenden zu können.

Sie können die AmazonEC2FullAccess-Richtlinie verwenden, um Benutzern Vollzugriff für die Arbeit mit Amazon EC2 Auto Scaling-Ressourcen, Startvorlagen und anderen EC2-Ressourcen in ihrem Konto zu gewähren. Sie können auch eigene benutzerdefinierte IAM-Richtlinien erstellen, um Benutzern detaillierte Berechtigungen zum Arbeiten mit Startvorlagen zu erteilen, wie in diesem Thema beschrieben.

Eine Beispielrichtlinie, die Sie für Ihre eigene Verwendung anpassen können

Das folgende Beispiel zeigt eine grundlegende Berechtigungsrichtlinie, die Sie für Ihre eigene Verwendung anpassen können. Die Richtlinie gewährt Berechtigungen zum Erstellen, Aktualisieren und Löschen aller Auto-Scaling-Gruppen, jedoch nur, wenn die Gruppe das Tag purpose=testing verwendet. Diese gewährt dann Berechtigung für alle Describe-Aktionen. Da Describe-Aktionen keine Berechtigungen auf Ressourcenebene unterstützen, müssen Sie sie in einer separaten Anweisung ohne Bedingungen angeben.

IAM-Identitäten (Benutzer oder Rollen) mit dieser Richtlinie verfügen über die Berechtigung zum Erstellen oder Aktualisieren einer Auto-Scaling-Gruppe mithilfe einer Startvorlage, da sie auch über die Berechtigung zur Verwendung der ec2:RunInstances-Aktion verfügen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "ec2:RunInstances" ], "Resource": "*" } ] }

Benutzer, die Auto-Scaling-Gruppen erstellen oder aktualisieren, benötigen möglicherweise einige zugehörige Berechtigungen, wie beispielsweise:

Diese Berechtigungen für Aktionen, die beim Starten von Instances ausgeführt werden sollen, werden überprüft, wenn der Benutzer mit einer Auto-Scaling-Gruppe interagiert. Weitere Informationen finden Sie unter Überprüfung der Berechtigungen für ec2:RunInstances und iam:PassRole.

Die folgenden Beispiele zeigen Richtlinienanweisungen, die Sie verwenden können, um den Zugriff von IAM-Benutzern auf Startvorlagen zu steuern.

Verlangen, dass Startvorlagen ein bestimmtes Tag haben

Beim Gewähren von ec2:RunInstances-Berechtigungen können Sie festlegen, dass Benutzer nur Startvorlagen mit bestimmten Tags oder bestimmten IDs verwenden können, um Berechtigungen beim Starten von Instances mit einer Startvorlage zu beschränken. Sie können auch das AMI und andere Ressourcen steuern, auf die jeder, der Startvorlagen verwendet, beim Starten von Instances verweisen und diese verwenden kann, indem Sie zusätzliche Berechtigungen auf Ressourcenebene für den RunInstances-Aufruf angeben.

Das folgende Beispiel schränkt die Berechtigungen für die Aktion ec2:RunInstances auf das Starten von Vorlagen ein, die sich in der angegebenen Region befinden und die das Tag purpose=testing haben. Außerdem erhalten Benutzer Zugriff auf die in einer Startvorlage angegebenen Ressourcen: AMIs, Instance-Typen, Volumes, Schlüsselpaare, Netzwerkschnittstellen und Sicherheitsgruppen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:launch-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account-id:instance/*", "arn:aws:ec2:region:account-id:subnet/*", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/*" ] } ] }

Weitere Informationen zur Verwendung von tagbasierten Richtlinien mit Startvorlagen finden Sie unter Steuern des Zugriffs auf Startvorlagen mit IAM-Berechtigungen im Amazon EC2 EC2-Benutzerhandbuch.

Eine Startvorlage und eine Versionsnummer verlangen

Sie können IAM-Berechtigungen auch verwenden, um zu erzwingen, dass beim Erstellen oder Aktualisieren von Auto-Scaling-Gruppen eine Startvorlage und die Versionsnummer der Startvorlage angegeben werden müssen.

Im folgenden Beispiel können Benutzer Auto-Scaling-Gruppen nur erstellen und aktualisieren, wenn eine Startvorlage und die Versionsnummer der Startvorlage angegeben sind. Wenn Benutzer mit dieser Richtlinie die Versionsnummer weglassen, um entweder die Version der Startvorlage $Latest oder $Default anzugeben, oder versuchen, stattdessen eine Startkonfiguration zu verwenden, schlägt die Aktion fehl.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" } } }, { "Effect": "Deny", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:LaunchConfigurationName": "false" } } } ] }

Vorschreiben der Verwendung von Instance Metadata Service Version 2 (IMDSv2)

Für zusätzliche Sicherheit können Sie die Berechtigungen Ihrer Benutzer so festlegen, dass eine Startvorlage verwendet werden muss, für die IMDSv2 erforderlich ist. Weitere Informationen finden Sie unter Konfiguration des Instance-Metadaten-Service im Amazon EC2 EC2-Benutzerhandbuch.

Das folgende Beispiel legt fest, dass der Benutzer die Aktion ec2:RunInstances nur aufrufen kann, wenn für die Instance ebenfalls die Verwendung von IMDSv2 (angegeben durch "ec2:MetadataHttpTokens":"required") erforderlich ist.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireImdsV2", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:MetadataHttpTokens": "required" } } } ] }
Tipp

Um zu erzwingen, dass Ersatz-Instances von Auto Scaling gestartet werden, die eine neue Startvorlage oder eine neue Version einer Startvorlage mit den konfigurierten Instance-Metadatenoptionen verwenden, können Sie eine Instance-Aktualisierung starten. Weitere Informationen finden Sie unter Aktualisieren von Auto-Scaling-Instances.

Beschränken des Zugriffs auf Amazon EC2-Ressourcen

Das folgende Beispiel steuert die Konfiguration der Instances, die ein Benutzer starten kann, indem der Zugriff auf Amazon EC2-Ressourcen eingeschränkt wird. Um Berechtigungen auf Ressourcenebene für Ressourcen festzulegen, die in einer Startvorlage angegeben sind, müssen Sie die Ressourcen in die RunInstances-Aktionsanweisung aufnehmen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account-id:launch-template/*", "arn:aws:ec2:region::image/ami-04d5cc9b88example", "arn:aws:ec2:region:account-id:subnet/subnet-1a2b3c4d", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/sg-903004f88example" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } } ] }

In diesem Beispiel gibt es zwei Anweisungen:

  • Die erste Anweisung erfordert, dass Benutzer Instances in einem bestimmten Subnetz (subnet-1a2b3c4d) starten und dabei eine bestimmte Sicherheitsgruppe (sg-903004f88example) und ein bestimmtes AMI (ami-04d5cc9b88example) verwenden. Außerdem erhalten die Benutzer Zugriff auf die in einer Startvorlage angegebenen Ressourcen: Netzwerkschnittstellen, Schlüsselpaare und Volumes.

  • Die zweite Anweisung ermöglicht es den Benutzern, Instances nur mit den Instance-Typen t2.micro und t2.small zu starten, was aus Kostengründen sinnvoll ist.

    Beachten Sie jedoch, dass es derzeit keine effektive Methode gibt, um Benutzer, die berechtigt sind, Instances mit einer Startvorlage zu starten, vollständig daran zu hindern, andere Instance-Typen zu starten. Dies liegt daran, dass ein in einer Startvorlage angegebener Instance-Typ überschrieben werden kann, sodass Instance-Typen verwendet werden, die mithilfe der attributbasierten Instance-Typauswahl definiert wurden.

Eine vollständige Liste der Berechtigungen auf Ressourcenebene, mit denen Sie die Konfiguration der Instances steuern können, die ein Benutzer starten kann, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon EC2 in der Referenz der Serviceberechtigung.

Erforderliche Berechtigungen zum Markieren von Instances und Volumes

Das folgende Beispiel ermöglicht es Benutzern, Instances und Volumes bei der Erstellung zu kennzeichnen. Diese Richtlinie wird benötigt, wenn in der Startvorlage Tags angegeben sind. Weitere Informationen finden Sie unter Erteilen der Erlaubnis, Ressourcen während der Erstellung zu kennzeichnen im Amazon EC2 EC2-Benutzerhandbuch.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:region:account-id:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }

Zusätzliche Berechtigungen für Startvorlagen

Sie müssen Ihren Konsolenbenutzern Berechtigungen für die ec2:DescribeLaunchTemplates- und ec2:DescribeLaunchTemplateVersions-Aktionen gewähren. Ohne diese Berechtigungen können Startvorlagendaten nicht im Auto Scaling-Gruppen-Assistenten geladen werden, und Benutzer können den Assistenten nicht durchlaufen, um Instances mithilfe einer Startvorlage zu starten. Sie können diese zusätzlichen Aktionen im Action-Element einer IAM-Richtlinienanweisung angeben.

Überprüfung der Berechtigungen für ec2:RunInstances und iam:PassRole

Benutzer können angeben, welche Version einer Startvorlage ihre Auto-Scaling-Gruppe verwendet. Je nach ihren Berechtigungen kann es sich dabei um eine bestimmte nummerierte Version oder um die Version $Latest oder $Default der Startvorlage handeln. Wenn Letzteres der Fall ist, seien Sie besonders vorsichtig. Dies kann die Berechtigungen für ec2:RunInstances und iam:PassRole, die Sie einschränken wollten, außer Kraft setzen.

In diesem Abschnitt wird das Szenario der Verwendung der neuesten oder Standardversion der Startvorlage mit einer Auto-Scaling-Gruppe erläutert.

Wenn ein Benutzer die CreateAutoScalingGroup-, UpdateAutoScalingGroup- oder StartInstanceRefresh-APIs aufruft, prüft Amazon EC2 Auto Scaling seine Berechtigungen anhand der Version der Startvorlage, die zu diesem Zeitpunkt die neueste oder die Standardversion ist, bevor es mit der Anforderung fortfährt. Dadurch werden die Berechtigungen für Aktionen validiert, die beim Starten von Instances abgeschlossen werden müssen, wie z. B. die Aktionen ec2:RunInstances und iam:PassRole. Um dies zu erreichen, führen wir einen Amazon EC2 RunInstancesEC2-Probelauf durch, um zu überprüfen, ob der Benutzer über die erforderlichen Berechtigungen für die Aktion verfügt, ohne die Anfrage tatsächlich zu stellen. Wenn eine Antwort zurückgegeben wird, wird sie von Amazon EC2 Auto Scaling gelesen. Wenn die Berechtigungen des Benutzers eine bestimmte Aktion nicht zulassen, lässt Amazon EC2 Auto Scaling die Anfrage fehlschlagen und gibt dem Benutzer eine Fehlermeldung mit Informationen über die fehlende Berechtigung zurück.

Nach Abschluss der ersten Überprüfung und Anforderung startet Amazon EC2 Auto Scaling Instances bei jedem Start mit der neuesten Version oder Standardversion, auch wenn sie sich geändert hat. Dabei werden die Berechtigungen der serviceverknüpften Rolle verwendet. Das bedeutet, dass ein Benutzer, der die Startvorlage verwendet, diese möglicherweise aktualisieren kann, um eine IAM-Rolle an eine Instance zu übergeben, auch wenn er nicht über die iam:PassRole-Berechtigung verfügt.

Verwenden Sie den autoscaling:LaunchTemplateVersionSpecified-Bedingungsschlüssel, wenn Sie einschränken möchten, wer Zugriff auf die Konfiguration von Gruppen hat, um die Version $Latest oder $Default zu verwenden. Dadurch wird sichergestellt, dass die Auto-Scaling-Gruppe nur eine bestimmte nummerierte Version akzeptiert, wenn ein Benutzer die APIs CreateAutoScalingGroup und UpdateAutoScalingGroup aufruft. Ein Beispiel, das zeigt, wie dieser Bedingungsschlüssel zu einer IAM-Richtlinie hinzugefügt wird, finden Sie unter Eine Startvorlage und eine Versionsnummer verlangen.

Für Auto-Scaling-Gruppen, die für die Verwendung der Startvorlagenversion $Latest oder $Default konfiguriert sind, sollten Sie einschränken, wer Versionen der Startvorlage erstellen und verwalten kann, einschließlich der ec2:ModifyLaunchTemplate-Aktion, die es einem Benutzer ermöglicht, die Standardversion der Startvorlage anzugeben. Weitere Informationen finden Sie unter Steuern von Versionsberechtigungen im Amazon EC2 EC2-Benutzerhandbuch.

Weitere Informationen zu Berechtigungen zum Anzeigen, Erstellen und Löschen von Startvorlagen und Startvorlagenversionen finden Sie unter Steuern des Zugriffs auf Startvorlagen mit IAM-Berechtigungen im Amazon EC2 EC2-Benutzerhandbuch.

Weitere Informationen zu Berechtigungen auf Ressourcenebene, mit denen Sie den Zugriff auf den RunInstances-Aufruf steuern können, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon EC2 in der Referenz der Serviceberechtigung.