Steuern Sie die Verwendung von EC2 Amazon-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 EC2 Amazon-Startvorlagen in Auto Scaling Scaling-Gruppen

Amazon EC2 Auto Scaling unterstützt die Verwendung von EC2 Amazon-Startvorlagen mit Ihren Auto Scaling Scaling-Gruppen. Wir empfehlen, Benutzern das Erstellen von Auto Scaling-Gruppen anhand von Startvorlagen zu ermöglichen, da sie dadurch die neuesten Funktionen von Amazon EC2 Auto Scaling und Amazon nutzen könnenEC2. 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 vollständigen Zugriff auf die Arbeit mit Amazon EC2 Auto Scaling Scaling-Ressourcen, Startvorlagen und anderen EC2 Ressourcen in ihrem Konto zu gewähren. Oder Sie können Ihre eigenen benutzerdefinierten IAM Richtlinien erstellen, um Benutzern detaillierte Berechtigungen für die Arbeit mit Startvorlagen zu gewähren, 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.

IAMIdentitäten (Benutzer oder Rollen) mit dieser Richtlinie sind berechtigt, eine Auto Scaling Scaling-Gruppe mithilfe einer Startvorlage zu erstellen oder zu aktualisieren, da ihnen auch die Berechtigung zur Verwendung der ec2:RunInstances Aktion erteilt wurde.

{ "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, mit denen Sie den Zugriff von IAM Benutzern mithilfe von Startvorlagen steuern können.

Verlangen, dass Startvorlagen ein bestimmtes Tag haben

Bei der Erteilung von ec2:RunInstances Berechtigungen können Sie angeben, dass Benutzer beim Starten von Instances mit einer Startvorlage nur Startvorlagen mit bestimmten Tags oder nur spezifische, IDs um Berechtigungen einzuschränken, verwenden können. Sie können auch steuern, auf welche AMI und andere Ressourcen jeder, der Startvorlagen verwendet, beim Starten von Instances verweisen und diese verwenden kann, indem Sie zusätzliche Berechtigungen auf Ressourcenebene für den RunInstances Anruf 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: Instance-TypenAMIs, 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 EC2Amazon-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 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" } } } ] }

Erfordert die Verwendung des Instanz-Metadatendienstes Version 2 (IMDSv2)

Für zusätzliche Sicherheit können Sie die Berechtigungen Ihrer Benutzer so einrichten, dass sie die Verwendung einer Startvorlage erfordern, die Folgendes erfordertIMDSv2. Weitere Informationen finden Sie unter Konfiguration des Instance-Metadaten-Service im EC2Amazon-Benutzerhandbuch.

Das folgende Beispiel legt fest, dass Benutzer die ec2:RunInstances Aktion nur aufrufen können, wenn für die Instance auch die Verwendung von aktiviert wurde IMDSv2 (angegeben durch"ec2:MetadataHttpTokens":"required").

{ "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 Sie den Zugriff auf EC2 Amazon-Ressourcen

Das folgende Beispiel steuert die Konfiguration der Instances, die ein Benutzer starten kann, indem der Zugriff auf EC2 Amazon-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, dabei eine bestimmte Sicherheitsgruppe (sg-903004f88example) und eine bestimmte 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 Service Authorization Reference.

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 im EC2Amazon-Benutzerhandbuch unter Erteilen der Erlaubnis, Ressourcen während der Erstellung zu kennzeichnen.

{ "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 Maßnahmen im Action Element einer IAM Grundsatzerklärung 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, oder StartInstanceRefresh APIs aufruft CreateAutoScalingGroupUpdateAutoScalingGroup, überprüft Amazon EC2 Auto Scaling seine Berechtigungen anhand der Version der Startvorlage, die zu diesem Zeitpunkt die neueste Version oder Standardversion ist, bevor es mit der Anfrage 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 Testlauf EC2 RunInstancesbei Amazon 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, schlägt Amazon EC2 Auto Scaling die Anfrage fehl 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, und verwendet dabei die Berechtigungen der serviceverknüpften Rolle. Das bedeutet, dass ein Benutzer, der die Startvorlage verwendet, sie möglicherweise aktualisieren könnte, um eine IAM Rolle an eine Instance zu übergeben, auch wenn er nicht über die iam:PassRole entsprechende 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 Scaling-Gruppe nur eine bestimmte nummerierte Version akzeptiert, wenn ein Benutzer CreateAutoScalingGroup und aufruft UpdateAutoScalingGroupAPIs. Ein Beispiel, das zeigt, wie dieser Bedingungsschlüssel zu einer IAM Richtlinie hinzugefügt wird, finden Sie unterEine 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 EC2Amazon-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 EC2Amazon-Benutzerhandbuch.

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