Wie kann ich den Zugriff für den Start von Amazon-EC2-Instances so einschränken, dass er nur von getaggten AMIs aus möglich ist?
Ich möchte den Zugriff der Benutzer einschränken, sodass sie Amazon Elastic Compute Cloud (Amazon EC2)-Instances nur von getaggten Amazon Machine Images (AMIs) aus starten können. Wie kann ich mithilfe von AMI-Tags den Zugriff auf den Start von EC2-Instances einschränken?
Behebung
Um den Benutzerzugriff für den Start von EC2-Instances auf getaggte AMIs einzuschränken, erstellen Sie ein AMI aus einer vorhandenen Instance – oder verwenden Sie ein vorhandenes AMI – und fügen Sie diesem ein Tag hinzu. Erstellen Sie dann eine benutzerdefinierte AWS Identity and Access Management (IAM)-Richtlinie mit einer Tag-Bedingung, die die Berechtigungen der Benutzer so einschränkt, dass sie nur Instances starten können, die das getaggte AMI verwenden.
Dieses Beispiel einer IAM-Richtlinie enthält drei Anweisungs-IDs (Sids):
- Sid ReadOnlyAccess erlaubt Benutzern, mithilfe von Describe* alle EC2-Ressourcen in Ihrem Konto einzusehen. Damit werden alle EC2-Aktionen eingeschlossen, die mit Describe beginnen. Mit Sid ReadOnlyAccess können Benutzer außerdem Konsolenausgaben und Screenshots einer EC2-Instance abrufen. Weitere Informationen finden Sie unter GetConsoleOutput und GetConsoleScreenshot. Die Amazon-CloudWatch-Berechtigungen für DescribeAlarms und GetMetricStatistics ermöglichen die Anzeige grundlegender Zustandsinformationen über EC2-Instances in der Amazon-EC2-Konsole. Die IAM-Berechtigung für ListInstanceProfiles ermöglicht die Anzeige der vorhandenen Instance-Profile auf der Liste der IAM-Rollen auf der Seite „Konfigurieren von Instance-Details“, wenn eine EC2-Instance gestartet wird. Die ListInstanceProfiles-API erlaubt Benutzern jedoch nicht, eine IAM-Rolle an eine EC2-Instance anzufügen.
- Sid ActionsRequiredtoRunInstancesInVPC gewährt Benutzern die Berechtigung, mithilfe beliebiger Instances, Schlüsselpaare, Sicherheitsgruppen, Volumes, Netzwerkschnittstellen oder Subnetze in der Region us-east-1 die RunInstances-API auszuführen, unter Verwendung von Berechtigungen auf Ressourcenebene durch Angabe des ARN für jede Ressource.
- Sid LaunchingEC2withAMIsAndTags ermöglicht es Benutzern, EC2-Instances mithilfe eines AMI zu starten, wenn das AMI über eine Tag-Umgebung verfügt, deren Wert auf Prod gesetzt ist, und sich in der Region us-east-1 befindet. Die Berechtigung auf Ressourcenebene ist für jedes AMI in der Region us-east-1 auf einen ARN festgelegt, und die Bedingung entspricht dem Wert des Tag-Schlüssels EC2:ResourceTag/Environment und dem Schlüsselwert Prod.
Die folgende IAM-Richtlinie verwendet Berechtigungen auf Ressourcenebene für die Ressourcen, die für die RunInstances-API-Aktion erforderlich sind. Weitere Informationen zu den erforderlichen Ressourcen für RunInstances finden Sie unter Unterstützte Berechtigungen auf Ressourcenebene.
Hinweis:
- Diese Richtlinie ermöglicht es Benutzern, beim Starten einer EC2-Instance Rollen aufzulisten. Sie können jedoch keine Instance starten, an die eine Rolle angehängt ist, wenn sie nicht über die Berechtigung iam:PassRole verfügen.
- Diese Richtlinie erlaubt Benutzern nicht, neue Sicherheitsgruppen zu erstellen. Benutzer müssen eine vorhandene Sicherheitsgruppe auswählen, um eine EC2-Instance zu starten, sofern sie nicht über die EC2-Berechtigung CreateSecurityGroup verfügen. Die API-Aktion EC2:CreateSecurityGroup gewährt Zugriff nur für die Erstellung einer Sicherheitsgruppe. Mit dieser Aktion werden keine Regeln hinzugefügt oder geändert. Um Regeln für eingehenden Datenverkehr hinzuzufügen, benötigen Benutzer Berechtigungen für die EC2-API-Aktion für eingehenden Datenverkehr AuthorizeSecurityGroupIngress und die EC2-API-Aktion für ausgehenden Datenverkehr AuthorizeSecurityGroupEgress.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccess", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:GetConsole*", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "iam:ListInstanceProfiles" ], "Resource": "*" }, { "Sid": "ActionsRequiredtoRunInstancesInVPC", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:us-east-1:AccountId:instance/*", "arn:aws:ec2:us-east-1:AccountId:key-pair/*", "arn:aws:ec2:us-east-1:AccountId:security-group/*", "arn:aws:ec2:us-east-1:AccountId:volume/*", "arn:aws:ec2:us-east-1:AccountId:network-interface/*", "arn:aws:ec2:us-east-1:AccountId:subnet/*" ] }, { "Sid": "LaunchingEC2withAMIsAndTags", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:us-east-1::image/ami-*", "Condition": { "StringEquals": { "ec2:ResourceTag/Environment": "Prod" } } } ] }
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 6 Monaten
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 3 Jahren