Mil*_*dia 5 amazon-web-services aws-lambda
我正在为我用来运行 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": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我知道将我的资源设置*为不是最佳实践,但我只是想在我缩小它的最锁定版本之前让它工作。
当我测试我的 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}
Run Code Online (Sandbox Code Playgroud)
我显然用大括号和单词掩盖了上面的一些内容,但上面的 ROLE_NAME 与我正在编辑策略的角色名称相匹配。我不确定为什么会失败。我已经尝试过像这样的资源:
arn:aws:lambda:*:*:*:*
arn:aws:lambda:*:*:*
Run Code Online (Sandbox Code Playgroud)
那些不起作用。所以我尝试了非常广泛的尝试,我试图缩小它,但没有任何效果。我还需要做些什么才能让它们坚持下去?我在一个屏幕上打开了 IAM 策略窗口,在另一个屏幕上打开了 lambda,所以我在更新策略后立即进行测试,但我也完全注销并重新登录以查看是否有问题。那没有解决它。
有任何想法吗?
我不久前做过这个。这是我的笔记里的。当然账户支票还在。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["lambda:InvokeFunction"],
"Effect": "Allow",
"Resource": "arn:aws:lambda:*:*:*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
您还可以尝试 AWS 控制台中的 IAM 策略模拟器页面。您可以选择操作和资源,看看它是否成功。乍一看,解释有时很混乱,但很有帮助。
| 归档时间: |
|
| 查看次数: |
2868 次 |
| 最近记录: |