다른 AWS 계정에서 Amazon API Gateway API에 액세스하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 10월 3일

다른 AWS 계정에서 Amazon API Gateway API에 액세스하고 싶습니다. 어떻게 해야 합니까?

간략한 설명

퍼블릭 API 엔드포인트(리전 또는 엣지 최적화)는 퍼블릭 엔드포인트 단계 URL 또는 사용자 지정 도메인 이름에서 직접 액세스할 수 있습니다.

프라이빗 REST API 엔드포인트는 인터페이스 VPC 엔드포인트를 사용하여 Amazon Virtual Private Cloud(VPC)의 가상 프라이빗 클라우드에서만 액세스할 수 있습니다.

Amazon API Gateway 엔드포인트는 크로스 계정 액세스를 통한 AWS Identity and Access Management(IAM) 인증을 사용하여 액세스할 수 있습니다.

해결 방법

퍼블릭 API 엔드포인트

API 단계 URL에서 직접 API Gateway 퍼블릭 엔드포인트에 액세스할 수 있습니다. 예시로는 https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}이 있습니다.

퍼블릭 호스팅 영역에서 사용자 지정 도메인 이름을 사용하여 API Gateway 퍼블릭 엔드포인트에 액세스할 수도 있습니다.

참고: 사용자 지정 도메인 이름은 프라이빗 API에서 지원되지 않습니다.

자세한 내용은 API Gateway API에 대한 사용자 지정 도메인 이름을 설정하려면 어떻게 해야 합니까?을 참조하십시오.

프라이빗 REST API 엔드포인트

인터페이스 엔드포인트를 사용하여 Amazon Virtual Private Cloud(VPC)를 통해 다른 AWS 계정에서 API Gateway 프라이빗 REST API에 액세스할 수 있습니다.

프라이빗 REST API가 AWS 계정에 위치하고 다른 계정에서 액세스하려는 경우 리소스 정책을 편집할 수 있습니다.

자세한 내용은 인터페이스 VPC 엔드포인트를 사용하여 다른 AWS 계정의 API Gateway 프라이빗 REST API에 액세스하려면 어떻게 해야 합니까?를 참조하십시오.

IAM 인증을 사용하는 API

IAM 인증을 사용하는 크로스 계정 액세스를 통해 API Gateway API에 액세스하려면 추가 구성이 필요합니다. 소스 계정의 IAM 역할에 대하여 다음과 유사한 리소스 정책에서 명시적으로 액세스를 허용해야 합니다.

REST API

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::account-id-2:user/Alice",
          "account-id-2"
        ]
      },
      "Action": "execute-api:Invoke",
      "Resource": [
        "arn:aws:execute-api:us-east-1:{account-id}:{api-id}/*/*/*"
      ]
    }
  ]
}

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

HTTP API

리소스 정책을 사용하여 교차 계정에 대한 IAM 인증을 제공하는 옵션은 API Gateway HTTP API에 대하여 사용할 수 없습니다.

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

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