Wie behebe ich den Fehler „Benutzer/IAM-Rolle X ist nicht autorisiert, Y auf Ressource Z auszuführen“ in AWS Glue?

Lesedauer: 4 Minute
0

Meine AWS-Glue-Aufgabe schlägt fehl und es werden keine Berechtigungen für AWS Identity and Access Management (IAM) angezeigt, obwohl ich die erforderlichen Berechtigungen konfiguriert habe.

Lösung

In AWS Glue kann Ihre Aktion aus den folgenden Gründen mit dem Fehler „Fehlende Berechtigungen“ fehlschlagen:

  • Der IAM-Benutzer oder die IAM-Rolle, die Sie verwenden, verfügt nicht über die erforderlichen Berechtigungen.
  • Der IAM-Benutzer ist Teil einer Organisation in AWS Organizations, die über eine Service-Kontrollrichtlinie (SCP) verfügt, die bestimmte Aktionen einschränkt
  • Das verwendete Subnetz verfügt über einen Endpunkt der Virtual Private Cloud (VPC) mit einer Richtlinie, die einige Aktionen zulässt oder verweigert.

Der verwendete IAM-Benutzer oder die verwendete IAM-Rolle verfügt nicht über die erforderlichen Berechtigungen

Sehen Sie sich dieses Beispiel für einen Fehler „Fehlende Berechtigungen“ an:

"Aufgabe konnte nicht erstellt werden gluestudio-service.us-east-1.amazonaws.com] mit Ausnahme "errorMessage":"User: arn:aws:sts::<AccountID>:assumed-role/<ConsoleAssumedRole>/<user> ist nicht autorisiert auszuführen: iam:PassRole auf der Ressource: arn:aws:iam::<AccountID>:role/<GlueRoleName>"

Sie können diesen Fehler in drei Faktoren unterteilen:

  • Der Benutzer/Die IAM-Rolle, die die Aktion aufruft – arn:aws:iam::111111111111111:role/service-role/AWSGlue-xxxxxx
  • Die Aktion – iam:PassRole
  • Die Ressource, für die die Aktion ausgeführt wird – arn:aws:iam::xxxxxxxxxxxxxxxx:role/AWSGlue

Stellen Sie sicher, dass der verwendete Benutzer oder die verwendete IAM-Rolle über die erforderliche Aktion für die Ressource verfügt.

1.    Öffnen Sie die IAM-Konsole.

2.    Suchen Sie nach dem Benutzer oder der IAM-Rolle, die Sie verwenden, und überprüfen Sie die zugehörigen Richtlinien. Im vorherigen Beispiel lautet die Rolle arn:aws:iam::xxxxxxxxx:user/yyyyyyyyyyy.

3.    Fügen Sie eine Inline-Richtlinie hinzu, die der folgenden ähnelt und die die erforderliche Aktion für die Ressource ermöglicht:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "FirstStatement",
      "Effect": "Allow",
      "Action": ["Action"],
      "Resource": "<ARN of resource>"
    }
  ]
}

Hinweis: Ersetzen Sie Aktion und ARN der Ressource in diesem Beispiel durch die spezifische Aktion und Ressource, die Sie zuvor in der Fehlermeldung identifiziert haben.

Anhand des vorherigen Beispiels sieht Ihre Richtlinie etwa wie folgt aus:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PassRolePermissions",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::<AccountID>:role/<GlueRoleName>"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": [
            "glue.amazonaws.com"
          ]
        }
      }
    }
  ]
}

Das SCP einer Organisation verhindert eine Aktion auf die Ressource

Möglicherweise erhalten Sie einen Fehler ähnlich dem folgenden:

"createJob: AccessDeniedException: User: arn:aws:sts::111111111111111:assumed-role/xxxxxxxxxx ist nicht autorisiert auszuführen: glue:CreateJob auf Ressource: arn:aws:glue:region:22222222222222:job/glue-job mit einer ausdrücklichen Ablehnung in einer Service-Control-Richtlinie"

Dieser Fehler wird ausgelöst, weil Ihr IAM-Benutzer Teil einer Organisation ist, in der SCPs eingerichtet sind. Das SCP verhindert, dass Sie bestimmte Aktionen ausführen. Gehen Sie wie folgt vor, um die mit Ihrem SCP verknüpften Berechtigungen zu überprüfen:

1.    Öffnen Sie die IAM-Konsole.

2.    Wählen Sie Organisationsaktivität und dann den Tab Zugewiesene SCP aus.

3.    Überprüfen Sie die SCPs, die Ihrem IAM-Benutzer zugewiesen sind. Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen verfügen, um die gewünschte Aktion für die von Ihnen verwendete Ressource auszuführen.

Das verwendete Subnetz verfügt über einen VPC-Endpunkt mit einer Richtlinie, die einige Aktionen zulässt oder verweigert

Möglicherweise erhalten Sie einen Fehler ähnlich dem folgenden:

„Benutzer: arn:aws:sts::1111111111:assumed-role/xxxxxxxxx/yyyyyyyyyyy ist nicht autorisiert: glue:CreateJob auszuführen, da keine VPC-Endpunktrichtlinie die Aktion glue:CreateJob zulässt (Service: Glue, Status Code: 400, Request ID:111111111111111)“

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:

1.    Öffnen Sie die Konsole der Amazon Virtual Private Cloud (Amazon VPC).

2.    Wählen Sie Endpunkte und dann den VPC-Endpunkt aus, der an das Subnetz angeschlossen ist, das Sie verwenden, um Ihre Aktion abzuschließen.

3.    Wählen Sie unter Aktionen die Option Richtlinie verwalten aus.

4.    Aktualisieren Sie die VPC-Endpunktrichtlinie mit der gewünschten Aktion für die erforderliche Ressource.

In diesem Beispiel aktualisieren Sie die VPC-Endpunktrichtlinie, die erforderlich ist, um die Aktion glue:CreateJob hinzuzufügen:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Principal": "*",
      "Effect": "Allow",
      "Action": [
        "glue:CreateJob"
      ],
      "Resource": "*"
    }
  ]
}

Ähnliche Informationen

IAM-Rolle für AWS Glue erstellen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr