Amazon web services AWS API网关-设置跨帐户访问时的问题

Amazon web services AWS API网关-设置跨帐户访问时的问题,amazon-web-services,authentication,amazon-ec2,aws-api-gateway,Amazon Web Services,Authentication,Amazon Ec2,Aws Api Gateway,我正在尝试使用accountA中现有的API网关。我有一些EC2实例,它们有一些脚本来调用API网关。这些实例可能/可能不与我的API网关所在的AWS帐户位于同一个AWS帐户中(让我们将另一个帐户称为accountB) 对于当前的身份验证部分,只有AWS_IAM身份验证在API网关级别实现。EC2实例(在两个帐户中)附加了IAM角色,这些角色具有调用API的IAM权限 对相同项目的权限看起来如下所示: { "Sid": "InvokeAPI&

我正在尝试使用
accountA
中现有的API网关。我有一些EC2实例,它们有一些脚本来调用API网关。这些实例可能/可能不与我的API网关所在的AWS帐户位于同一个AWS帐户中(让我们将另一个帐户称为
accountB

对于当前的身份验证部分,只有
AWS_IAM
身份验证在API网关级别实现。EC2实例(在两个帐户中)附加了IAM角色,这些角色具有调用API的IAM权限

对相同项目的权限看起来如下所示:

{
            "Sid": "InvokeAPI",
            "Effect": "Allow",
            "Action": "execute-api:Invoke",
            "Resource": "*"
}
当我尝试从
accountA
中的实例调用API时,它正按预期工作。但是,当我尝试从
accountB
中的实例调用API时,网关返回403错误,并显示以下消息:

User: arn:aws:sts::accountB:assumed-role/invoke_api_iam_role/i-xxxxxxxxx is not authorized to access this resource
我试图查看并试图将
accountB
的EC2 IAM角色列入
accountA
API网关的资源策略中的白名单,但仍然收到了相同的错误

在API网关上实现的当前资源策略类似于:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::accountB:role/invoke_api_iam_role"
            },
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:accountA:myAPIID/*"
        }
    ]
}
为了通过awsv4签名对API网关的请求进行签名,我使用


请帮助解决此问题。

因此,事实证明,上面的所有内容都是正确的,您需要将API部署到特定阶段,以便对其应用资源策略