Erteilen der Berechtigung zum Markieren von Ressourcen während der Erstellung - Amazon Elastic Compute Cloud

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.

Erteilen der Berechtigung zum Markieren von Ressourcen während der Erstellung

Mit einigen Amazon EC2-API-Aktionen zur Ressourcenerstellung können Sie Tags beim Erstellen der Ressource angeben. Sie können Resource-Tags verwenden, um eine attributbasierte Steuerung (ABAC) zu implementieren. Weitere Informationen finden Sie unter Markieren Sie Ihre Ressourcen mit Tags und Steuerung des Zugriffs auf EC2-Ressourcen mithilfe von Ressourcen-Tags.

Damit Benutzer diese Möglichkeit erhalten, benötigen sie die Berechtigungen zum Verwenden der Aktion, die die Ressource wie ec2:RunInstances oder ec2:CreateVolume erstellt. Wenn Tags in der Aktion angegeben werden, mit der die Ressource erstellt wird, führt Amazon eine zusätzliche Autorisierung für die ec2:CreateTags-Aktion aus, um die Berechtigungen der Benutzer zum Erstellen von Tags zu überprüfen. Daher benötigen die Benutzer außerdem die expliziten Berechtigungen zum Verwenden der ec2:CreateTags-Aktion.

Verwenden Sie in der IAM-Richtliniendefinition für die ec2:CreateTags-Aktion das Condition-Element mit dem ec2:CreateAction-Bedingungsschlüssel, um der Aktion, die die Ressource erstellt, Markierungsberechtigungen zu erteilen.

Die folgende Beispiel zeigt eine Richtlinie, die es Benutzern erlaubt, Instances zu starten und Instances und Volumes während des Starts beliebige Tags hinzuzufügen. Die Markierung von bestehenden Ressourcen durch die Benutzer ist nicht zulässig. (Sie können die ec2:CreateTags-Aktion nicht direkt aufrufen.)

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

In ähnlicher Weise erlaubt die folgende Richtline Benutzern, Volumes zu erstellen und ihnen dabei beliebige Tags hinzuzufügen. Die Markierung von bestehenden Ressourcen durch die Benutzer ist nicht zulässig. (Sie können die ec2:CreateTags-Aktion nicht direkt aufrufen.)

{ "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateVolume" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:region:account:*/*", "Condition": { "StringEquals": { "ec2:CreateAction" : "CreateVolume" } } } ] }

Die ec2:CreateTags-Aktion wird nur ausgewertet, wenn die Tags während der Aktion zur Ressourcenerstellung angewendet werden. Folglich benötigt ein Benutzer, der über die Berechtigungen zum Erstellen einer Ressource verfügt (vorausgesetzt, es bestehen keine Markierungsbedingungen), keine Berechtigungen zur Verwendung der ec2:CreateTags-Aktion, wenn keine Tags in der Anforderung angegeben werden. Wenn der Benutzer allerdings versucht, eine Ressource mit Tags zu erstellen, schlägt die Anforderung fehl, wenn der Benutzer nicht über die Berechtigungen für die ec2:CreateTags-Aktion verfügt.

Die ec2:CreateTags-Aktion wird auch ausgewertet, wenn Tags in einer Startvorlage bereitgestellt werden. Eine Beispielrichtlinie finden Sie unter Tags in einer Startvorlage.

Kontrollieren des Zugriffs auf bestimmte Tags

Sie können zusätzliche Bedingungen im Condition-Element Ihrer IAM-Richtlinien verwenden, um die Tag-Schlüssel und -Werte zu steuern, die auf Ressourcen angewendet werden können.

Die folgenden Bedingungsschlüssel können mit den Beispielen im vorangegangenen Abschnitt verwendet werden:

  • aws:RequestTag: Gibt an, dass eine Anforderung einen bestimmten Tag-Schlüssel oder Tag-Schlüssel und -Wert enthalten muss. In der Anforderung können auch andere Tags angegeben werden.

    • Zusammen mit dem StringEquals-Bedingungsoperator können Sie eine bestimmte Tag-Schlüssel- und -Wert-Kombination erzwingen, z. B. den Tag cost-center=cc123:

      "StringEquals": { "aws:RequestTag/cost-center": "cc123" }
    • In Kombination mit dem StringLike-Bedingungsoperator erzwingen Sie einen bestimmten Tag-Schlüssel in der Anforderung, beispielsweise den Tag-Schlüssel purpose:

      "StringLike": { "aws:RequestTag/purpose": "*" }
  • aws:TagKeys: Erzwingt die Tag-Schlüssel, die in der Anforderung verwendet werden.

    • Verwenden Sie diesen Bedingungsschlüssel mit dem ForAllValues-Modifikator, um bestimmte Tag-Schlüssel zu erzwingen, die in der Anforderung bereitgestellt werden (wenn in der Anforderung Tags angegeben werden, sind nur bestimmte Tags erlaubt und keine anderen Tags gestattet). Im folgenden Beispiel sind die Tag-Schlüssel environment oder cost-center erlaubt:

      "ForAllValues:StringEquals": { "aws:TagKeys": ["environment","cost-center"] }
    • Zusammen mit dem ForAnyValue-Modifikator wird erzwungen, dass die Anforderung mindestens einen der angegebenen Tag-Schlüssel umfassen muss. Zum Beispiel muss mindestens einer der Tag-Schlüssel environment und webserver in der Anforderung enthalten sein:

      "ForAnyValue:StringEquals": { "aws:TagKeys": ["environment","webserver"] }

Diese Bedingungsschlüssel können auf Aktionen zur Ressourcenerstellung, die Markierungen unterstützen, sowie ec2:CreateTags- und ec2:DeleteTags-Aktionen angewendet werden. Informationen darüber, ob eine Amazon EC2-API-Aktion das Markieren unterstützt, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon EC2.

Wenn Sie erzwingen möchten, dass die Benutzer beim Erstellen einer Ressource Tags angeben, müssen Sie den aws:RequestTag-Bedingungsschlüssel oder den aws:TagKeys-Bedingungsschlüssel mit dem ForAnyValue-Modifikator für die Aktion zur Erstellung von Ressourcen verwenden. Wenn ein Benutzer für diese Aktion zur Ressourcenerstellung keine Tags angibt, wird die ec2:CreateTags-Aktion nicht ausgewertet.

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-Schlüssel als Wert dieser Bedingung an, wenn Sie die Berücksichtigung der Groß- und Kleinschreibung für einen Tag-Schlüssel erzwingen möchten.

Beispiele für IAM-Richtlinien finden Sie unter Beispielrichtlinien für das Arbeiten mit der AWS CLI oder einem AWS-SDK. Weitere Informationen zu Bedingungen mit mehreren Werten erhalten Sie unter Erstellen einer Bedingung zum Testen von mehreren Schlüsselwerten im IAM-Benutzerhandbuch.