CloudFormation配置IAM用户组访问指定Lambda遇权限问题求助
解决IAM用户访问指定Lambda函数时的权限报错问题
问题原因
通过AWS控制台访问Lambda服务时,控制台会自动调用lambda:GetAccountSettings接口获取账户级配置信息,该操作的资源只能指定为*。你之前的IAM策略仅针对MyFunction和MyFunction2这两个特定函数授权,未包含这个控制台访问必需的权限,因此触发权限报错。
解决方案
更新关联到XXXGroup用户组的IAM策略,补充lambda:GetAccountSettings权限(资源设为*),同时保留对指定Lambda函数的调用权限。如果需要在控制台查看指定函数的详情,还可补充相关函数信息查询权限。修正后的策略示例如下:
{ "Version": "2012-10-17", "Statement": [ // 允许调用指定Lambda函数 { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:你的AWS区域:你的账户ID:function:MyFunction", "arn:aws:lambda:你的AWS区域:你的账户ID:function:MyFunction2" ] }, // 控制台访问必需的账户级权限 { "Effect": "Allow", "Action": "lambda:GetAccountSettings", "Resource": "*" }, // 可选:允许在控制台查看指定函数的详情 { "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:你的AWS区域:你的账户ID:function:MyFunction", "arn:aws:lambda:你的AWS区域:你的账户ID:function:MyFunction2" ] } ] }
操作步骤
- 登录AWS IAM控制台,找到XXXGroup用户组关联的策略。
- 编辑该策略,替换为上述修正后的内容(注意替换占位符为你的实际区域和账户ID)。
- 保存策略后,让XXUser重新登录AWS控制台,即可正常访问指定的Lambda函数。
内容的提问来源于stack exchange,提问作者daocc
相关产品推荐
相关产品推荐

