首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS API网关-设置跨帐户访问中的问题

AWS API网关-设置跨帐户访问中的问题
EN

Stack Overflow用户
提问于 2020-10-09 13:28:14
回答 1查看 1.6K关注 0票数 1

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

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

对相同的许可看起来如下:

代码语言:javascript
复制
{
            "Sid": "InvokeAPI",
            "Effect": "Allow",
            "Action": "execute-api:Invoke",
            "Resource": "*"
}

当我试图从accountA中的实例中调用API时,它是按预期工作的。但是,当我试图从accountB中的实例中调用API时,网关将返回一个403错误,其中包含以下消息:

代码语言:javascript
复制
User: arn:aws:sts::accountB:assumed-role/invoke_api_iam_role/i-xxxxxxxxx is not authorized to access this resource

我试着查看API网关资源策略,并试图在accountB API的资源策略中白名单accountB的EC2 IAM角色,但是,我还是遇到了同样的错误。

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

代码语言:javascript
复制
{
    "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网关,我使用aws-请求-auth

请帮助解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-10 06:26:00

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64281065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档