Ir para o conteúdo

Como posso resolver os erros de “HTTP 403 Proibido” ao invocar minha API com autenticação IAM entre contas para o API Gateway?

2 minuto de leitura
0

Liguei para minha API da Amazon API Gateway com uma entidade (usuário ou perfil) do AWS Identity and Access Management (AWS IAM) entre contas. Recebo um erro “HTTP 403 Proibido”.

Resolução

APIs REST

Para acessar as APIs REST do API Gateway, ative a autenticação IAM para um método de API no console do API Gateway. Em seguida, use políticas do IAM e políticas de recursos para designar permissões para os usuários da sua API.

Certifique-se de que a entidade IAM entre contas tenha permissões para invocar a API e tenha acesso permitido na política de recursos.

Neste exemplo, a API REST para a conta A 111111111 tem a autenticação IAM ativada. O usuário1 tenta invocar a partir da conta B 999999999. O usuário1 na conta B tem a seguinte política do IAM anexada:

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

Para permitir que o usuário do IAM da conta B na conta A invoque o acesso entre contas, use uma política de recursos semelhante à seguinte:

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

Para obter mais informações sobre testes, consulte Como eu ativo a autenticação do IAM para APIs REST da API Gateway?

APIs HTTP

Para acessar as APIs HTTP da API Gateway, é possível usar a ação da API sts:AssumeRole para assumir um perfil para a conta da API HTTP. O perfil assumido fornece credenciais de segurança temporárias que podem ser usadas para invocar a API HTTP em outra conta.

Certifique-se de que as credenciais de segurança temporárias usadas para invocar a API HTTP estejam corretas e não tenham expirado.

Para obter mais informações, consulte Como posso fornecer autorização de IAM entre contas para APIs HTTP da API Gateway?

Informações relacionadas

Exemplos de políticas de recursos da API Gateway