Beispiele für identitätsbasierte Amazon EC2 Auto Scaling-Richtlinien - 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.

Beispiele für identitätsbasierte Amazon EC2 Auto Scaling-Richtlinien

Standardmäßig AWS-Konto hat ein brandneuer Benutzer in Ihrem Bereich keine Rechte, etwas zu tun. Ein IAM-Administrator muss IAM-Richtlinien erstellen und zuweisen, die einer IAM-Identität (etwa einem Benutzer oder einer Rolle) die Berechtigung zum Ausführen von API-Aktionen von Amazon EC2 Auto Scaling gewähren.

Informationen dazu, wie Sie unter Verwendung dieser Beispiel-JSON-Richtliniendokumente eine IAM-Richtlinie erstellen, finden Sie unter Erstellen von Richtlinien auf der JSON-Registerkarte im IAM-Benutzerhandbuch.

Dies ist ein Beispiel für eine Berechtigungsrichtlinie.

{ "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*", "Resource": "*" }] }

Diese Beispielrichtlinie gewährt Benutzern Berechtigungen zum Erstellen, Aktualisieren und Löschen von Auto-Scaling-Gruppen, jedoch nur, wenn die Gruppe das Tag purpose=testing verwendet. Da Describe-Aktionen keine Berechtigungen auf Ressourcenebene unterstützen, müssen Sie sie in einer separaten Anweisung ohne Bedingungen angeben. Um Instances mit einer Startvorlage zu starten, muss der Benutzer auch über die ec2:RunInstances-Berechtigung verfügen. Weitere Informationen finden Sie unter Steuern Sie die Verwendung von Amazon EC2 EC2-Startvorlagen in Auto Scaling Scaling-Gruppen.

Anmerkung

Sie können auch eigene benutzerdefinierte IAM-Richtlinien erstellen, um IAM-Identitäten (Benutzern oder Rollen) Berechtigungen zum Ausführen von Amazon-EC2-Auto-Scaling-Aktionen zu gewähren oder zu verweigern. Die benutzerdefinierten Richtlinien können Sie dann den IAM-Identitäten zuweisen, die die angegebenen Berechtigungen fordern. Die folgenden Beispiele zeigen Berechtigungen für einige häufige Anwendungsfälle.

Bei einigen Amazon EC2 Auto Scaling-API-Aktionen lassen sich bestimmte Auto Scaling-Gruppen, die mit der Aktion erstellt oder geändert werden können, in die Richtlinie einbinden. Sie können die Zielressourcen für diese Aktionen einschränken, indem Sie einzelne Auto Scaling-Gruppen-ARNs angeben. Als bewährte Methode empfehlen wir jedoch, tagbasierte Richtlinien zu verwenden, die Aktionen für Auto Scaling-Gruppen mit einem bestimmten Tag zulassen (oder ablehnen).

Steuern Sie die Größe der Auto-Scaling-Gruppen, die erstellt werden können

Die folgende Richtlinie gewährt Berechtigungen zum Erstellen und Aktualisieren aller Auto-Scaling-Gruppen mit dem Tag environment=development, sofern der Anforderer nicht eine Mindestgröße kleiner als 1 oder eine maximale Größe größer als 10 angibt. Verwenden Sie nach Möglichkeit Tags, um den Zugriff auf die Auto-Scaling-Gruppen in Ihrem Konto zu steuern.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "development" }, "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize": 1 }, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize": 10 } } }] }

Wenn Sie den Zugriff auf Auto-Scaling-Gruppen nicht über Tags kontrollieren, können Sie alternativ ARNs verwenden, um die Auto-Scaling-Gruppen zu identifizieren, für welche die IAM-Richtlinie gilt.

Eine Auto Scaling-Gruppe hat den folgenden ARN.

"Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/my-asg"

Sie können auch mehrere ARNs angeben, indem Sie sie in eine Liste einschließen. Weitere Informationen zum Angeben der ARNs von Amazon EC2 Auto-Scaling-Ressourcen im Resource-Element finden Sie unter Richtlinienressourcen für Amazon EC2 Auto Scaling.

Steuern, welche Tag-Schlüssel und Tag-Werte verwendet werden können

