use*_*858 1 amazon-web-services terraform
当我尝试运行 Lambda 函数时收到以下错误。如何解决这个问题。
{
"errorMessage": "An error occurred (AccessDenied) when calling the PutMetricData
operation: User: arn:aws:sts::12345678:assumed-role/someRole/role is not authorized
to perform: cloudwatch:PutMetricData",
Run Code Online (Sandbox Code Playgroud)
您需要允许someRole(由 lambda 函数假定的)将指标写入 cloudwatch。该政策应如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["cloudwatch:PutMetricData"], # add more actions if needed
"Resource": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
编辑 关于OP评论关于你应该使用什么作为资源而不是“ ”*
PutMetricData没有资源级权限,因此必须为“*”。如果您使用命名空间,则可以使用条件键来限制对命名空间的访问。
例如:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Resource": "*",
"Action": "cloudwatch:PutMetricData",
"Condition": {
"StringEquals": {
"cloudwatch:namespace": "MyNamespace"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |