Steuern des Zugriffs auf AWS Ressourcen mithilfe von Tags - AWS Identitäts- und Zugriffsverwaltung

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 des Zugriffs auf AWS Ressourcen mithilfe von Tags

Sie können Tags verwenden, um den Zugriff auf Ihre AWS Ressourcen zu steuern, die Tagging unterstützen, einschließlich IAM-Ressourcen. Sie können IAM-Benutzer und IAM-Rollen markieren, um zu steuern, worauf sie zugreifen können. Weitere Informationen zum Markieren von IAM-Benutzern und IAM-Rollen finden Sie unter Markieren von IAM-Ressourcen. Darüber hinaus können Sie den Zugriff auf die folgenden IAM-Ressourcen steuern: von Kunden verwaltete Richtlinien, IAM-Identitätsanbieter, Instance-Profile, Serverzertifikate und virtuelle MFA-Geräte. Ein Tutorial zum Erstellen und Testen einer Richtlinie, die IAM-Rollen mit Auftraggeber-Tags den Zugriff auf Ressourcen mit übereinstimmenden Tags erlaubt, finden Sie unter IAM-Tutorial: Berechtigungen für den Zugriff auf AWS Ressourcen auf der Grundlage von Tags definieren. Verwenden Sie die Informationen im folgenden Abschnitt, um den Zugriff auf andere AWS Ressourcen, einschließlich IAM-Ressourcen, zu steuern, ohne IAM-Benutzer oder -Rollen zu taggen.

Bevor Sie Tags verwenden, um den Zugriff auf Ihre AWS Ressourcen zu steuern, müssen Sie wissen, wie AWS der Zugriff gewährt wird. AWS besteht aus Sammlungen von Ressourcen. Eine Amazon EC2-Instance ist eine Ressource. Ein Amazon S3-Bucket ist eine Ressource. Sie können die AWS API, die oder die verwenden AWS CLI, AWS Management Console um einen Vorgang auszuführen, z. B. das Erstellen eines Buckets in Amazon S3. Wenn Sie dies tun, senden Sie eine Anforderung für diese Operation. Ihre Anforderung gibt eine Aktion, eine Ressource, eine Auftraggeber-Entität (Gruppe oder Rolle) und ein Auftraggeberkonto an und enthält alle erforderlichen Anforderungsinformationen. Diese Informationen stellen den Kontext bereit.

AWS überprüft dann, ob Sie (die Haupteinheit) authentifiziert (angemeldet) und autorisiert (berechtigt) sind, die angegebene Aktion auf der angegebenen Ressource auszuführen. AWS Überprüft während der Autorisierung alle Richtlinien, die für den Kontext Ihrer Anfrage gelten. Die meisten Richtlinien werden AWS als JSON-Dokumente gespeichert und spezifizieren die Berechtigungen für Hauptentitäten. Weitere Informationen zu diesen Richtlinienarten und ihrer Verwendung finden Sie unter Berechtigungen und Richtlinien in IAM.

AWS autorisiert die Anfrage nur, wenn jeder Teil Ihrer Anfrage gemäß den Richtlinien zulässig ist. Informationen zum Anzeigen eines Diagramms und weitere Informationen über die IAM-Infrastruktur finden Sie unter Funktionsweise von IAM. Weitere Informationen darüber, wie IAM bestimmt, ob eine Anfoderung zulässig ist, finden Sie unter Auswertungslogik für Richtlinien.

Tags sind eine weitere Überlegung in diesem Prozess, da Markierungen an die Ressource angefügt werden können oder in der Anfrage an Services weitergegeben werden können, die das Markieren unterstützen. Um den Zugriff auf Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer Richtlinie Tag-Informationen an. Informationen darüber, ob ein AWS Service die Zugriffskontrolle mithilfe von Tags unterstützt, finden Sie unter AWS Dienste, die mit IAM funktionieren und suchen Sie nach den Diensten, für die in der ABAC-Spalte Ja angegeben ist. Wählen Sie den Namen des Service, um die Dokumentation zur Autorisierung und Zugriffssteuerung für diesen Service anzuzeigen.

Sie können dann eine IAM-Richtlinie erstellen, die den Zugriff auf eine Ressource basierend auf dem Tag dieser Ressource erlaubt oder verweigert. In dieser Richtlinie können Sie Tag-Bedingungsschlüssel verwenden, um den Zugriff auf eine der folgenden Optionen zu steuern:

  • Ressource — Steuern Sie den Zugriff auf AWS Serviceressourcen anhand der Tags auf diesen Ressourcen. Verwenden Sie dazu den Bedingungsschlüssel ResourceTag/key-name, um anhand der Tags, die der Ressource zugeordnet sind, zu bestimmen, ob der Zugriff auf die Ressource erlaubt werden soll.

  • Anforderung – Steuern, welche Tags an eine Anforderung weitergeleitet werden können. Verwenden Sie dazu den Bedingungsschlüssel aws:RequestTag/Key-Name, um anzugeben, welche Tag-Schlüssel-Wert-Paare in einer Anfrage zur Kennzeichnung einer Ressource übergeben werden können. AWS

  • Beliebiger Teil des Autorisierungsprozesses — Verwenden Sie den TagKeys Bedingungsschlüssel aws:, um zu kontrollieren, ob bestimmte Tag-Schlüssel in einer Anfrage enthalten sein können.

Sie können eine IAM-Richtlinie visuell mithilfe von JSON oder durch Importieren einer vorhandenen verwalteten Richtlinie erstellen. Details hierzu finden Sie unter Erstellen von IAM-Richtlinien.

Anmerkung

Bei einigen Diensten können Benutzer beim Erstellen der Ressource Tags angeben, wenn sie über die Berechtigung zum Verwenden der Aktion verfügen, mit der die Ressource erstellt wird.

