gpt4 book ai didi

amazon-web-services - AWS Lambda 无权执行权限中列出的操作

转载 作者:行者123 更新时间:2023-12-03 14:00:20 24 4
gpt4 key购买 nike

我有一个非常简单的 AWS Lambda 函数——只列出我所有的 CloudWatch 事件:

import boto3

def lambda_handler(event, context):
client = boto3.client("events")
return client.list_rules()

但是,当我尝试运行它时(使用空测试事件: {} ),我收到以下权限异常:
An error occurred (AccessDeniedException) when calling the ListRules operation:
User: arn:aws:sts::123321123321:assumed-role/lambda+basicEvents/lambdaName
is not authorized to perform: events:ListRules
on resource: arn:aws:events:eu-west-1:123321123321:rule/*

我确实将此策略附加到 lambda 执行角色(并且我可以看到 lambda 的权限选项卡中列出的操作):
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BasicCloudWatchEventsManager",
"Effect": "Allow",
"Action": [
"events:DescribeRule",
"events:EnableRule",
"events:PutRule",
"events:ListRules",
"events:DisableRule"
],
"Resource": "arn:aws:events:*:*:rule/[*/]*"
}
]
},
"name": "BasicCloudWatchEventsManager",
"id": "SOME7LONG7ID",
"type": "managed",
"arn": "arn:aws:iam::123321123321:policy/BasicCloudWatchEventsManager"
}

我已经使用他们提供的可视化编辑器构建了策略,只是更改了 sid手动。

任何可能丢失的线索?

最佳答案

在经历了很多挫折之后,我想通了。
在可视化策略编辑器中,选择资源为 any rule ,添加和 ARN 并为所有选项选择“任何”将创建在策略中添加以下行:

"Resource": "arn:aws:events:*:*:rule/[*/]*"

这意味着什么:
  • 事件资​​源
  • 在任何 ( * ) 区域
  • 在任何帐户
  • 在任何事件总线中,如果规则属于一个(这是 [*/] 部分)
  • 任何名字

  • 然而,看起来亚马逊的逻辑有点困惑,可选部分不起作用,可能是字面意思。所以我必须做的来修复它是将其更改为:
    "Resource": "arn:aws:events:*:*:rule/*"

    有了这个,它可以毫无问题地工作。

    关于amazon-web-services - AWS Lambda 无权执行权限中列出的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61141640/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com