API Gateway에 대한 교차 계정 IAM 인증을 사용하여 API를 호출할 때 "HTTP 403 Forbidden" 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

교차 계정 AWS Identity and Access Management(IAM) 엔티티(사용자 또는 역할)를 사용하여 Amazon API Gateway API를 호출할 때 "HTTP 403 Forbidden" 오류가 발생합니다.

해결 방법

REST API

API Gateway REST API에 액세스하려면 API Gateway 콘솔에서 API 메서드의 IAM 인증을 켭니다. 그런 다음 IAM 정책과 리소스 정책을 사용하여 API 사용자의 권한을 지정합니다.

교차 계정 IAM 엔티티에 API를 호출할 권한이 있고, 리소스 정책에서 액세스가 허용되는지 확인하세요.

이 예제에서는 계정 A 111111111에 대한 REST API에 IAM 인증이 활성화되어 있습니다. 사용자1이 계정 B 999999999에서 호출을 시도합니다. 계정 B의 User1에는 다음과 같은 IAM 정책이 연결되어 있습니다.

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

계정 A에 속한 계정 B의 IAM 사용자가 크로스 계정 액세스를 호출하도록 허용하려면 다음과 비슷한 리소스 정책을 사용하십시오.

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

자세한 내용은 API Gateway REST API에 대한 IAM 인증을 활성화하려면 어떻게 해야 합니까?를 참조하십시오.

HTTP API

API 게이트웨이 HTTP API에 액세스하려면 sts:AssumeRole API 작업을 사용하여 HTTP API 계정에 대한 역할을 위임할 수 있습니다. 위임된 역할은 다른 계정에서 HTTP API를 호출하는 데 사용할 수 있는 임시 보안 인증 정보를 제공합니다.

HTTP API를 호출하는 데 사용한 임시 보안 인증이 올바르고 만료되지 않았는지 확인하십시오.

자세한 내용은 API Gateway HTTP API에 대한 교차 계정 IAM 권한 부여를 제공하려면 어떻게 해야 합니까?를 참조하십시오.


관련 정보

API Gateway 리소스 정책 예제