Sie können auch Bedingungen in Ihren IAM-Richtlinien verwenden, um die Tag-Schlüssel und Tag-Werte zu steuern, die auf Auto-Scaling-Gruppen angewendet werden können. Verwenden Sie den aws:RequestTag-Bedingungsschlüssel, um Berechtigungen zum Erstellen oder Markieren einer Auto-Scaling-Gruppe nur dann zu gewähren, wenn der Anforderer bestimmte Tags angibt. Um nur bestimmte Tag-Schlüssel zuzulassen, verwenden Sie den Bedingungsschlüssel aws:TagKeys mit dem Modifikator ForAllValues.

Die folgende Richtlinie erfordert, dass der Anforderer in der Anfrage ein Tag mit dem Schlüssel environment angibt. Der Wert "?*" erzwingt, dass ein Wert für den Tag-Schlüssel vorhanden ist. Bei der Verwenden eines Platzhalters müssen Sie den StringLike-Bedingungsoperator verwenden.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/environment": "?*" } } }] }

Die folgende Richtlinie legt fest, dass der Antragssteller nur Auto-Scaling-Gruppen mit den Tags purpose=webserver und cost-center=cc123 kennzeichnen kann und nur die Tags purpose und cost-center zulässt (keine anderen Tags können angegeben werden).

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "webserver", "aws:RequestTag/cost-center": "cc123" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["purpose", "cost-center"] } } }] }

Die folgende Richtlinie erfordert, dass der Anforderer mindestens ein Tag in der Anfrage angibt, und lässt nur die cost-center- und owner-Schlüssel zu.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["cost-center", "owner"] } } }] }
Anmerkung

Bei Bedingungen gilt, dass die Groß- und Kleinschreibung für den Bedingungsschlüssel nicht berücksichtigt und für den Bedingungswert beachtet wird. Verwenden Sie aus diesem Grund den aws:TagKeys-Bedingungsschlüssel und geben Sie den Tag (Markierung)-Schlüssel als Wert dieser Bedingung an, wenn Sie die Berücksichtigung der Groß- und Kleinschreibung für einen Tag (Markierung)-Schlüssel erzwingen möchten.

Steuern Sie, welche Auto-Scaling-Gruppen gelöscht werden können

Die folgende Richtlinie erlaubt das Löschen einer Auto-Scaling-Gruppe nur, wenn die Gruppe über das Tag verfügtenvironment=development.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } }] }

Wenn Sie keine Bedingungsschlüssel verwenden, um den Zugriff auf Auto-Scaling-Gruppen zu steuern, können Sie stattdessen die ARNs der Ressourcen in dem Resource-Element angeben, um den Zugriff zu kontrollieren.

Die folgende Richtlinie gibt Benutzern die Erlaubnis, die DeleteAutoScalingGroup API-Aktion zu verwenden, jedoch nur für Auto-Scaling-Gruppen, deren Name mit devteam- beginnt.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" }] }

Sie können auch mehrere ARNs angeben, indem Sie sie in eine Liste einschließen. Einbeziehung der UUID stellt sicher, dass Zugriff zu der spezifischen Auto Scaling-Gruppe gewährt ist. Die UUID für eine neue Gruppe unterscheidet sich von der UUID für eine gelöschte Gruppe mit demselben Namen.

"Resource": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-1", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-2", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-3" ]

Steuern, welche Skalierungsrichtlinien gelöscht werden können

Die folgende Richtlinie gewährt Berechtigungen zum Verwenden der DeletePolicy-Aktion zum Löschen einer Skalierungsrichtlinie. Es lehnt die Aktion jedoch auch dann ab, wenn die Auto-Scaling-Gruppe, auf welche die Aktion abzielt, über das Tag environment=production verfügt. Verwenden Sie nach Möglichkeit Tags, um den Zugriff auf die Auto-Scaling-Gruppen in Ihrem Konto zu steuern.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeletePolicy", "Resource": "*" }, { "Effect": "Deny", "Action": "autoscaling:DeletePolicy", "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "production" } } }] }

Steuern Sie den Zugriff auf Aktionen zur Instance-Aktualisierung

