Wie kann ich Probleme mit Zugriffsverweigerung lösen, die durch Berechtigungsgrenzen verursacht wurden?

Lesedauer: 5 Minute
0

Ich habe beim Versuch, auf meinen AWS-Service zuzugreifen, eine Zugriffsverweigerung oder einen Fehler über unbefugten Zugriff erhalten. Wie kann ich Fehler bezüglich der Zugriffsverweigerung in meinem AWS-Konto beheben?

Kurzbeschreibung

Möglicherweise erhalten Sie einen Zugriffsverweigerungsfehler oder einen Fehler über nicht autorisierten Zugriff, da Ihre IAM-Richtlinie (AWS Identity and Access Management) bestimmte Bedingungen nicht erfüllt. Überprüfen Sie zunächst alle Service-Kontrollrichtlinien (SCPs) in Ihrem Konto und überprüfen Sie dann, ob Ihre ressourcenbasierten Richtlinien keine Verweigerungen enthalten. Wenn der Fehler dadurch nicht behoben wird, kann das Problem durch das Vorhandensein einer Berechtigungsgrenze verursacht werden.

Eine Berechtigungsgrenze ist eine Funktion, mit der Sie eine verwaltete Richtlinie verwenden können, um die maximalen Berechtigungen festzulegen, die einer IAM-Entität (Benutzer oder Rolle) eine identitätsbasierte Richtlinie erteilen kann. Wenn Sie eine Berechtigungsgrenze für eine Entität festlegen, kann diese Entität nur Aktionen ausführen, die sowohl in ihren identitätsbasierten Richtlinien als auch in ihrer Berechtigungsgrenze zulässig sind.

Hinweis: Die Berechtigungsgrenze legt die maximalen Berechtigungen für eine Entität fest, gewährt diese Berechtigungen jedoch nicht.

Gehen Sie folgendermaßen vor, um Autorisierungsfehler zu beheben:

  • Prüfen Sie, ob eine Aktion in Ihrer IAM-Richtlinie zulässig ist, aber nicht in der Berechtigungsgrenze.
  • Nehmen Sie alle erforderlichen Aktionen mithilfe der IAM-Konsole in die Berechtigungsgrenze auf.
  • Verwenden Sie den Bedingungsschlüssel „iam:PermissionsBoundary“ in Ihrer IAM-Richtlinie.

Auflösung

Prüfen Sie, ob eine Aktion in Ihrer IAM-Richtlinie zulässig ist, aber nicht in der Berechtigungsgrenze.

Das folgende Beispiel zeigt eine Aktion, die in einer IAM-Richtlinie zulässig ist, jedoch nicht in der Berechtigungsgrenze. In diesem Beispiel ist einem IAM-Benutzer die Richtlinie USER_IAM_POLICY angehängt:

IAM policy:(USER_IAM_POLICY )
 “Effect”: “Allow”,
            “Action”: [
                “ec2:*”,
                “s3:*”
            ],

Diese Richtlinie gewährt dem Benutzer vollen Zugriff auf die Services Amazon Elastic Compute Cloud (Amazon EC2) und Amazon Simple Storage Service (Amazon S3). Für den Benutzer wurde auch eine Berechtigungsgrenze mit dem Namen USER_PB_POLICY festgelegt.

Permissions Boundary:(USER_PB_POLICY)
 “Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”
            ],

Die Berechtigungsgrenze legt die maximalen Berechtigungen fest, die der Benutzer ausführen kann. In diesem Beispiel ermöglicht diese Berechtigungsgrenze vollen Zugriff auf Amazon CloudWatch- und Amazon S3-Services. Da Amazon S3 jedoch der einzige Service ist, der sowohl in der IAM-Richtlinie als auch in der Berechtigungsgrenze zulässig ist, hat der Benutzer nur Zugriff auf S3. Wenn der Benutzer versucht, auf Amazon EC2 zuzugreifen, wird ihm ein Fehler „Zugriff verweigert“ angezeigt.

Um diesen Fehler zu beheben, bearbeiten Sie die Berechtigungsgrenze und erlauben Sie den Zugriff auf Amazon EC2:

“Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”,
                “ec2:*”
            ],

