Steuern der Verwendung von Zugriffsschlüsseln durch das Anhängen einer Inline-Richtlinie an einen IAM-Benutzer - AWS Identity and Access Management

Steuern der Verwendung von Zugriffsschlüsseln durch das Anhängen einer Inline-Richtlinie an einen IAM-Benutzer

Als bewährte Vorgehensweise empfehlen wir, dass Workloads temporäre Anmeldeinformationen mit IAM-Rollen verwenden, um auf AWS zuzugreifen. IAM-Benutzern mit Zugriffsschlüsseln sollte die geringste Berechtigung zugewiesen und die Multi-Faktor-Authentifizierung (MFA) aktiviert werden. Weitere Informationen zum Übernehmen von IAM-Rollen finden Sie unter Methoden, um eine Rolle zu übernehmen.

Wenn Sie jedoch einen Proof-of-Concept-Test für eine Serviceautomatisierung oder einen anderen kurzfristigen Anwendungsfall erstellen und sich dafür entscheiden, Workloads mit einem IAM-Benutzer mit Zugriffsschlüsseln auszuführen, empfehlen wir Ihnen, Richtlinienbedingungen zu verwenden, um den Zugriff auf die Anmeldeinformationen des IAM-Benutzers weiter einzuschränken.

In diesem Fall können Sie entweder eine zeitlich begrenzte Richtlinie erstellen, die die Anmeldeinformationen nach Ablauf der angegebenen Zeit ablaufen lässt, oder, wenn Sie einen Workload aus einem sicheren Netzwerk ausführen, eine IP-Einschränkungsrichtlinie verwenden.

Für beide Anwendungsfälle können Sie eine Inline-Richtlinie verwenden, die dem IAM-Benutzer mit Zugriffsschlüsseln zugeordnet ist.

So konfigurieren Sie eine zeitgebundene Richtlinie für einen IAM-Benutzer
  1. Melden Sie sich bei der AWS-Managementkonsole an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich die Option Benutzer und dann den Benutzer für den kurzfristigen Anwendungsfall aus. Wenn Sie den Benutzer noch nicht erstellt haben, können Sie das jetzt tun.

  3. Wählen Sie auf der Seite mit den Details den Tab Berechtigungen aus.

  4. Wählen Sie Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.

  5. Wählen Sie im Bereich Richtlinien-Editor JSON aus, um den JSON-Editor anzuzeigen.

  6. Geben Sie im JSON-Editor die folgende Richtlinie ein und ersetzen Sie den Wert für den aws:CurrentTime-Zeitstempel durch das gewünschte Ablaufdatum und die gewünschte Uhrzeit:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "DateGreaterThan": { "aws:CurrentTime": "2025-03-01T00:12:00Z" } } } ] }

    Diese Richtlinie verwendet den Deny-Effekt, um alle Aktionen für alle Ressourcen nach dem angegebenen Datum einzuschränken. Die DateGreaterThan-Bedingung vergleicht die aktuelle Uhrzeit mit dem von Ihnen festgelegten Zeitstempel.

  7. Wählen Sie Next (Weiter), um mit der Seite Review and create (Überprüfen und erstellen) fortzufahren. Geben Sie in den Richtliniendetails unter Richtlinienname einen Namen für die Richtlinie ein und wählen Sie dann Richtlinie erstellen aus.

Nachdem die Richtlinie erstellt wurde, wird sie auf dem Tab Berechtigungen für den Benutzer angezeigt. Wenn der aktuelle Zeitpunkt dem in der Richtlinie festgelegten Zeitpunkt entspricht oder dieser Zeitpunkt bereits verstrichen ist, hat der Benutzer keinen Zugriff mehr auf AWS-Ressourcen. Informieren Sie die Workload-Entwickler unbedingt über das Ablaufdatum, das Sie für diese Zugriffsschlüssel angegeben haben.

So konfigurieren Sie eine IP-Einschränkungsrichtlinie für einen IAM-Benutzer
  1. Melden Sie sich bei der AWS-Managementkonsole an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich die Option Benutzer und dann den Benutzer aus, der den Workload vom sicheren Netzwerk aus ausführen soll. Wenn Sie den Benutzer noch nicht erstellt haben, können Sie das jetzt tun.

  3. Wählen Sie auf der Seite mit den Details den Tab Berechtigungen aus.

  4. Wählen Sie Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.

  5. Wählen Sie im Bereich Richtlinien-Editor JSON aus, um den JSON-Editor anzuzeigen.

  6. Kopieren Sie die folgende IAM-Richtlinie in den JSON-Editor und ändern Sie die öffentlichen IPv4- oder IPv6-Adressen oder -Bereiche entsprechend Ihren Anforderungen. Sie können https://checkip.amazonaws.com/ verwenden, um Ihre aktuelle öffentliche IP-Adresse zu ermitteln. Sie können einzelne IP-Adressen oder IP-Adressbereiche mithilfe der Schrägstrichnotation angeben. Weitere Informationen finden Sie unter aws:SourceIp.

    Anmerkung

    Die IP-Adressen dürfen nicht durch ein VPN oder einen Proxyserver verschleiert werden.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid":"IpRestrictionIAMPolicyForIAMUser", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "2001:DB8:1234:5678::/64", "203.0.114.1" ] }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }

    Dieses Richtlinienbeispiel verweigert die Verwendung der Zugriffsschlüssel eines IAM-Benutzers, auf den diese Richtlinie angewendet wird, es sei denn, die Anfrage stammt aus den Netzwerken (in CIDR-Notation angegeben) „203.0.113.0/24“, „2001:DB8:1234:5678::/64“ oder der spezifischen IP-Adresse „203.0.114.1“.

  7. Wählen Sie Next (Weiter), um mit der Seite Review and create (Überprüfen und erstellen) fortzufahren. Geben Sie in den Richtliniendetails unter Richtlinienname einen Namen für die Richtlinie ein und wählen Sie dann Richtlinie erstellen aus.

Nachdem die Richtlinie erstellt wurde, wird sie auf dem Tab Berechtigungen für den Benutzer angezeigt.

Sie können diese Richtlinie auch als Service-Kontrollrichtlinie (SCP) für mehrere AWS-Konten in AWS Organizations anwenden. Wir empfehlen die Verwendung einer zusätzlichen Bedingung, aws:PrincipalArn, damit diese Richtlinie nur für IAM-Benutzer innerhalb der AWS-Konten gilt, die dieser SCP unterliegen. Die folgende Richtlinie beinhaltet dieses Update:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "IpRestrictionServiceControlPolicyForIAMUsers", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "2001:DB8:1234:5678::/64", "203.0.114.1" ] }, "BoolIfExists": { "aws:ViaAWSService": "false" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:user/*" } } } ] }