Die folgende Richtlinie erteilt nur dann Berechtigungen zum Starten, Zurücksetzen und Abbrechen einer Instance-Aktualisierung, wenn die Auto-Scaling-Gruppe, auf welche die Aktion abzielt, über das Tag environment=testing verfügt. Da Describe-Aktionen keine Berechtigungen auf Ressourcenebene unterstützen, müssen Sie sie in einer separaten Anweisung ohne Bedingungen angeben.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:StartInstanceRefresh", "autoscaling:CancelInstanceRefresh", "autoscaling:RollbackInstanceRefresh" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "testing" } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeInstanceRefreshes", "Resource": "*" }] }

Um eine gewünschte Konfiguration im StartInstanceRefresh-Aufruf anzugeben, benötigen Benutzer möglicherweise einige zugehörige Berechtigungen, wie beispielsweise:

Erstellen einer serviceverknüpften Rolle

Amazon EC2 Auto Scaling benötigt Berechtigungen zum Erstellen einer serviceverknüpften Rolle, wenn ein Benutzer in Ihnen zum ersten Mal Amazon EC2 Auto Scaling Scaling-API-Aktionen AWS-Konto aufruft. Wenn die serviceverknüpfte Rolle noch nicht vorhanden ist, erstellt Amazon EC2 Auto Scaling diese in Ihrem Konto. Die serviceverknüpfte Rolle erteilt Amazon EC2 Auto Scaling Berechtigungen, sodass Amazon EC2 Auto Scaling andere in AWS-Services Ihrem Namen anrufen kann.

Damit diese automatische Rollenerstellung möglich ist, müssen Benutzer über Berechtigungen für die Aktion iam:CreateServiceLinkedRole verfügen.

"Action": "iam:CreateServiceLinkedRole"

Im Folgenden wird ein Beispiel für eine Berechtigungsrichtlinie gezeigt, mit der ein Benutzer eine Amazon EC2 Auto Scaling-Rolle für Amazon EC2 Auto Scaling erstellen kann.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling", "Condition": { "StringLike": { "iam:AWSServiceName":"autoscaling.amazonaws.com" } } }] }

Steuern Sie, welche serviceverknüpfte Rolle übergeben werden kann (mit) PassRole

Benutzer, die Auto-Scaling-Gruppen erstellen oder aktualisieren und in der Anfrage eine serviceverknüpfte Rolle mit benutzerdefiniertem Suffix angeben, benötigen die iam:PassRole-Berechtigung.

Sie können die iam:PassRole Berechtigung verwenden, um die Sicherheit Ihrer vom AWS KMS Kunden verwalteten Schlüssel zu schützen, indem Sie verschiedenen dienstbezogenen Rollen Zugriff auf verschiedene Schlüssel gewähren. Abhängig von den Anforderungen Ihrer Organisation haben Sie möglicherweise einen Schlüssel für das Entwicklungsteam, einen weiteren für das QA-Team und einen weiteren für das Finanzteam. Erstellen Sie zunächst eine dienstbezogene Rolle, die Zugriff auf den erforderlichen Schlüssel hat, z. B. eine dienstbezogene Rolle mit dem Namen. AWSServiceRoleForAutoScaling_devteamkeyaccess Fügen Sie dann diese Richtlinie an eine IAM-Identität an, z. B. einen Benutzer oder eine Rolle.

Die folgende Richtlinie gewährt die Berechtigung, die AWSServiceRoleForAutoScaling_devteamkeyaccess Rolle an jede Auto-Scaling-Gruppe weiterzugeben, deren Name mit devteam- beginnt. Wenn die IAM-Identität, die die Auto-Scaling-Gruppe erstellt, versucht, eine andere serviceverknüpfte Rolle anzugeben, wird eine Fehlermeldung ausgegeben. Wenn sie sich dafür entscheiden, keine dienstbezogene Rolle anzugeben, wird stattdessen die AWSServiceRoleForAutoScalingStandardrolle verwendet.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" ] } } }] }

Weitere Informationen zu serviceverknüpfte Rollen mit benutzerdefiniertem Suffix finden Sie unter Serviceverknüpfte Rollen für Amazon EC2 Auto Scaling.