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, ihr eigenen Anmeldeinformationen auf der Seite Sicherheits-Anmeldeinformationen zu verwalten
Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen können, die es IAM-Benutzern, die mithilfe der Multi-Faktor-Authentifizierung (MFA) authentifiziert werden, erlaubt, ihre eigenen Anmeldeinformationen auf der Seite Sicherheits-Anmeldeinformationen 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. Sie erfordert auch Einrichtung und Authentifizierung des Benutzers mit MFA, bevor er andere Operationen in AWS ausführen kann. Informationen darüber, wie Benutzern die Verwaltung ihrer eigenen Anmeldeinformationen ohne MFA ermöglicht wird, finden Sie unter AWS: Ermöglicht IAM-Benutzern, ihre eigenen Anmeldeinformationen auf der Seite „Sicherheits-Anmeldeinformationen“ zu verwalten.
Informationen dazu, wie Benutzer auf die Seite Sicherheits-Anmeldeinformationen 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, wenn sie sich zum ersten Mal bei der AWS Management Console 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
undiam:GetAccountPasswordPolicy
der AnweisungDenyAllExceptListedIfNoMFA
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 Sicherer API Zugriff mit MFA.
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 dieGetUser
-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 verwehrt den Zugriff auf alle Aktionen in allen AWS-Services, außer einiger weniger aufgelisteter 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 über die Logik für diese Anweisung finden Sie unter NotAction mit Deny. Hat sich der Benutzer mit MFA angemeldet, schlägt derCondition
-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 desBool
-Operators stellt sicher, dass bei fehlendemals: 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" } } } ] }