Ich verwende den Befehl "aws ec2 run-instance" (über die AWS Command Line Interface (CLI) ), um eine Amazon EC2- Instanz zu starten . Ich möchte eine IAM-Rolle für die zu startende EC2-Instanz festlegen . Die IAM-Rolle ist konfiguriert und kann beim Starten einer Instanz über die AWS-Webbenutzeroberfläche erfolgreich verwendet werden. Aber wenn ich dies mit diesem Befehl und der Option "--iam-instance-profile" versuche, ist dies fehlgeschlagen. Wenn Sie "aws ec2 run-instance help" ausführen, werden die Unterfelder Arn = und Name = für den Wert angezeigt. Wenn ich versuche, den Arn mit "aws iam list-instance-profiles" nachzuschlagen, wird folgende Fehlermeldung ausgegeben:
Ein Client-Fehler (AccessDenied) ist aufgetreten: Benutzer: arn: aws: sts :: xxxxxxxxxx: angenommene Rolle / Shell / i-15c2766d ist nicht berechtigt, Folgendes auszuführen: iam: ListInstanceProfiles für Ressource: arn: aws: iam :: xxxxxxxxxxxx: Instanz -Profil/
(wobei xxxxxxxxxxxx meine 12-stellige AWS-Kontonummer ist)
Ich habe die Arn-Zeichenfolge über die Web-Benutzeroberfläche nachgeschlagen und diese über "--iam-instance-profile Arn = arn: aws: iam :: xxxxxxxxxxxx: instance-profile / shell" im Befehl run-instance verwendet :
Ein Clientfehler (UnauthorizedOperation) ist aufgetreten: Sie sind nicht berechtigt, diesen Vorgang auszuführen.
Wenn ich die Option "--iam-instance-profile" vollständig auslasse, wird die Instanz gestartet, verfügt jedoch nicht über die von mir benötigte IAM-Rolleneinstellung. Die Berechtigung scheint also etwas mit der Verwendung von "--iam-instance-profile" oder dem Zugriff auf IAM-Daten zu tun zu haben. Ich habe es im Falle von AWS-Pannen mehrmals wiederholt (sie treten manchmal auf) und es war kein Erfolg zu verzeichnen.
Ich vermutete, dass es möglicherweise eine Einschränkung gibt, dass eine Instanz mit einer IAM-Rolle keine Instanz mit einer leistungsstärkeren IAM-Rolle starten darf. In diesem Fall hat die Instanz, in der ich den Befehl ausführe, dieselbe IAM-Rolle, die ich zu verwenden versuche. namens "shell" (obwohl ich auch versucht habe, eine andere zu verwenden, kein Glück).
Ist das Festlegen einer IAM-Rolle nicht einmal für eine Instanz zulässig (über ihre IAM-Rollenanmeldeinformationen)?
Ist eine höhere IAM-Rollenberechtigung erforderlich, um IAM-Rollen zu verwenden, als zum Starten einer einfachen Instanz erforderlich ist?
Ist "--iam-instance-profile" der geeignete Weg, um eine IAM-Rolle anzugeben?
Muss ich eine Teilmenge der Arn-Zeichenfolge verwenden oder auf andere Weise formatieren?
Ist es möglich, eine IAM-Rolle einzurichten, die beliebige IAM-Rollenzugriffe ausführen kann (möglicherweise ein "Super Root IAM" ... aus dem dieser Name besteht)?
Zu Ihrer Information, alles beinhaltet Linux, das auf den Instanzen ausgeführt wird. Außerdem starte ich all dies von einer Instanz aus, da ich diese Tools nicht auf meinem Desktop installieren konnte. Das und ich möchten meine IAM-Benutzeranmeldeinformationen nicht auf einem AWS-Speicher ablegen, wie von AWS hier empfohlen .
nachdem geantwortet:
Ich habe die Berechtigung zum Starten der Instanz von "PowerUserAccess" (im Gegensatz zu "AdministratorAccess") nicht erwähnt, da ich nicht wusste, dass zum Zeitpunkt der Frage ein zusätzlicher Zugriff erforderlich war. Ich nahm an, dass die IAM-Rolle "Informationen" war, die mit dem Start verbunden waren. Aber es ist wirklich mehr als das. Es ist eine Erteilung der Erlaubnis.
quelle
Um eine EC2-Instanz mit einer IAM-Rolle zu starten, ist Administratorzugriff auf die IAM-Funktion erforderlich. Dies gilt auch dann, wenn die neue Instanz genau dieselbe Rolle haben soll wie die Instanz, die den Start ausführt. Die Instanz, von der ich gestartet habe, hatte die Berechtigung "PowerUserAccess", mit der das Starten einer Instanz, nicht jedoch der IAM-Rollenzugriff möglich war. Sobald ich die Berechtigung in der Startinstanz auf "AdministratorAccess" erhöht habe, hat es funktioniert.
Da IAM-Rollen Berechtigungen erteilen, muss eindeutig ein Sicherheitsproblem behoben werden. Sie möchten nicht, dass IAM-Rollen eine Möglichkeit darstellen, die Eskalation von Berechtigungen zu ermöglichen. Dies bedeutet jedoch auch, dass zum Gewähren einer IAM-Rolle die startende Instanz über "AdministratorAccess" verfügen muss oder Benutzerzugriff / geheime Schlüssel (mit einer solchen Berechtigung) innerhalb der Instanz verwenden muss (nicht empfohlen). Dies würde das Gewähren einer IAM-Rolle ermöglichen.
Die Möglichkeit, eine Instanz mit derselben Berechtigung (derselben IAM-Rolle) zu starten, über die die startende Instanz verfügt, ist hilfreich. EC2 oder IAM verfügen jedoch entweder nicht über diese Granularität oder nicht über die Mittel, um dies sicher zu überprüfen .
quelle