【发布时间】:2016-10-02 06:09:36
【问题描述】:
我正在为我用来运行 Lambda 函数的用户角色之一制定访问策略。我有这个:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
}
我知道将我的资源设置为 * 不是最佳做法,但我只是想在我锁定它的最锁定版本之前让它工作。
当我测试我的 lambda 函数时,它会这样说:
ClientError: An error occurred (AccessDeniedException) when calling the Invoke operation: User: arn:aws:sts::{NUMBERS}:assumed-role/{ROLE_NAME}/awslambda_{NUMBERS}_{NUMBERS} is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-east-1:{NUMBERS}:function:{FUNCTION_NAME}
我显然已经用花括号和单词掩盖了上面的一些内容,但上面的 ROLE_NAME 与我正在为其编辑策略的角色名称相匹配。我不确定它为什么会失败。我已经尝试过以下资源:
arn:aws:lambda:*:*:*:*
arn:aws:lambda:*:*:*
那些不起作用。所以我尝试了非常广泛的范围,我尝试缩小范围,但没有任何效果。我还需要做些什么才能让它们坚持下去吗?我在一个屏幕上打开了 IAM 策略窗口,在另一个屏幕上打开了 lambda,因此我在更新策略后立即进行测试,但我也完全注销并重新登录以查看是否有问题。这并没有解决问题。
有什么想法吗?
【问题讨论】:
标签: amazon-web-services aws-lambda