Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Wie erstelle ich eine IAM-Richtlinie, um explizit Berechtigungen zum Erstellen und Verwalten von EC2-Instances in einer angegebenen VPC mit Tags zu gewähren?
Ich möchte eine AWS Identity and Access Management (IAM)-Richtlinie erstellen, die IAM-Identitäten explizit Berechtigungen zur Verwaltung von Amazon Elastic Compute Cloud (Amazon EC2)-Instances in einer Virtual Private Cloud (VPC) gewährt.
Kurzbeschreibung
Die IAM-Richtlinie muss die Berechtigungen der IAM-Identität zur Verwaltung der Instances in der VPC einschränken, die über Tags verfügen.
Amazon EC2 bietet teilweise Berechtigungen auf Ressourcenebene, aber es gibt mehrere Aktionen, Ressourcen und Bedingungen auf Service-Ebene, die du verwenden kannst. Verwende Ressourcen-Tags, um den Zugriff auf EC2-Ressourcen zu steuern.
Behebung
Erstelle eine Richtlinie, die Berechtigungen zum Starten der Instances in der VPC gewährt, aber die Berechtigungen der IAM-Identität zur Verwaltung der Instances einschränkt. Verwende die Richtlinienbedingung ec2:ResourceTag, um die Verwaltung von Instances einzuschränken.
Verwaltete Richtlinie zum Anhängen an die IAM-Identitäten erstellen, die deine Instances starten
Führe die folgenden Schritte aus:
-
Öffne die IAM-Konsole.
-
Wähle Richtlinien und dann Richtlinie erstellen.
-
Wähle die Registerkarte JSON aus und gib dann die folgende benutzerdefinierte Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantIAMPassRoleOnlyForEC2", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account_number:role/role_name", "arn:aws:iam::account_number:role/role_nameE" ], "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Sid": "ReadOnlyEC2WithNonResource", "Action": [ "ec2:Describe*", "iam:ListInstanceProfiles" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "ModifyingEC2WithNonResource", "Action": [ "ec2:CreateKeyPair", "ec2:CreateSecurityGroup" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "RunInstancesWithTagRestrictions", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:a:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "aws:RequestTag/TAG-KEY": "tag_value" } } }, { "Sid": "RemainingRunInstancePermissionsNonResource", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION::image/*", "arn:aws:ec2:REGION::snapshot/*", "arn:aws:ec2:region:account_number:network-interface/*", "arn:aws:ec2:region:account_number:key-pair/*", "arn:aws:ec2:region:account_number:security-group/*" ] }, { "Sid": "EC2RunInstancesVpcSubnet", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account_number:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account_number:vpc/VPC-ID" } } }, { "Sid": "EC2VpcNonResourceSpecificActions", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteSecurityGroup", "ec2:CreateNetworkInterfacePermission", "ec2:CreateRoute", "ec2:UpdateSecurityGroupRuleDescriptionsEgress", "ec2:UpdateSecurityGroupRuleDescriptionsIngress" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account_number:vpc/VPCID" } } }, { "Sid": "AllowInstanceActionsTagBased", "Effect": "Allow", "Action": [ "ec2:RebootInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:StartInstances", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:AssociateIamInstanceProfile", "ec2:DisassociateIamInstanceProfile", "ec2:GetConsoleScreenshot", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": [ "arn:aws:ec2:region:account_number:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/TAG-KEY": "Tag_key" } } }, { "Sid": "AllowCreateTagsOnlyLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:region:account_number:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }Hinweis: Ersetze die Parameter account_number, region,tag_key, tag_value,VPC-ID und role_name durch deine Werte.
-
Wähle Richtlinie überprüfen aus und gib dann einen Namen ein.
-
Wähle Richtlinie erstellen aus.
Hinweis: Du musst einige Elemente durch bestimmte Ressourcen aus deiner Umgebung ersetzen. Weitere Informationen findest du unter AWS-Ressourcen mit Amazon-Ressourcennamen (ARNs) identifizieren.
Richtlinie an eine Gruppe anhängen
Führe die folgenden Schritte aus:
- Öffne die IAM-Konsole.
- Wähle im Navigationsbereich Benutzergruppen und dann den Gruppennamen aus.
Hinweis: Es hat sich bewährt, Richtlinien an Benutzergruppen anzuhängen und den Benutzer dann der entsprechenden Gruppe hinzuzufügen. - Wähle Berechtigungen hinzufügen und dann Richtlinien anhängen aus.
- Gib den Namen der Richtlinie ein und wähle dann deine Richtlinie aus.
- Wähle Richtlinie anhängen aus.
Wenn du die benutzerdefinierte Richtlinie anhängst, kann die IAM-Identität auf die AWS-Managementkonsole zugreifen. Die IAM-Identität kann dann das EC2-Dashboard öffnen und eine EC2-Instance starten. Die IAM-Identität muss das Subnetz, die VPC und das Tag angeben, um die EC2-Instance zu starten.
Die Bedingung ec2:ResourceTags schränkt die folgenden Aktionen ein:
- Eine Instance starten.
- Eine Instance stoppen.
- Eine Instance neustarten.
- Eine Instance beenden.
- Ein Volume an die Instance anhängen.
- Ein Volume von der Instance trennen.
- Trennen des IAM-Instance-Profils von der Instance.
- Ein Instance-Profil zuordnen.
- Die IAM-Instance-Profilzuordnung für die Instance ersetzen.
- Einen Konsolen-Screenshot der Instance abrufen.
Die Richtlinie schränkt die folgenden Aktionen gegen die VPC ein:
- Sicherheitsgruppen löschen.
- Routen erstellen und löschen.
- Routing-Tabellen löschen.
- Gültige Netzwerk-Zugriffskontrolllisten (Netzwerk-ACL) löschen.
- Netzwerk-ACL-Einträge löschen.
- Regeln für eingehenden und ausgehenden Zugriff von Sicherheitsgruppen autorisieren oder widerrufen.
- Netzwerkschnittstellenberechtigungen erstellen.
- Sicherheitsgruppenbeschreibung für Eingangs- und Ausgangsregeln aktualisieren.
Ähnliche Informationen
- Sprache
- Deutsch
