Come posso risolvere gli errori "HTTP 403 Forbidden" (HTTP 403 Non consentito) quando richiamo la mia API con l'autenticazione IAM multi-account per API Gateway?

2 minuti di lettura
0

Ho chiamato la mia API di Gateway Amazon API con un'entità AWS Identity and Access Management (IAM) multi-account (utente o ruolo). Viene visualizzato l'errore "HTTP 403 Forbidden" (HTTP 403 Non consentito).

Risoluzione

REST API

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

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

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

{
  "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 permettere all'utente IAM per l'account B nell'account A di richiamare l'accesso multi-account, utilizza una policy delle 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 la pagina In che modo è possibile attivare l'autenticazione IAM per le REST API di API Gateway?

API HTTP

Per accedere alle API HTTP di API Gateway, è possibile utilizzare l'azione API sts: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 la pagina Come posso fornire l'autorizzazione IAM tra account per le API HTTP di API Gateway?


Informazioni correlate

Esempi di policy delle risorse API Gateway