You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为AWS Lambda添加OpenTelemetry层时遇GetLayerVersion权限错误

AWS Lambda添加OpenTelemetry层权限错误排查与解决

问题描述

在为Python Lambda函数添加ARN为arn:aws:lambda:ap-southeast-2:901920570463:layer:aws-otel-python-x86_64-ver-1-17-0:1的OpenTelemetry层时,触发如下权限错误:

"arn:aws:iam::myaccountid:root is not authorized to perform:lambda:GetLayerVersion on resource arn:aws:lambda:ap-southeast-2:901920570463:layer:aws-otel-python-x86_64-ver-1-17-0:1"

已尝试的操作包括:添加lambda:GetLayerVersion权限、为Lambda配置全权限、创建拥有全权限的IAM用户,但问题未解决。使用个人AWS免费套餐账户,目标是配置OpenTelemetry将遥测数据发送至Grafana。

排查与解决步骤

  • 验证层的跨账户访问权限:该层所属账户901920570463为AWS在ap-southeast-2区域的托管账户,但需确认此层是否开放跨账户访问权限。部分共享层默认仅允许同账户使用,若为第三方共享层,需层的所有者配置资源策略开放权限。
  • 检查IAM权限限制:即使配置了全权限,也要排查是否存在IAM边界策略或**服务控制策略(SCP)**拦截请求。免费套餐账户默认无SCP,但如果曾设置过IAM边界策略,可能会限制lambda:GetLayerVersion操作。
  • 使用标准AWS托管ADOT层ARN:AWS托管的ADOT Python层命名格式为arn:aws:lambda:ap-southeast-2:901920570463:layer:aws-otel-python<版本号>:<层版本>(例如Python3.8对应aws-otel-python3-8),你使用的ARN命名格式非标准,建议确认层的合法性,优先使用官方托管层。
  • 自行部署ADOT层到本地账户:若跨账户层无法访问,可手动将ADOT Python层代码打包部署到自己的账户:
    1. 从ADOT官方仓库获取对应版本的Python层代码
    2. 将代码打包为zip格式
    3. 在Lambda控制台创建自定义层并上传zip包
    4. 为Lambda函数添加本地账户内的自定义层
  • 核对资源ARN准确性:确认层ARN的区域、账户ID、层名称、版本号无拼写错误,错误的ARN会导致权限验证失败。

内容的提问来源于stack exchange,提问作者Yadukrishnan P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:50:17