Amazon web services API网关资源策略:将IAM角色指定为AWS主体

Amazon web services API网关资源策略:将IAM角色指定为AWS主体,amazon-web-services,aws-api-gateway,Amazon Web Services,Aws Api Gateway,我正在尝试使用资源策略设置API网关终结点,该策略允许访问我帐户中的特定IAM角色。IAM角色是跨帐户的,设置时使用信任策略,该策略允许AssumeRole从另一个帐户向特定IAM用户主体提供信任 在API网关资源策略中,当我将AWS主体设置为角色ARN:ARN:AWS:iam::********:role/myRole时,调用API时出现以下403错误: User: arn:aws:sts::********:assumed-role/myRole/mySession is not autho

我正在尝试使用资源策略设置API网关终结点,该策略允许访问我帐户中的特定IAM角色。IAM角色是跨帐户的,设置时使用信任策略,该策略允许AssumeRole从另一个帐户向特定IAM用户主体提供信任

在API网关资源策略中,当我将AWS主体设置为角色ARN:
ARN:AWS:iam::********:role/myRole
时,调用API时出现以下403错误:

User: arn:aws:sts::********:assumed-role/myRole/mySession is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:us-west-2:********:********/test/POST/echo
但是,如果我将AWS主体更改为临时STS用户ARN:
ARN:AWS:STS::*********:假定角色/myRole/mySession
,那么我可以成功调用API

以下是不起作用的资源策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::********:role/myRole"
        },
        "Action": "execute-api:Invoke",
        "Resource": "arn:aws:execute-api:us-west-2:********:********/*"
    }
]
}

以下是有效的资源策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:sts::********:assumed-role/myRole/mySession"
        },
        "Action": "execute-api:Invoke",
        "Resource": "arn:aws:execute-api:us-west-2:********:********/*"
    }
]
}


IAM角色可以用作API网关资源策略的AWS主体吗?

找到答案了吗?我也在想办法