Come posso risolvere gli errori “HTTP 403 Forbidden” quando richiamo la mia API con l'autenticazione IAM multi-account per API Gateway?

2 minuti di lettura
0

Ho chiamato la mia API Amazon API Gateway con un'entità AWS Identity and Access Management (IAM) multi-account (utente o ruolo). Ricevo un errore “HTTP 403 Forbidden”.

Risoluzione

API REST

Per accedere alle API REST di API Gateway, attiva l'autenticazione IAM per un metodo API nella console API Gateway. Quindi, utilizza le policy IAM e le policy delle risorse per designare le autorizzazioni per gli utenti della tua API.

Assicurati che l'entità IAM multi-account disponga delle autorizzazioni per richiamare l'API e che sia autorizzata all'accesso nella policy delle risorse.

In questo esempio, l'API REST per l'account A 111111111 ha l'autenticazione IAM abilitata. L'utente 1 tenta di richiamare dall'account B 999999999. L'utente 1 nell'account B ha la seguente politica IAM allegata:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "execute-api:Invoke",
        "execute-api:ManageConnections"
      ],
      "Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/*/*/*"
    }
  ]
}

Per consentire all'utente IAM dell'account B nell'account A di richiamare l'accesso multi-account, utilizza una policy sulle risorse simile alla seguente:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::999999999:user/User1"
      },
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/stage/*/*"
    }
  ]
}

Per ulteriori informazioni, consulta Come posso attivare l'autenticazione IAM per le API REST di API Gateway?

API HTTP

Per accedere alle API HTTP di API Gateway, puoi utilizzare l'azione dell’APIsts:AssumeRole per assumere un ruolo per l'account dell’API HTTP. Il ruolo assunto fornisce credenziali di sicurezza temporanee che possono essere utilizzate per richiamare l'API HTTP in un altro account.

Assicurati che le credenziali di sicurezza temporanee utilizzate per richiamare l'API HTTP siano corrette e non scadute.

Per ulteriori informazioni, consulta Come posso fornire l'autorizzazione IAM multi-account per le API HTTP di API Gateway?

Informazioni correlate

Esempi di policy delle risorse di API Gateway