Steuern des Zugriffs auf AWS -Ressourcen

Sie können Bedingungen in Ihren IAM-Richtlinien verwenden, um den Zugriff auf AWS Ressourcen anhand der Tags auf dieser Ressource zu steuern. Sie können dies mithilfe des globalen aws:ResourceTag/tag-key-Bedingungsschlüssels oder eines servicespezifischen Schlüssels erreichen. Einige Services unterstützen nur die servicespezifische Version dieses Schlüssels und nicht die globale Version.

Warnung

Versuchen Sie nicht zu kontrollieren, wer eine Rolle weitergeben kann, indem Sie die Rolle taggen und dann den ResourceTag-Bedingungsschlüssel in einer Richtlinie mit der iam:PassRole-Aktion verwenden. Dieser Ansatz führt nicht zu zuverlässigen Ergebnissen. Weitere Informationen zu den erforderlichen Berechtigungen, die für das Übergeben einer Rolle an einen Service erforderlich sind, finden Sie unter Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS -Service übergeben kann.

Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen können, die das Starten oder Stoppen von Amazon-EC2-Instances erlaubt. Diese Operationen sind nur zulässig, wenn das Instance-Tag Owner den Wert des Benutzernamens dieses Benutzers aufweist. Diese Richtlinie definiert Berechtigungen für den programmgesteuerten Zugriff und den Konsolenzugriff.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }

Sie können diese Richtlinie den IAM-Benutzern in Ihrem Konto anfügen. Wenn ein Benutzer namens richard-roe versucht, eine Amazon EC2-Instance zu starten, muss die Instance mit dem Tag Owner=richard-roe oder owner=richard-roe versehen sein. Andernfalls wird ihm der Zugriff verweigert. Der Tag-Schlüssel Owner stimmt mit Owner und owner überein, da bei Bedingungsschlüsselnamen nicht zwischen Groß- und Kleinschreibung unterschieden wird. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Condition.

Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen könnten, die das Löschen von Benutzern mit dem team-Prinzipal-Tag erlaubt. Die Richtlinie gewährt die Erlaubnis, Warteschlangen von Amazon Simple Queue Service zu löschen, jedoch nur, wenn der Warteschlangenname mit dem Teamnamen beginnt, gefolgt von -queue. Beispielsweise qa-queue, wenn qa der Teamname für das team-Prinzipal-Tag ist.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllQueueActions", "Effect": "Allow", "Action": "sqs:DeleteQueue", "Resource": "arn:aws:sqs:us-east-2::${aws:PrincipalTag/team}-queue" } }

Zugriffssteuerung während AWS -Anforderungen

Sie können Bedingungen in Ihren IAM-Richtlinien verwenden, um zu steuern, welche Tag-Schlüssel-Wert-Paare in einer Anfrage übergeben werden können, die Tags auf eine Ressource anwendet. AWS

Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen können, die es erlaubt, mithilfe der Amazon-EC2-Aktion CreateTags Tags an eine Instance anzuhängen. Sie können Tags nur anfügen, wenn das Tag den environment-Schlüssel und die preprod- oder production-Werte enthält. Wenn Sie möchten, können Sie den ForAllValues-Modifikator mit dem aws:TagKeys-Bedingungsschlüssel verwenden, um anzugeben, dass nur der environment-Schlüssel in der Anforderung zulässig ist. So wird verhindert, dass Benutzer andere Schlüssel einbeziehen und etwa versehentlich Environment anstelle von environment verwenden.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ] }, "ForAllValues:StringEquals": {"aws:TagKeys": "environment"} } } }

Zugriffssteuerung auf der Grundlage von Tag-Schlüsseln

Sie können in Ihren IAM-Richtlinien eine Bedingung verwenden, um zu steuern, ob bestimmte Tag-Schlüssel in einer Anfrage verwendet werden können.

Wir empfehlen, dass Sie bei der Verwendung von Richtlinien zur Zugriffskontrolle mithilfe von Tags den aws:TagKeys Bedingungsschlüssel verwenden. AWS Dienste, die Tags unterstützen, ermöglichen es Ihnen möglicherweise, mehrere Tag-Schlüsselnamen zu erstellen, die sich nur durch Groß- und Kleinschreibung unterscheiden, z. B. das Taggen einer Amazon EC2 EC2-Instance mit stack=production und. Stack=test Bei den Schlüsselnamen in den Richtlinienbedingungen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Dies bedeutet Folgendes: Wenn Sie "aws:ResourceTag/TagKey1": "Value1" im Bedingungselement Ihrer Richtlinie angeben, stimmt die Bedingung mit einem Ressourcen-Tag-Schlüssel mit dem Namen TagKey1 oder tagkey1 überein, aber nicht mit beiden. Um doppelte Tags mit Schlüsseln zu verhindern, die sich nur in der Groß-/Kleinschreibung unterscheiden, verwenden Sie die aws:TagKeys-Bedingung zum Definieren von Tag-Schlüsseln, die Ihre Benutzer anwenden können,, oder verwenden Sie Tag-Richtlinien, die mit AWS Organizations verfügbar sind. Weitere Informationen finden Sie unter Tag-Richtlinien im Benutzerhandbuch für Organisationen.

Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen können, die das Erstellen und Markieren eines Secrets Manager Geheimnisses erlaubt, jedoch nur mit den Tag-Schlüsseln environment oder cost-center. Die Null-Bedingung stellt sicher, dass die Bedingung zu false ausgewertet wird, wenn in der Anfrage keine Tags vorhanden sind.

{ "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:TagResource" ], "Resource": "*", "Condition": { "Null": { "aws:TagKeys": "false" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "environment", "cost-center" ] } } }