Come posso risolvere l'errore "User/IAM role X is not authorized to perform Y on resource Z" error in AWS Glue (L'utente/ruolo IAM X non è autorizzato a eseguire Y sulla risorsa Z in AWS Glue)?

4 minuti di lettura
0

Il processo AWS Glue non riesce a causa della mancanza di un errore nelle autorizzazioni AWS Identity and Access Management (IAM), anche se ho configurato le autorizzazioni richieste.

Risoluzione

In AWS Glue, un'operazione può fallire con un errore di mancanza di autorizzazioni per i seguenti motivi:

  • L'utente o il ruolo IAM che stai utilizzando non ha le autorizzazioni richieste.
  • L'utente IAM fa parte di un'organizzazione in AWS Organizations che ha in essere una policy di controllo dei servizi che limita operazioni specifiche
  • La sottorete utilizzata dispone di un endpoint cloud privato virtuale (VPC) con una policy che consente o nega alcune operazioni.

L'utente o il ruolo IAM utilizzato non dispone delle autorizzazioni richieste

Guarda questo esempio di errore di mancanza di autorizzazioni:

"Failed to create job gluestudio-service.us-east-1.amazonaws.com] with exception "errorMessage":"User: arn:aws:sts::<AccountID>:assumed-role/<ConsoleAssumedRole>/<user> is not authorized to perform: iam:PassRole on resource: arn:aws:iam::<AccountID>:role/<GlueRoleName>"

Puoi suddividere questo errore in tre fattori:

  • L'utente/ruolo IAM chiama l'operazione - arn:aws:iam::111111111111111:role/service-role/AWSGlue-xxxxxx
  • L'operazione - iam:PassRole
  • La risorsa su cui viene eseguita l'operazione -arn:aws:iam::xxxxxxxxxxxxxxxx:role/AWSGlue

Verifica che l'utente o il ruolo IAM utilizzato esegua l'operazione richiesta sulla risorsa.

1.    Apri la console IAM.

2.    Cerca l'utente o il ruolo IAM che stai utilizzando e controlla le policy ad esso associate. Nell'esempio precedente, il ruolo è arn:aws:iam::xxxxxxxxx:user/yyyyyyyyyyy.

3.    Aggiungi una policy in linea simile alla seguente che permetta l'operazione richiesta sulla risorsa:

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

Nota: in questo esempio, sostituisci Action (Operazione) e ARN of resource (ARN della risorsa) con l'operazione e la risorsa specifiche che precedentemente identificate dal messaggio di errore.

Utilizzando l'esempio precedente, la tua policy sarà simile a questa:

{
  "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"
          ]
        }
      }
    }
  ]
}

L'SCP di un'organizzazione impedisce un'operazione sulla risorsa

Potresti ricevere un errore simile a questo:

"createJob: AccessDeniedException: User: arn:aws:sts::111111111111111:assumed-role/xxxxxxxxxx is not authorized to perform: glue:CreateJob on resource: arn:aws:glue:region:22222222222222:job/glue-job with an explicit deny in a service control policy"

Questo errore viene generato perché l'utente IAM fa parte di un'organizzazione che dispone di SCP. L'SCP ti impedisce di eseguire operazioni specifiche. Per verificare le autorizzazioni associate al tuo SCP, segui questi passaggi:

1.    Apri la console IAM.

2.    Scegli Organization Activity (Attività dell'organizzazione), quindi seleziona la scheda Attached SCP (SCP collegato).

3.    Esamina gli SCP collegati al tuo utente IAM. Assicurati di disporre delle autorizzazioni necessarie per completare l'operazione desiderata sulla risorsa che stai utilizzando.

La sottorete utilizzata dispone di un endpoint VPC con una policy che consente o nega alcune operazioni

Potresti ricevere un errore simile a questo:

"User: arn:aws:sts::1111111111:assumed-role/xxxxxxxxx/yyyyyyyyyyy is not authorized to perform: glue:CreateJob because no VPC endpoint policy allows the glue:CreateJob action (Service: Glue, Status Code: 400, Request ID:111111111111111)"

Per risolvere questo problema, procedi come segue:

1.    Apri la console Amazon Virtual Private Cloud (Amazon VPC).

2.    Scegli Endpoints (Endpoint), quindi scegli l'endpoint VPC collegato alla sottorete che stai utilizzando per completare la tua operazione.

3.    In Actions (Operazioni), seleziona Manage Policy (Gestisci policy).

4.    Aggiorna la policy degli endpoint VPC con l'operazione desiderata sulla risorsa richiesta.

In questo esempio, la policy degli endpoint VPC richiesta viene aggiornata per aggiungere l'operazione glue:CreateJob:

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

Informazioni correlate

Crea un ruolo IAM per AWS Glue

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa