AWS: Ermöglicht es MFA-authentifizierten IAM-Benutzern, ihre eigenen Anmeldeinformationen auf der Seite Sicherheitsanmeldeinformationen zu verwalten - AWS Identitäts- und Zugriffsverwaltung

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS: Ermöglicht es MFA-authentifizierten IAM-Benutzern, ihre eigenen Anmeldeinformationen auf der Seite Sicherheitsanmeldeinformationen zu verwalten

Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen können, die es IAM-Benutzern, die mit Multi-Faktor-Authentifizierung (MFA) authentifiziert wurden, ermöglicht, ihre eigenen Anmeldeinformationen auf der Seite Sicherheitsanmeldeinformationen zu verwalten. Diese Seite der AWS Management Console zeigt Kontoinformationen wie z. B. die Konto-ID und die kanonische Benutzer-ID an. Benutzer können auch ihre eigenen Passwörter, Zugriffsschlüssel, MFA-Geräte, X.509-Zertifikate und SSH-Schlüssel und Git-Anmeldeinformationen anzeigen und bearbeiten. Diese Beispielrichtlinie enthält die erforderlichen Berechtigungen zum Anzeigen und Bearbeiten aller Informationen auf der Seite. Außerdem muss der Benutzer MFA einrichten und authentifizieren, bevor er andere Operationen in ausführen kann AWS. Informationen darüber, wie Benutzern die Verwaltung ihrer eigenen Anmeldeinformationen ohne MFA ermöglicht wird, finden Sie unter AWS: Ermöglicht es IAM-Benutzern, ihre eigenen Anmeldeinformationen auf der Seite Sicherheitsanmeldeinformationen zu verwalten.

Informationen dazu, wie Benutzer auf die Seite Sicherheitsanmeldeinformationen zugreifen können, finden Sie unter Wie IAM-Benutzer ihr eigenes Passwort ändern können (Konsole).

Anmerkung
  • Diese Beispielrichtlinie erlaubt es Benutzern nicht, ein Passwort zurückzusetzen, während sie sich AWS Management Console zum ersten Mal bei der anmelden. Wir empfehlen, dass Sie neuen Benutzern keine Berechtigungen erteilen, bis sie sich angemeldet haben. Weitere Informationen finden Sie unter Wie erstelle ich sicher IAM-Benutzer?. Dies verhindert auch, dass Benutzer mit einem abgelaufenen Passwort ihr Passwort während der Anmeldung zurücksetzen können. Sie können dies erlauben, indem Sie iam:ChangePassword und iam:GetAccountPasswordPolicy der Anweisung DenyAllExceptListedIfNoMFA hinzufügen. Wir empfehlen dies jedoch nicht, da es ein Sicherheitsrisiko darstellen kann, Benutzern eine Änderung ihres Passworts ohne MFA zu erlauben.

  • Wenn Sie diese Richtlinie für den programmatischen Zugriff verwenden möchten, müssen Sie GetSessionToken anrufen, um sich bei MFA zu authentifizieren. Weitere Informationen finden Sie unter Konfigurieren eines MFA-geschützten API-Zugriffs.

