Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie kann ich Daten erhalten, die mir bei der Behebung von IAM-Fehlern der Zugriffsverweigerung oder des unautorisierten Zugriffs helfen?
Ich erhalte die Fehlermeldung „access denied“ oder „unauthorized“, wenn ich auf eine AWS-Ressource zugreife. Ich benötige Daten zur Behebung dieser Fehler bei API-Aufrufen von AWS Identity and Access Management (IAM).
Kurzbeschreibung
Verwende Amazon-Athena-Abfragen oder die AWS Command Line Interface (AWS CLI), um Fehlerprotokolle für fehlgeschlagene IAM-API-Aufrufe abzurufen. Befolge dann die Anweisungen zur Behebung von Fehlern bei verweigertem Zugriff oder nicht autorisierten Operationen mithilfe einer IAM-Richtlinie.
Lösung
Hinweis: Wenn du beim Ausführen von AWS-CLI-Befehlen Fehlermeldungen erhältst, stelle sicher, dass du die neueste Version der AWS CLI verwendest.
Verwendung von Athena-Abfragen, um Fehler bei IAM-API-Aufrufen zu beheben, indem du CloudTrail-Protokolle durchsuchst
Hinweis: Bevor du beginnst, musst du einen Trail für die Anmeldung in einem Amazon Simple Storage Service (Amazon S3)-Bucket erstellt haben. Dies liegt daran, dass Athena Ereignisse verwendet, die in AWS-CloudTrail-Protokolldateien aufgezeichnet wurden und für diesen Trail an einen Amazon-S3-Bucket übermittelt werden.
1. Befolge die Schritte im Abschnitt Athena-Tabelle erstellen unter Wie erstelle ich automatisch Tabellen in Athena, um AWS-CloudTrail-Protokolle zu durchsuchen?
Hinweis: Athena-Tabellen, die automatisch erstellt werden, befinden sich in derselben AWS-Region wie dein Amazon-S3-Bucket.
2. Öffne die Athena-Konsole und wähle dann das Pluszeichen**„+“**, um eine neue Abfrage zu erstellen.
3. Gib die folgende Beispielabfrage ein und wähle dann Ausführen.
In dieser Beispielabfrage verwendet das Zeitformat das ISO-8601-Basisformat mit der Z-Variablen für UTC.
Hinweis: Ersetze your-arndurch dieIAM-Amazon-Ressourcennamen (ARN) für deine Ressourcen und your-table durch den Namen deiner Tabelle.
SELECT from_iso8601_timestamp(eventTime) AS "Time", useridentity.arn AS "Identity ARN", eventID AS "Event ID", eventsource AS "Service", eventname AS "Action", errorCode AS "Error", errorMessage AS "Message" FROM your-table WHERE from_iso8601_timestamp(eventtime) >= from_iso8601_timestamp('2019-10-29T06:40:00Z') AND from_iso8601_timestamp(eventtime) < from_iso8601_timestamp('2019-10-29T06:55:00Z') AND userIdentity.arn = 'your-arn' AND eventType = 'AwsApiCall' AND errorCode is not null AND (lower(errorCode) LIKE '%accessdenied%' OR lower(errorCode) LIKE '%unauthorized%') ORDER BY eventTime desc
4. In dieser Beispieltabelle werden Berechtigungsfehler für den Identitäts-ARN aufgeführt:
| Time | Event ID | Service | Action | Error | Message | |-----------------------------|--------------------------------------|--------------------------|--------------|--------------|----------------------------------------------------------------------------------------------------------------------| | 2019-10-29 06:52:45.000 UTC | 0406f0c1-47a8-4f71-8a94-18267b84042a | cloudtrail.amazonaws.com | LookupEvents | AccessDenied | User: arn:aws:iam::account:user/username is not authorized to perform: cloudtrail:LookupEvents with an explicit deny in an identity-based policy | | 2019-10-29 06:41:48.000 UTC | 14e5e77c-f682-45e1-8c88-12d15af293dd | cloudtrail.amazonaws.com | LookupEvents | AccessDenied | User: arn:aws:iam::account:user/username is not authorized to perform: cloudtrail:LookupEvents because no identity-based policy allows the cloudtrail:LookupEvents action |
Hinweis: Bei der Ausgabe von CloudTrail-Ereignissen kann es bis zu 15 Minuten dauern, bis Ergebnisse geliefert werden.
5. Du kannst optional Fehler für alle Benutzer abrufen, indem du diese Zeile aus der Beispielabfrage entfernst:
AND userIdentity.arn = 'your-arn'
6. Du kannst optional alle Fehler aus einem ausgewählten Zeitraum abrufen, indem du diese Zeile aus der Beispielabfrage entfernst:
AND (lower(errorCode) LIKE '%accessdenied%' OR lower(errorCode) LIKE '%unauthorized%')
Verwendung der AWS CLI, um Fehler bei API-Aufrufen von IAM-Berechtigungen zu beheben
Hinweis: Für dieses AWS-CLI-Skript ist der JSON-Befehlszeilenprozessor jq erforderlich. Das Tutorial und Anweisungen zum Herunterladen findest du unterJSON-Ausgabeformat. Führe bei Distributionen, die das yum-Paket verwenden, den folgenden Befehl aus:
$ sudo yum install jq
1. Führe den folgenden AWS-CLI-Befehl aus:
Hinweis: Ersetze your-arn durch die IAM-ARNs für deine Ressourcen.
( echo "Time,Identity ARN,Event ID,Service,Action,Error,Message"; aws cloudtrail lookup-events --start-time "2019-10-29T06:40:00Z" --end-time "2019-10-29T06:55:00Z" --query "Events[*].CloudTrailEvent" --output text \ | jq -r ". | select(.userIdentity.arn == \"your-arn\" and .eventType == \"AwsApiCall\" and .errorCode != null and (.errorCode | ascii_downcase | (contains(\"accessdenied\") or contains(\"unauthorized\")))) | [.eventTime, .userIdentity.arn, .eventID, .eventSource, .eventName, .errorCode, .errorMessage] | @csv" ) | column -t -s'",'
Hinweis: Die Anzahl der Suchanfragen an CloudTrail ist auf zwei Anfragen pro Sekunde, pro Konto und pro Region begrenzt. Wenn dieser Grenzwert überschritten wird, tritt ein Drosselungsfehler auf.
2. In dieser Beispieltabelle werden Berechtigungsfehler für den Identitäts-ARN aus dem angegebenen Zeitraum aufgelistet.
Hinweis: Du kannst nach Ereignissen suchen, die in den letzten 90 Tagen in einer Region aufgetreten sind.
Time Event ID Service Action Error Message 2019-10-29T06:52:45Z 0406f0c1-47a8-4f71-8a94-18267b84042a cloudtrail.amazonaws.com LookupEvents AccessDenied User: arn:aws:iam::account:user/username is not authorized to perform: cloudtrail:LookupEvents with an explicit deny in an identity-based policy 2019-10-29T06:41:48Z 14e5e77c-f682-45e1-8c88-12d15af293dd cloudtrail.amazonaws.com LookupEvents AccessDenied User: arn:aws:iam::account:user/username is not authorized to perform: cloudtrail:LookupEvents because no identity-based policy allows the cloudtrail:LookupEvents action
3. (Optional) Rufe Fehler für alle Benutzer ab, indem du diese Zeile entfernst:
.userIdentity.arn == \"your-arn\" and
4. (Optional) Rufe alle Fehler aus dem ausgewählten Zeitraum ab, indem du diese Zeile entfernst:
and (.errorCode | ascii_downcase | (contains(\"accessdenied\") or contains(\"unauthorized\")))
Behebung Fehler nicht autirisierten Zugriffs
Athena und die vorherigen AWS-CLI-Beispielausgaben sind für LookupEvents-API-Aufrufe von CloudTrail relevant.
IAM-Richtlinien, die den Zugriff verweigern, weil sie eine Verweigerungsanweisung enthalten, enthalten in der Fehlermeldung eine bestimmte Formulierung für explizite und implizite Verweigerung. Fehler der expliziten Verweigerung in IAM enthalten den Ausdruck „with an explicit deny in a <type> policy“. Fehler der impliziten Verweigerung in IAM enthalten den Satz „because no <type> policy allows the <action> action“.
Die Ausgabe cloudtrail:LookupEvents mit einer expliziten Verweigerungs-Ausgabe weist darauf hin, dass eine zugehörige IAM-Richtlinie falsch ist.
Eine explizite Zugriffsverweigerung kann bei jedem dieser Richtlinientypen erfolgen. Zum Beispiel bei identitätsbasierten Richtlinien, ressourcenbasierten Richtlinien, Berechtigungsgrenzen, SCPs von Organisationen und Sitzungsrichtlinien. Anweisungen der expliziten Verweigerung haben immer Vorrang vor Zulassungsanweisungen. Die explizite Verweigerung ist in der identitätsbasierten Richtlinie für IAM-Benutzer enthalten.
Die Ausgabe cloudtrail:LookupEvents because no identity-based policy allows zeigt an, dass die identitätsbasierte Richtlinie diese API-Aktion nicht zulässt, was zu einer impliziten Verweigerung führt. In der identitätsbasierten Richtlinie fehlt eine explizite Zulassungsanweisung für die API-Aktion cloudtrail:LookupEvents.
Folgende Richtlinientypen wurden von AWS ausgewertet, um den Zugriff sicherzustellen:
- SCPs für AWS-Organisationen
- Ressourcenbasierte Richtlinien
- Grenzen der IAM-Berechtigungen
- Sitzungsrichtlinien
- Identitätsbasierte Richtlinien
Weitere Informationen darüber, wie IAM-Richtlinien bewertet und verwaltet werden, findest du unter Logik der Richtlinienbewertung und Verwaltung von IAM-Richtlinien.
Ähnliche Informationen
- Sprache
- Deutsch
