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önnen EC2. 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. 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
verwendet. Diese gewährt dann Berechtigung für alle purpose=testing
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:
-
ec2: CreateTags — Um den Instances und Volumes bei der Erstellung Tags hinzuzufügen, muss der Benutzer über die
ec2:CreateTags
entsprechende Berechtigung in einer IAM-Richtlinie verfügen. Weitere Informationen finden Sie unter Erforderliche Berechtigungen zum Markieren von Instances und Volumes. -
iam: PassRole — Um EC2 Instances von einer Startvorlage aus zu starten, die ein Instance-Profil (einen Container für eine IAM-Rolle) enthält, muss der Benutzer auch über die
iam:PassRole
entsprechende Berechtigung in einer IAM-Richtlinie verfügen. Weitere Informationen und eine IAM-Beispielrichtlinie finden Sie unter IAM-Rolle für Anwendungen, die auf EC2 Amazon-Instances ausgeführt werden. -
ssm: GetParameters — Um EC2 Instances von einer Startvorlage aus zu starten, die einen AWS Systems Manager Parameter verwendet, muss der Benutzer auch über die
ssm:GetParameters
entsprechende Berechtigung in einer IAM-Richtlinie verfügen. Weitere Informationen finden Sie unter Verwenden Sie AWS Systems Manager Parameter anstelle von AMI IDs in Startvorlagen.
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.
Themen
- Verlangen, dass Startvorlagen ein bestimmtes Tag haben
- Eine Startvorlage und eine Versionsnummer verlangen
- Erfordert die Verwendung des Instance-Metadatendienstes Version 2 () IMDSv2
- Beschränken Sie den Zugriff auf EC2 Amazon-Ressourcen
- Erforderliche Berechtigungen zum Markieren von Instances und Volumes
- Zusätzliche Berechtigungen für Startvorlagen
- Überprüfung der Berechtigungen für ec2:RunInstances und iam:PassRole
- Zugehörige Ressourcen
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 spezifischen, IDs um Berechtigungen einzuschränken, verwenden können. 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
haben. Außerdem erhalten Benutzer Zugriff auf die in einer Startvorlage angegebenen Ressourcen: Instance-Typen AMIs, Volumes, Schlüsselpaare, Netzwerkschnittstellen und Sicherheitsgruppen. purpose=testing
{ "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 EC2 Amazon-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" } } } ] }
Erfordert die Verwendung des Instance-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 erfordert IMDSv2. Weitere Informationen finden Sie unter Konfiguration des Instance-Metadaten-Service im EC2 Amazon-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
Die folgenden Beispiele zeigen, wie Sie Berechtigungen auf Ressourcenebene und markierte Ressourcen verwenden, um den Zugriff auf EC2 Amazon-Ressourcen einzuschränken.
Beispiel 1: Beschränken Sie den Start von EC2 Amazon-Instances auf bestimmte Ressourcen und Instance-Typen
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 (
) starten und dabei eine bestimmte Sicherheitsgruppe (subnet-1a2b3c4d
) und ein bestimmtes AMI (sg-903004f88example
) verwenden. Außerdem erhalten die Benutzer Zugriff auf die in einer Startvorlage angegebenen Ressourcen: Netzwerkschnittstellen, Schlüsselpaare und Volumes.ami-04d5cc9b88example
-
Die zweite Anweisung ermöglicht es den Benutzern, Instances nur mit den Instance-Typen
undt2.micro
zu starten, was aus Kostengründen sinnvoll ist.t2.small
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.
Beispiel 2: Für den Start von EC2 Amazon-Instances sind Tags erforderlich und der Ressourcenzugriff eingeschränkt
Die folgende Beispielrichtlinie zeigt, wie Sie Bedingungen in Ihrer identitätsbasierten Richtlinie verwenden können, um den Zugriff auf EC2 Amazon-Ressourcen anhand von Tags zu steuern.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceTags", "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:
us-east-1
:555555555555
:instance/*" ], "Condition": { "StringEquals": { "aws:RequestTag/owner": "dev" } } }, { "Sid": "InstanceBoundaries" "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:us-east-1
::image/*", "arn:aws:ec2:us-east-1
:555555555555
:subnet/*", "arn:aws:ec2:us-east-1
:555555555555
:network-interface/*" ], }, { "Sid": "InstanceResourceTags", "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:us-east-1
:555555555555
:key-pair/*", "arn:aws:ec2:us-east-1
:555555555555
:security-group/*", "arn:aws:ec2:us-east-1
:555555555555
:launch-template/*" "arn:aws:ec2:us-east-1
:555555555555
:volume/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } } ] }
In diesem Beispiel gibt es drei Aussagen:
-
Die erste Anweisung ermöglicht es Benutzern, Instances in der angegebenen Region nur dann zu starten, wenn in der Anfrage ein Tag mit verwendet
owner=dev
wird. -
Die zweite Anweisung gewährt Benutzern Zugriff auf das AMI, das Subnetz und die Netzwerkschnittstelle in der angegebenen Region.
-
Die dritte Anweisung ermöglicht es Benutzern, Instances in der angegebenen Region mit einem vorhandenen key pair, einer Sicherheitsgruppe, einer Startvorlage und einem Volume zu starten, die über das Tag verfügen
purpose=testing
.
Weitere Informationen finden Sie unter Steuern des Zugriffs auf AWS Ressourcen mithilfe von Tags im IAM-Benutzerhandbuch.
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 EC2 Amazon-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 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, oder StartInstanceRefresh
APIs aufruft CreateAutoScalingGroup
UpdateAutoScalingGroup
, ü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, 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 Scaling-Gruppe nur dann eine bestimmte nummerierte Version akzeptiert, wenn ein Benutzer CreateAutoScalingGroup
und aufruft UpdateAutoScalingGroup
APIs. 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 EC2 Amazon-Benutzerhandbuch.
Zugehörige Ressourcen
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 EC2 Amazon-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.