amazon-web-services - AWS Lambda 函数:它不显示现有角色的列表
问题描述
我创建了一个IAM
基于AmazonEC2FullAccess
策略的角色。此角色在 中正确创建IAM
。但同样的角色似乎没有附加lambda
功能。
有人可以帮忙吗。我有管理员访问权限,因此我遇到了以下错误。
(AccessDenied) when calling the PutMetricAlarm operation: User: arn:aws:sts::xxx:assumed-role/lambdaEC2fullaccess/StopEc2 is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::xxx:role/aws-service-role/events.amazonaws.com/AWSServiceRoleForCloudWatchEvents"
解决方案
从您的屏幕截图中,该AmazonEC2FullAccess
角色似乎适用于 EC2 实例,而不是 lambda。您可以通过进入 IAM 控制台、单击AmazonEC2FullAccess
并检查其信任关系来验证这一点。
例如,如果信任策略是,它将如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
但是,Lambda 的 IAM 信任策略应如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
您可以编辑信任策略,并刷新您的 lambda 控制台窗口。或者您可以从一开始就为 lambda 创建新角色。
推荐阅读
- java - 如何在 Firebase 存储中上传位图屏幕截图并获取其下载 URL?(了解已弃用的 getDownloadURL())
- eclipse - Tomcat 应用程序使用完整的路径和资源,否则不能
- delphi - 如何从注册表 HKEY_LOCAL_MACHINE 中读取?
- oracle - 为什么 oracle 选择 INDEX FULL SCAN 然后选择 ACCESS BY INDEX ROWID vs FULL TABLE SCAN?
- java - JSON解析字符串失败,但Java中的数字通过
- node.js - 如何在节点中的 2 个嵌套循环后执行代码
- swift - 在 Swift 中计算方程
- python - 通过python将随机数据插入到具有MySQL数据库外键的表中
- python - Socks5 代理引发“连接意外关闭”和“[Errno 104] 对等连接重置”
- c# - C#如何使用反射获取另一个类中变量的值