Erforderliche IAM-Berechtigungen für Amazon-EC2-Startvorlagen
Mit IAM-Berechtigungen können Sie steuern, ob Benutzer Startvorlagen oder Versionen von Startvorlagen auflisten, anzeigen, erstellen oder löschen können.
Wichtig
Sie können Berechtigungen auf Ressourcenebene nicht verwenden, um die Ressourcen einzuschränken, die Benutzer in einer Startvorlage angeben können, wenn sie eine Startvorlage oder eine Startvorlagenversion erstellen. Stellen Sie daher sicher, dass nur vertrauenswürdigen Administratoren die Berechtigung zum Erstellen von Startvorlagen und Startvorlagenversionen gewährt wird.
Sie müssen allen Personen, die eine Startvorlage verwenden, die erforderlichen Berechtigungen zum Erstellen und Zugreifen auf die in der Startvorlage angegebenen Ressourcen gewähren. Beispielsweise:
-
Um eine Instance aus einem freigegebenen privaten Amazon Machine Image (AMI) zu starten, muss der Benutzer über die Startberechtigung für das AMI verfügen.
-
Um EBS-Volumes mit Tags aus vorhandenen Snapshots zu erstellen, muss der Benutzer über Lesezugriff auf die Snapshots sowie über Berechtigungen zum Erstellen und Markieren von Volumes verfügen.
Inhalt
ec2:CreateLaunchTemplate
Um eine Startvorlage in der Konsole oder mithilfe der APIs zu erstellen, muss der Prinzipal über die ec2:CreateLaunchTemplate
-Berechtigung in einer IAM-Richtlinie verfügen. Verwenden Sie nach Möglichkeit Tags, um den Zugriff auf die Startvorlagen in Ihrem Konto zu steuern.
Beispielsweise gewährt die folgende IAM-Richtlinienanweisung dem Prinzipal nur dann die Berechtigung, Startvorlagen zu erstellen, wenn die Vorlage das angegebene Tag verwendet (
=purpose
).testing
{ "Sid": "IAMPolicyForCreatingTaggedLaunchTemplates", "Action": "ec2:CreateLaunchTemplate", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/
purpose
": "testing
" } } }
Prinzipale, die Schlüssel erstellen, benötigen möglicherweise einige verwandte Berechtigungen, wie beispielsweise:
-
ec2:CreateTags – Um der Startvorlage während des
CreateLaunchTemplate
-Vorgangs Tags hinzuzufügen, muss derCreateLaunchTemplate
-Aufrufer über dieec2:CreateTags
-Berechtigung in einer IAM-Richtlinie verfügen. -
ec2:RunInstances – Um EC2-Instances über die von ihnen erstellte Startvorlage zu starten, muss der Prinzipal auch über die
ec2:RunInstances
-Berechtigung in einer IAM-Richtlinie verfügen.
Bei Aktionen zur Ressourcenerstellung, die Tags anwenden, müssen Benutzer über ec2:CreateTags
-Berechtigungen verfügen. Die folgende IAM-Richtlinienanweisung verwendet den Bedingungsschlüssel ec2:CreateAction
, um Benutzern das Erstellen von Tags nur im Kontext von CreateLaunchTemplate
zu ermöglichen. Die Benutzer können keine vorhandenen Startvorlagen oder andere Ressourcen kennzeichnen. Weitere Informationen finden Sie unter Berechtigung zum Markieren von Amazon-EC2-Ressourcen während der Erstellung erteilen.
{ "Sid": "IAMPolicyForTaggingLaunchTemplatesOnCreation", "Action": "ec2:CreateTags", "Effect": "Allow", "Resource": "arn:aws:ec2:
region
:account-id
:launch-template/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateLaunchTemplate" } } }
Der IAM-Benutzer, der eine Startvorlage erstellt, verfügt nicht automatisch über die Berechtigung, die von ihm erstellte Startvorlage zu verwenden. Wie jeder andere Prinzipal muss der Ersteller der Startvorlage eine Berechtigung über eine IAM-Richtlinie erhalten. Wenn ein IAM-Benutzer eine EC2-Instance über eine Startvorlage starten möchte, muss er über die ec2:RunInstances
-Berechtigung verfügen. Beim Gewähren dieser Berechtigungen können Sie festlegen, dass Benutzer nur Startvorlagen mit bestimmten Tags oder bestimmten IDs 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 Berechtigungen auf Ressourcenebene für den RunInstances
-Aufruf angeben. Beispiele für Richtlinien finden Sie unter Startvorlagen.
ec2:DescribeLaunchTemplates
Um Startvorlagen im Konto anzuzeigen und aufzulisten, muss der Prinzipal über die ec2:DescribeLaunchTemplates
-Berechtigung in einer IAM-Richtlinie verfügen. Da Describe
-Aktionen keine Berechtigungen auf Ressourcenebene unterstützen, müssen sie Sie ohne Bedingungen angeben, und der Wert des Ressourcenelements in der Richtlinie muss "*"
sein.
Beispielsweise gewährt die folgende IAM-Richtlinienanweisung dem Prinzipal die Berechtigung, alle Startvorlagen im Konto anzuzeigen und aufzulisten.
{ "Sid": "IAMPolicyForDescribingLaunchTemplates", "Action": "ec2:DescribeLaunchTemplates", "Effect": "Allow", "Resource": "*" }
ec2:DescribeLaunchTemplateVersions
Prinzipale, die Startvorlagen aufrufen, sollten auch über die ec2:DescribeLaunchTemplateVersions
-Berechtigung verfügen, den gesamten Satz von Attributen abzurufen, aus denen die Startvorlagen bestehen.
Um Startvorlagenversionen im Konto anzuzeigen und aufzulisten, muss der Prinzipal über die ec2:DescribeLaunchTemplateVersions
-Berechtigung in einer IAM-Richtlinie verfügen. Da Describe
-Aktionen keine Berechtigungen auf Ressourcenebene unterstützen, müssen sie Sie ohne Bedingungen angeben, und der Wert des Ressourcenelements in der Richtlinie muss "*"
sein.
Beispielsweise gewährt die folgende IAM-Richtlinienanweisung dem Prinzipal die Berechtigung, alle Startvorlagenversionen im Konto anzuzeigen und aufzulisten.
{ "Sid": "IAMPolicyForDescribingLaunchTemplateVersions", "Effect": "Allow", "Action": "ec2:DescribeLaunchTemplateVersions", "Resource": "*" }
ec2:DeleteLaunchTemplate
Wichtig
Seien Sie vorsichtig, wenn Sie Prinzipalen die Berechtigung zum Löschen einer Ressource gewähren. Das Löschen einer Startvorlage kann zu einem Fehler in einer AWS-Ressource führen, die auf der Startvorlage basiert.
Um eine Startvorlage zu löschen muss der Prinzipal über die ec2:DeleteLaunchTemplate
-Berechtigung in einer IAM-Richtlinie verfügen. Wann immer möglich, verwenden Sie Bedingungsschlüssel, um die Berechtigungen einzuschränken.
Die folgende IAM-Richtlinienanweisung gewährt dem Prinzipal beispielsweise nur dann die Berechtigung, Startvorlagen zu löschen, wenn die Vorlage das angegebene Tag verwendet (
=purpose
).testing
{ "Sid": "IAMPolicyForDeletingLaunchTemplates", "Action": "ec2:DeleteLaunchTemplate", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/
purpose
": "testing
" } } }
Alternativ können Sie ARNs verwenden, um die Startvorlage zu identifizieren, auf die die IAM-Richtlinie angewendet wird.
Eine Startvorlage verfügt über den folgenden ARN.
"Resource": "arn:aws:ec2:
region
:account-id
:launch-template/lt-09477bcd97b0d310e
"
Sie können mehrere ARNs angeben, indem Sie sie in eine Liste einschließen, oder Sie können einen Resource
-Wert von "*"
ohne das Condition
-Element angeben, damit der Prinzipal alle Startvorlagen im Konto löschen kann.
Steuern von Berechtigungen für Versionsverwaltung
Vertrauenswürdigen Administratoren können Sie Zugriff zum Erstellen und Löschen von Versionen einer Startvorlage sowie zum Ändern der Standardversion einer Startvorlage gewähren, indem Sie IAM-Richtlinien ähnlich den folgenden Beispielen verwenden.
Wichtig
Seien Sie vorsichtig, wenn Sie Prinzipalen die Berechtigung gewähren, Versionen von Startvorlagen zu erstellen oder Startvorlagen zu ändern.
-
Wenn Sie eine Startvorlagenversion erstellen, wirkt sich dies auf alle AWS-Ressourcen aus, die Amazon EC2 das Starten von Instances in Ihrem Namen mit der
Latest
-Version ermöglichen. -
Wenn Sie eine Startvorlage ändern, können Sie ändern, welche Version die
Default
-Version ist, und sich daher auf alle AWS-Ressourcen auswirken, die es Amazon EC2 ermöglichen, Instances in Ihrem Namen mit dieser geänderten Version zu starten.
Sie müssen auch vorsichtig sein, wie Sie mit AWS-Ressourcen umgehen, die mit der Latest
oder Default
Startvorlagenversion interagieren, wie zum Beispiel EC2-Flottte und Spot-Flotte. Wenn für Latest
oder Default
eine andere Startvorlagenversion verwendet wird, überprüft Amazon EC2 die Benutzerberechtigungen nicht erneut auf auszuführende Aktionen, wenn neue Instances gestartet werden, um die Zielkapazität der Flotte zu erfüllen, da keine Benutzerinteraktion mit der AWS-Ressource erfolgt. Indem einem Benutzer die Berechtigung zum Aufrufen der APIs CreateLaunchTemplateVersion
und ModifyLaunchTemplate
gewährt wird, wird dem Benutzer effektiv auch die iam:PassRole
-Berechtigung gewährt, wenn er die Flotte auf eine andere Startvorlagenversion verweist, die ein Instance-Profil (einen Container für eine IAM-Rolle) enthält. Dies bedeutet, dass ein Benutzer potenziell eine Startvorlage aktualisieren kann, um eine IAM-Rolle an eine Instance zu übergeben, auch wenn er nicht über die entsprechende iam:PassRole
-Berechtigung verfügt. Sie können dieses Risiko kontrollieren, indem Sie bei der Vergabe von Berechtigungen für die Erstellung und Verwaltung von Startvorlagenversionen vorsichtig vorgehen.
ec2:CreateLaunchTemplateVersion
Um eine neue Version einer Startvorlage zu erstellen, muss der Prinzipal über die ec2:CreateLaunchTemplateVersion
-Berechtigung für die Startvorlage in einer IAM-Richtlinie verfügen.
Die folgende IAM-Richtlinienerklärung gewährt dem Prinzipal beispielsweise nur dann die Berechtigung, Startvorlagenversionen zu erstellen, wenn die Version das angegebene Tag verwendet (
=environment
). Alternativ können Sie eine oder mehrere Startvorlagen-ARNs angeben, oder Sie können einen production
Resource
-Wert von "*"
ohne das Condition
-Element angeben, damit der Prinzipal Versionen jeder Startvorlage im Konto erstellen kann.
{ "Sid": "IAMPolicyForCreatingLaunchTemplateVersions", "Action": "ec2:CreateLaunchTemplateVersion", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/
environment
": "production
" } } }
ec2:DeleteLaunchTemplateVersion
Wichtig
Wie immer sollten Sie Vorsicht walten lassen, wenn Sie Prinzipalen die Berechtigung zum Löschen einer Ressource erteilen. Das Löschen einer Startvorlage kann zu einem Fehler in einer AWS-Ressource führen, die auf der Startvorlagenversion basiert.
Um eine neue Version einer Startvorlagenversion zu erstellen, muss der Prinzipal über die ec2:DeleteLaunchTemplateVersion
-Berechtigung für die Startvorlage in einer IAM-Richtlinie verfügen.
Die folgende IAM-Richtlinienerklärung gewährt dem Prinzipal beispielsweise nur dann die Berechtigung, Startvorlagenversionen zu löschen, wenn die Version das angegebene Tag verwendet (
=environment
). Alternativ können Sie eine oder mehrere Startvorlagen-ARNs angeben, oder Sie können einen production
Resource
-Wert von "*"
ohne das Condition
-Element angeben, damit der Prinzipal Versionen jeder Startvorlage im Konto löschen kann.
{ "Sid": "IAMPolicyForDeletingLaunchTemplateVersions", "Action": "ec2:DeleteLaunchTemplateVersion", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/
environment
": "production
" } } }
ec2:ModifyLaunchTemplate
Um die mit einer Startvorlage zugeordnete Default
-Version zu ändern, muss der Prinzipal über die ec2:ModifyLaunchTemplate
-Berechtigung für die Startvorlage in einer IAM-Richtlinie verfügen.
Die folgende IAM-Richtlinienerklärung gewährt dem Prinzipal beispielsweise nur dann die Berechtigung, Startvorlagen zu ändern, wenn die Vorlage das angegebene Tag verwendet (
=environment
). Alternativ können Sie eine oder mehrere Startvorlagen-ARNs angeben, oder Sie können einen production
Resource
-Wert von "*"
ohne das Condition
-Element angeben, damit der Prinzipal jede Startvorlage im Konto ändern kann.
{ "Sid": "IAMPolicyForModifyingLaunchTemplates", "Action": "ec2:ModifyLaunchTemplate", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/
environment
": "production
" } } }
Steuern des Zugriffs auf Tags in Startvorlagen
Sie können Bedingungsschlüssel verwenden, um Tagging-Berechtigungen einzuschränken, wenn es sich bei der Ressource um eine Startvorlage handelt. Die folgende IAM-Richtlinie erlaubt beispielsweise nur das Entfernen des Tags mit dem
-Schlüssel aus Startvorlagen im angegebenen Konto und in der angegebenen Region.temporary
{ "Sid": "IAMPolicyForDeletingTagsOnLaunchTemplates", "Action": "ec2:DeleteTags", "Effect": "Allow", "Resource": "arn:aws:ec2:
region
:account-id
:launch-template/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["temporary
"] } } }
Weitere Informationen zu Bedingungsschlüsseln, mit denen Sie die Tag-Schlüssel und -Werte steuern können, die auf Amazon-EC2-Ressourcen angewendet werden können, finden Sie unter Kontrollieren des Zugriffs auf bestimmte Tags (Markierungen).