【问题标题】:AWS Lambda Functions: it doesn't show list of existing rolesAWS Lambda 函数:它不显示现有角色的列表
【发布时间】:2021-01-08 10:20:20
【问题描述】:
我在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"
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
aws-lambda
amazon-iam
【解决方案1】:
从您的屏幕截图中,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 创建新角色。