Nehmen Sie alle erforderlichen Aktionen mithilfe der IAM-Konsole in die Berechtigungsgrenze auf.

Gehen Sie folgendermaßen vor, um die Berechtigungsgrenze zu bearbeiten und alle Aktionen einzubeziehen, die ein Benutzer benötigt:

  1. Öffnen Sie die IAM-Konsole.
  2. Wählen Sie im Navigationsbereich Rollen/Benutzer aus.
  3. Wählen Sie die IAM-Entität aus, die Sie bearbeiten möchten.
  4. Überprüfen Sie im Abschnitt Berechtigungsgrenze Ihre Einstellungen. Wenn eine Berechtigungsgrenze festgelegt ist, bedeutet dies, dass eine Berechtigungsgrenze vorhanden ist. Der Name der verwalteten Richtlinie, die als Berechtigungsgrenze für Ihre IAM-Entität verwendet wird, ist in diesem Abschnitt aufgeführt.
  5. Erweitern Sie die JSON-Richtlinie und überprüfen Sie, ob die von Ihnen benötigte Aktion in der Berechtigungsgrenze auf die Whitelist gesetzt ist. Wenn Ihre Aktion nicht auf der Whitelist steht, bearbeiten Sie die JSON-Richtlinie, um alle Aktionen zuzulassen, die Ihre IAM-Entität benötigt.

Weitere Informationen zum Bearbeiten von Richtlinien finden Sie unter Bearbeiten von IAM-Richtlinien.

Verwenden Sie den Bedingungsschlüssel iam:PermissionsBoundary in Ihren IAM-Richtlinien.

Fügen Sie den Bedingungsschlüssel iam:PermissionsBoundary zu Ihren IAM-Richtlinien hinzu. Dieser Bedingungsschlüssel überprüft, ob eine bestimmte Richtlinie als Berechtigungsgrenze für eine IAM-Entität angehängt ist.

Das folgende Beispiel zeigt eine IAM-Richtlinie mit dem Namen RestrictedRegionPermissionsBoundary:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EC2RestrictRegion",
            "Effect": “Allow”,
            "Action": "ec2:*” 
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "us-east-1"
                   ]
                }
            }
        }

Erstellen Sie eine Richtlinie und fügen Sie sie einem delegierten Administrator hinzu, der für die Erstellung von Benutzern verantwortlich ist. Wenn wir die folgende Beispielrichtlinie an den Administrator anhängen, kann er nur dann einen IAM-Benutzer erstellen, wenn er die Richtlinie RestrictedRegionPermissionsBoundary an diesen Benutzer anhängt. Wenn der Administrator versucht, einen IAM-Benutzer zu erstellen, ohne die Richtlinie anzuhängen, wird ihm der Fehler „Zugriff verweigert“ angezeigt.

{
            "Sid": "CreateUser",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser"
            ],
            "Resource": "arn:aws:iam::111222333444:user/test1*",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::111222333444:policy/RestrictedRegionPermissionsBoundary"
                }
            }

Gehen Sie folgendermaßen vor, um die IAM-Richtlinie RestrictedRegionPermissionsBoundary als Berechtigungsgrenze beim Erstellen eines neuen Benutzers festzulegen:

  1. Öffnen Sie die IAM-Konsole.
  2. Wählen Sie im Navigationsbereich Benutzer und dann Benutzer hinzufügen aus.
  3. Geben Sie den Benutzernamen ein, den Sie bearbeiten möchten, wählen Sie den AWS-Zugriffstyp und wählen Sie dann Weiter.
  4. Erweitern Sie den Abschnitt Berechtigungsgrenze festlegen und wählen Sie Berechtigungsgrenze verwenden, um die maximalen Rollenberechtigungen zu steuern.
  5. Geben Sie im Suchfeld RestrictedRegionPermissionsBoundary ein und wählen Sie dann das Optionsfeld für Ihre Richtlinie aus.
  6. Wählen Sie Weiter:Tags.
  7. Prüfen Sie Ihre Einstellungen und erstellen Sie einen Benutzer.

Verwandte Informationen

Berechtigungsgrenzen für IAM-Entitäten

Bewertung effektiver Berechtigungen mit Grenzen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren