Fehlerbehebung bei IAM und Amazon EC2
Die folgenden Informationen können Ihnen bei der Behebung von IAM-Problemen mit Amazon EC2 helfen.
Themen
- Wenn ich versuche, eine Instance zu starten, wird die Rolle nicht in der Liste der IAM-Rolle der Amazon-EC2-Konsole angezeigt
- Die Anmeldeinformationen auf meiner Instance beziehen sich auf die falsche Rolle.
- Wenn ich versuche, AddRoleToInstanceProfile aufzurufen, wird ein AccessDenied-Fehler angezeigt
- Amazon EC2: Wenn ich versuche, eine Instance mit einer Rolle zu starten, erhalte ich einen AccessDenied-Fehler
- Ich kann nicht auf die temporären Anmeldeinformationen in meiner EC2-Instance zugreifen.
- Was bedeuten die Fehler aus dem info-Dokument in der IAM-Unterstruktur?
Wenn ich versuche, eine Instance zu starten, wird die Rolle nicht in der Liste der IAM-Rolle der Amazon-EC2-Konsole angezeigt
Überprüfen Sie, ob Folgendes der Fall ist:
-
Wenn Sie als IAM-Benutzer angemeldet sind, stellen Sie sicher, dass Sie über die Berechtigung zum Aufrufen von
ListInstanceProfiles
verfügen. Informationen zu den für die Arbeit mit Rollen erforderlichen Berechtigungen finden Sie unter Erforderliche Berechtigungen für die Nutzung von Rollen mit Amazon EC2. Informationen zum Hinzufügen von Berechtigungen zu einem Benutzer finden Sie unter Verwalten von IAM-Richtlinien.Wenn Sie Ihre eigenen Berechtigungen nicht ändern können, müssen Sie sich an einen Administrator wenden, der mit IAM arbeiten kann, um Ihre Berechtigungen zu aktualisieren.
-
Wenn Sie eine Rolle mithilfe der IAM-CLI oder -API erstellt haben, überprüfen Sie Folgendes:
-
Sie haben ein Instance-Profil erstellt und diesem Instance-Profil die Rolle hinzugefügt.
-
Sie haben für die Rolle und das Instance-Profil denselben Namen verwendet. Wenn Sie Ihre Rolle und Ihr Instance-Profil unterschiedlich benennen, wird in der Amazon-EC2-Konsole nicht der richtige Rollenname angezeigt.
Die IAM-Rollen-Liste in der Amazon EC2-Konsole listet die Namen der Instanceprofile auf, nicht die Namen der Rollen. Sie müssen den Namen des Instance-Profils auswählen, das die gewünschte Rolle enthält. Weitere Informationen zu Instance-Profilen finden Sie unter Verwendung von Instance-Profilen.
Anmerkung
Wenn Sie die IAM-Konsole zum Erstellen von Rollen verwenden, müssen Sie nicht mit Instance-Profilen arbeiten. Für jede Rolle, die Sie in der IAM-Konsole erstellen, wird ein Instance-Profil mit demselben Namen wie die Rolle erstellt, und die Rolle wird automatisch diesem Instance-Profil hinzugefügt. Ein Instance-Profil kann nur eine IAM-Rolle enthalten und dieses Limit kann nicht erhöht werden.
-
Die Anmeldeinformationen auf meiner Instance beziehen sich auf die falsche Rolle.
Die Rolle im Instance-Profil wurde möglicherweise kürzlich ausgetauscht. Wenn dies der Fall ist, muss Ihre Anwendung auf die nächste automatisch geplante Rotation von Anmeldeinformationen warten. Erst dann sind wieder Anmeldeinformationen für Ihre Rolle verfügbar.
Wenn Sie die Änderung erzwingen möchten, müssen Sie die Zuweisung des Instance-Profils aufheben und dann das Instance-Profil zuweisen, oder Sie beenden Ihre Instance und starten sie neu.
Wenn ich versuche, AddRoleToInstanceProfile
aufzurufen, wird ein AccessDenied
-Fehler angezeigt
Wenn Sie Anforderungen als IAM-Benutzer erstellen, vergewissern Sie sich, dass Sie über die folgenden Berechtigungen verfügen:
-
iam:AddRoleToInstanceProfile
mit der Ressource entsprechend dem ARN des Instance-Profils (z. B.arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile
)
Weitere Informationen zu den Berechtigungen, die zum Arbeiten mit Rollen erforderlich sind, finden Sie unter Was sind die ersten Schritte?. Informationen zum Hinzufügen von Berechtigungen zu einem Benutzer finden Sie unter Verwalten von IAM-Richtlinien.
Amazon EC2: Wenn ich versuche, eine Instance mit einer Rolle zu starten, erhalte ich einen AccessDenied
-Fehler
Überprüfen Sie, ob Folgendes der Fall ist:
-
Starten Sie eine Instance ohne Instance-Profil. Auf diese Weise wird sichergestellt, dass das Problem auf IAM-Rollen für Amazon EC2-Instances beschränkt ist.
-
Wenn Sie Anforderungen als IAM-Benutzer erstellen, vergewissern Sie sich, dass Sie über die folgenden Berechtigungen verfügen:
-
ec2:RunInstances
mit einer Platzhalterressource ("*") -
iam:PassRole
mit der Ressource entsprechend dem ARN der Rolle (z. B.arn:aws:iam::999999999999:role/ExampleRoleName
)
-
-
Rufen Sie die IAM-Aktion
GetInstanceProfile
auf, um sicherzustellen, dass Sie einen gültigen Instance-Profilnamen oder einen gültigen Instance-Profil-ARN verwenden. Weitere Informationen finden Sie unter Using IAM roles with Amazon EC2 instances. -
Rufen Sie die IAM-Aktion
GetInstanceProfile
auf, um sicherzustellen, dass das Instance-Profil eine Rolle hat. Leere Instance-Profile schlagen mit einemAccessDenied
-Fehler fehl. Weitere Informationen zum Erstellen einer Rolle finden Sie unter Erstellung einer IAM-Rolle.
Weitere Informationen zu den Berechtigungen, die zum Arbeiten mit Rollen erforderlich sind, finden Sie unter Was sind die ersten Schritte?. Informationen zum Hinzufügen von Berechtigungen zu einem Benutzer finden Sie unter Verwalten von IAM-Richtlinien.
Ich kann nicht auf die temporären Anmeldeinformationen in meiner EC2-Instance zugreifen.
Um auf die temporären Sicherheitsanmeldeinformationen Ihrer EC2-Instance zuzugreifen, müssen Sie zuerst die IAM-Konsole verwenden, um eine Rolle zu erstellen. Dann starten Sie eine EC2-Instance, die diese Rolle verwendet und untersuchen die laufende Instance. Weitere Informationen finden Sie unter Erste Schritte in Verwendung einer IAM-Rolle zur Gewährung von Berechtigungen für Anwendungen, die in Amazon-EC2-Instances ausgeführt werden.
Wenn Sie immer noch keinen Zugriff auf Ihre temporären Sicherheitsanmeldeinformationen in Ihrer EC2-Instance haben, überprüfen Sie Folgendes:
-
Können Sie auf einen anderen Teil des Instance Meta Data Service (IMDS) zugreifen? Falls nicht, überprüfen Sie, ob nicht Firewall-Regeln den Zugriff auf Anfragen an den IMDS blockieren.
[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/hostname; echo
-
Ist die
iam
-Unterstruktur des IMDS vorhanden? Wenn nicht, überprüfen Sie, ob Ihrer Instance ein IAM-Instance-Profil zugeordnet ist, indem Sie die EC2DescribeInstances
-API-Operation aufrufen oder denaws ec2 describe-instances
-CLI-Befehl verwenden.[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/iam; echo
-
Überprüfen Sie das
info
-Dokument in der IAM-Unterstruktur auf Fehler. Wenn ein Fehler vorliegt, finden Sie weitere Informationen unter Was bedeuten die Fehler aus dem info-Dokument in der IAM-Unterstruktur?.[ec2-user@domU-12-31-39-0A-8D-DE ~]$
GET http://169.254.169.254/latest/meta-data/iam/info; echo
Was bedeuten die Fehler aus dem info
-Dokument in der IAM-Unterstruktur?
Das iam/info
-Dokument gibt Folgendes an: "Code":"InstanceProfileNotFound"
Ihr IAM-Instance-Profil wurde gelöscht und Amazon EC2 kann keine Anmeldeinformationen mehr für Ihre Instance bereitstellen. Sie müssen ein gültiges Instance-Profil zu Ihrer Amazon EC2-Instance anfügen.
Wenn ein Instance-Profil mit diesem Namen vorhanden ist, prüfen Sie, ob das Instance-Profil nicht gelöscht und ein zweites Profil mit demselben Namen erstellt wurde:
-
Rufen Sie die IAM–
GetInstanceProfile
Operation auf, um dieInstanceProfileId
zu erhalten. -
Rufen Sie die Amazon EC2–
DescribeInstances
Operation auf, um dieIamInstanceProfileId
für die Instance zu erhalten. -
Überprüfen Sie, ob die
InstanceProfileId
aus der IAM-Operation mit derIamInstanceProfileId
aus der Amazon EC2-Operation übereinstimmt.
Wenn die IDs unterschiedlich sind, dann ist das an Ihre Instances angefügte Instance-Profil nicht mehr gültig. Sie müssen ein gültiges Instance-Profil an Ihre Instance anfügen.
Das iam/info
-Dokument gibt an, dass der Vorgang erfolgreich war, gibt aber Folgendes an: "Message":"Instance Profile does not
contain a role..."
Die Rolle wurde mit der IAM-Aktion RemoveRoleFromInstanceProfile
aus dem Instance-Profil entfernt. Sie können die IAM–AddRoleToInstanceProfile
-Aktion verwenden, um eine Rolle an das Instance-Profil anzufügen. Ihre Anwendung muss bis zur nächsten geplanten Aktualisierungen warten, um auf die Anmeldeinformationen für die Rolle zuzugreifen.
Wenn Sie die Änderung erzwingen möchten, müssen Sie die Zuweisung des Instance-Profils aufheben und dann das Instance-Profil zuweisen, oder Sie beenden Ihre Instance und starten sie neu.
Das iam/security-credentials/[role-name]
-Dokument gibt Folgendes an: "Code":"AssumeRoleUnauthorizedAccess"
Amazon EC2; verfügt nicht über die Berechtigung, die Rolle zu übernehmen. Die Berechtigung zum Übernehmen der Rolle wird über die an die Rolle angefügte Vertrauensrichtlinie gesteuert, wie im folgenden Beispiel veranschaulicht: Verwenden Sie die IAM–UpdateAssumeRolePolicy
-API zum Aktualisieren der Vertrauensrichtlinie.
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}
Ihre Anwendung muss bis zur nächsten automatisch geplanten Aktualisierungen warten, um auf die Anmeldeinformationen für die Rolle zuzugreifen.
Wenn Sie die Änderung erzwingen möchten, müssen Sie die Zuweisung des Instance-Profils aufheben und dann das Instance-Profil zuweisen, oder Sie beenden Ihre Instance und starten sie neu.