Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Wie kann ich IAM-Rollen verwenden, um API-Aufrufe von bestimmten IP-Adressen an die AWS-Managementkonsole einzuschränken?
Ich möchte die Rollen von AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement) verwenden, um den Zugriff von API-Aufrufen auf die AWS-Managementkonsole einzuschränken.
Kurzbeschreibung
Du kannst den globalen Bedingungsschlüssel aws:SourceIp im Bedingungselement einer IAM-Richtlinie verwenden, um API-Aufrufe von bestimmten IP-Adressen einzuschränken. Dadurch wird jedoch der Zugriff auf AWS-Services wie AWS CloudFormation verweigert, die in deinem Namen Anrufe tätigen, sofern du nicht auch die globale Bedingung aws:ViaAWSService verwendest. Weitere Informationen findest du unter AWS: Verweigert den Zugriff auf AWS auf der Grundlage der Quell-IP.
Angenommen, du hast eine AWS-Servicerolle, die es AWS CloudFormation ermöglicht, Amazon Elastic Compute Cloud (Amazon EC2) aufzurufen, um eine Instanz zu stoppen. Die Anfrage wird abgelehnt, weil der Zieldienst (Amazon EC2) die IP-Adresse des anrufenden Dienstes (AWS CloudFormation) sieht und nicht die des ursprünglichen Benutzers. Du kannst die ursprüngliche IP-Adresse nicht über einen anrufenden Dienst an den Zieldienst weitergeben, um sie in einer IAM-Richtlinie auszuwerten.
Lösung
Erstelle eine IAM-Rolle, der dieselben Berechtigungen angehängt sind wie die IAM-Richtlinie, die an den IAM-Benutzer angehängt ist. Dadurch erhält der IAM-Benutzer nur dann die Berechtigung, die Rolle sts:AssumeRole-API zu übernehmen, wenn die Anfrage von der angegebenen IP-Adresse kommt. Dies liegt an der aws:SourceIP-Einschränkungsprüfung, die durchgeführt wird, wenn der Benutzer versucht, die Rolle anzunehmen. Wenn der Benutzer die IAM-Rolle übernimmt, erhält er die Berechtigungen der IAM-Richtlinie, die ihm zugeordnet ist. Da die der Rolle zugeordnete IAM-Richtlinie den Bedingungsschlüssel aws:SourceIp nicht verwendet, ist der Zugriff auf AWS-Services zulässig.
Erstelle die folgende IAM-Richtlinie und hänge diese Richtlinie dann an einen IAM-Benutzer an, der über programmatischen Zugriff verfügt. Diese IAM-Richtlinie erlaubt es dem IAM-Benutzer, AssumeRole mit dem Rollennamen Bob zu übernehmen. Bob benötigt keine zusätzlichen Berechtigungen. Alle anderen erforderlichen Berechtigungen werden erworben, wenn der IAM-Benutzer erfolgreich die Rolle Bob annimmt.
Hinweis:
- Wenn du beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehler erhalten, stelle sicher, dass du die neueste AWS CLI-Version verwendest.
- Ersetze Bob durch deinen IAM-Rollennamen und EXAMPLEIAMACCOUNTID durch deine Konto-ID.
Beispiel für eine IAM-Benutzerrichtlinie
Diese Beispielrichtlinie verfügt über Berechtigungen zum Ausführen von API-Aufrufen für die Ressourcen im Konto.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::EXAMPLEIAMACCOUNTID:role/Bob" } }
Erstelle die IAM-Rolle Bob, um Berechtigungen an den IAM-Benutzer zu delegieren. Folge den Anweisungen zum Erstellen einer IAM-Rolle (Konsole). Du kannst auch die AWS-CLI oder API verwenden.
Hinweis:
- Wenn du die Rolle mithilfe der Konsole erstellst, ändere die Rollen-Vertrauensrichtlinie ähnlich wie in diesem Beispiel für die **Bob-**Vertrauensrichtlinie. Mithilfe der AWS-CLI create-role oder der API CreateRole kannst du das Dokument zur Trust Relationship-Richtlinie als Wert in den Dokumentparameter update-assume-role-policy übergeben.
- Die Anfrage muss aus dem angegebenen IP-Adressbereich 103.15.250.0/24 oder 12.148.72.0/23 kommen. Andernfalls kann der IAM-Benutzer die Rolle nicht übernehmen und API-Aufrufe tätigen.
Beispiel für eine Vertrauensrichtlinie für IAM-Rollen
Dieses Beispiel für eine Vertrauensrichtlinie ermöglicht es dem Benutzer, die Rolle zu übernehmen, wenn die Anfrage aus dem IP-Adressbereich 103.15.250.0/24 oder 12.148.72.0/23 kommt.
Hinweis: Ersetze YOURIAMUSERNAME durch deinen IAM-Benutzernamen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/YOURIAMUSERNAME" }, "Action": "sts:AssumeRole" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::account-id:user/YOURIAMUSERNAME" }, "Action": "sts:AssumeRole", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "103.15.250.0/24", "12.148.72.0/23" ] } } } ] }
Hinweis: Diese Problemumgehung unterbricht die AWS CloudTrail-Protokolle, da Aktionen von der IAM-Rolle ausgeführt werden, die der Benutzer übernommen hat, und nicht vom IAM-Benutzer. Der vom IAM-Benutzer ausgeführte assumeRole-API-Aufruf wird in den CloudTrail-Protokollen unter dem IAM-Benutzer protokolliert. Alle zusätzlichen API-Aufrufe, die von der IAM-Rolle ausgeführt werden, werden in CloudTrail-Protokollen unter dem Rollennamen protokolliert.
Ähnliche Informationen
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 9 Monaten