Was macht diese Richtlinie?

  • Die AllowViewAccountInfo-Anweisung ermöglicht es dem Benutzer, Informationen auf Kontoebene anzuzeigen. Diese Berechtigungen müssen in ihrer eigenen Anweisung vorliegen, da sie keine Ressourcen-ARN unterstützen oder keine angeben müssen. Geben Sie anstelle von Berechtigungen "Resource" : "*" ein. Diese Anweisung enthält die folgenden Aktionen, mit denen der Benutzer spezifische Informationen anzeigen kann:

    • GetAccountPasswordPolicy – Zeigt die Passwortanforderungen des Kontos beim Ändern seines eigenen IAM-Benutzer-Passworts an.

    • ListVirtualMFADevices – Zeigt Details über ein virtuelles MFA-Gerät an, das für den Benutzer aktiviert ist.

  • Mit der AllowManageOwnPasswords-Anweisung kann der Benutzer sein eigenes Passwort ändern. Diese Anweisung enthält auch die GetUser-Aktion, die erforderlich ist, um die meisten Informationen auf der Seite My Security Credentials (Meine Sicherheitsanmeldeinformationen) anzuzeigen.

  • Die AllowManageOwnAccessKeys-Anweisung ermöglicht dem Benutzer das Erstellen, Aktualisieren und Löschen seiner eigenen Zugriffsschlüssel. Der Benutzer kann auch Informationen darüber abrufen, wann der angegebene Zugriffsschlüssel zuletzt verwendet wurde.

  • Die AllowManageOwnSigningCertificates-Anweisung ermöglicht dem Benutzer das Hochladen, Aktualisieren und Löschen seiner eigenen Signaturzertifikate.

  • Die AllowManageOwnSSHPublicKeys-Anweisung ermöglicht dem Benutzer das Hochladen, Aktualisieren und Löschen seiner eigenen öffentlichen SSH-Schlüssel für CodeCommit.

  • Die AllowManageOwnGitCredentials-Anweisung ermöglicht dem Benutzer das Erstellen, Aktualisieren und Löschen seiner eigenen Git-Anmeldeinformationen für CodeCommit.

  • Die AllowManageOwnVirtualMFADevice-Anweisung ermöglicht dem Benutzer das Erstellen seines eigenen virtuellen MFA-Geräts. Der Ressourcen-ARN in dieser Anweisung erlaubt es dem Benutzer, ein MFA-Gerät mit einem beliebigen Namen zu erstellen, aber die anderen Anweisungen in der Richtlinie erlauben es dem Benutzer nur, das Gerät mit dem aktuell angemeldeten Benutzer zu verknüpfen.

  • Die AllowManageOwnUserMFA-Anweisung ermöglicht es dem Benutzer, das virtuelle, U2F- oder physische MFA-Gerät für seinen eigenen Benutzer anzuzeigen oder zu verwalten. Der Ressourcen-ARN in dieser Anweisung gewährt nur Zugriff auf den eigenen IAM-Benutzer des Benutzers. Benutzer können das MFA-Gerät für andere Benutzer nicht anzeigen oder verwalten.

  • Die DenyAllExceptListedIfNoMFA Anweisung verweigert den Zugriff auf jede Aktion in allen AWS Services, mit Ausnahme einiger aufgeführter Aktionen, aber nur, wenn der Benutzer nicht mit MFA angemeldet ist. Die Anweisung verwendet eine Kombination aus "Deny" und "NotAction", um den Zugriff auf alle Aktionen, die nicht aufgeführt sind, explizit zu verwehren. Die aufgeführten Elemente werden durch diese Anweisung nicht verweigert oder zugelassen. Die Aktionen werden aber durch andere Anweisungen in der Richtlinie zugelassen. Weitere Informationen zur Logik für diese Anweisung finden Sie unter NotAction mit Deny . Hat sich der Benutzer mit MFA angemeldet, schlägt der Condition-Test fehl und diese Anweisung verwehrt keine Aktionen. In diesem Fall bestimmen andere Richtlinien oder Anweisungen für den Benutzer die Berechtigungen des Benutzers.

    Durch diese Anweisung wird sichergestellt, dass der Benutzer, wenn er nicht mit MFA angemeldet ist, nur die aufgeführten Aktionen ausführen kann. Außerdem kann er die aufgelisteten Aktionen nur ausführen, wenn eine andere Anweisung oder Richtlinie den Zugriff auf diese Aktionen gewährt. Dies ermöglicht es einem Benutzer nicht, beim Anmelden ein Passwort zu erstellen, da die iam:ChangePassword-Aktion nicht ohne MFA-Autorisierung erlaubt sein sollte.

    Die ...IfExists-Version des Bool -Operators stellt sicher, dass bei fehlendem als: MultiFactorAuthPresent-Schlüssel die Bedingung den Wert "True" zurückgibt. Dies bedeutet, dass einem Benutzer, der mit langfristigen Anmeldeinformationen auf eine API zugreift, wie z. B. einem Zugriffsschlüssel, der Zugriff auf die Nicht-IAM-API-Operationen verweigert wird.

Diese Richtlinie ermöglicht es Benutzern nicht, die Seite Users (Benutzer) in der IAM-Konsole anzuzeigen oder diese Seite für den Zugriff auf ihre eigenen Benutzerinformationen zu verwenden. Um dies zuzulassen, fügen Sie die Aktion iam:ListUsers der Anweisung AllowViewAccountInfo und der Anweisung DenyAllExceptListedIfNoMFA hinzu. Darüber hinaus ermöglicht sie Benutzern nicht, ihr Passwort auf ihrer eigenen Benutzerseite anzupassen. Um dies zu ermöglichen, fügen Sie die Aktionen iam:GetLoginProfile und iam:UpdateLoginProfile zur Anweisung AllowManageOwnPasswords hinzu. Um es einem Benutzer auch zu ermöglichen, sein Passwort über seine eigene Benutzerseite zu ändern, ohne sich mit MFA anzumelden, fügen Sie die Aktion iam:UpdateLoginProfile zur Anweisung DenyAllExceptListedIfNoMFA hinzu.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowViewAccountInfo", "Effect": "Allow", "Action": [ "iam:GetAccountPasswordPolicy", "iam:ListVirtualMFADevices" ], "Resource": "*" }, { "Sid": "AllowManageOwnPasswords", "Effect": "Allow", "Action": [ "iam:ChangePassword", "iam:GetUser" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:DeleteAccessKey", "iam:ListAccessKeys", "iam:UpdateAccessKey", "iam:GetAccessKeyLastUsed" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnSigningCertificates", "Effect": "Allow", "Action": [ "iam:DeleteSigningCertificate", "iam:ListSigningCertificates", "iam:UpdateSigningCertificate", "iam:UploadSigningCertificate" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnSSHPublicKeys", "Effect": "Allow", "Action": [ "iam:DeleteSSHPublicKey", "iam:GetSSHPublicKey", "iam:ListSSHPublicKeys", "iam:UpdateSSHPublicKey", "iam:UploadSSHPublicKey" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnGitCredentials", "Effect": "Allow", "Action": [ "iam:CreateServiceSpecificCredential", "iam:DeleteServiceSpecificCredential", "iam:ListServiceSpecificCredentials", "iam:ResetServiceSpecificCredential", "iam:UpdateServiceSpecificCredential" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnVirtualMFADevice", "Effect": "Allow", "Action": [ "iam:CreateVirtualMFADevice" ], "Resource": "arn:aws:iam::*:mfa/*" }, { "Sid": "AllowManageOwnUserMFA", "Effect": "Allow", "Action": [ "iam:DeactivateMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "DenyAllExceptListedIfNoMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:GetMFADevice", "iam:ListMFADevices", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] }