基于Cognito Identity ID的API网关调用的IAM策略

时间:2016-08-10 22:32:54

标签: amazon-iam amazon-cognito aws-api-gateway

我希望允许Cognito经过身份验证的用户调用API网关端点,但将其限制为自己的资源,例如  '/users/<IdentityID>/*'。

我准备了像这样的IAM角色。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "execute-api:Invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:ap-northeast-1:*:MyAPIID/*/*/users/${cognito-identity.amazonaws.com:sub}*"
            ]
        }
}

但是在这个设置上,当我尝试调用时出现403错误。

如果我将${cognito-identity.amazonaws.com:sub}替换为实际身份ID(例如ap-northeast-1%3Ad8515ae9-62b5-4cba-af5c-195f5d7e1d07),则可以。

我们无法在API网关资源上使用${cognito-identity.amazonaws.com:sub},我们可以吗?

1 个答案:

答案 0 :(得分:1)

这是正确的。目前,它只是S3和DynamoDB的快捷方式。