DataWorks中oss已经一键授权了,运行还是出现没有权限?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在DataWorks中,即使已经对OSS进行了一键授权,运行时仍然出现“没有权限”的问题,可能是由于以下原因导致的。以下是详细分析和解决方法:
一键授权后,MaxCompute通过STS(安全令牌服务)访问OSS数据。如果STS Token中的Policy参数未正确配置,可能会导致权限不足的问题。
oss:GetObject
、oss:PutObject
等。{
"Statement": [
{
"Action": ["oss:GetObject"],
"Effect": "Allow",
"Resource": ["acs:oss::123456789012:my-bucket/*"]
}
],
"Version": "1"
}
一键授权后,MaxCompute会以表创建者的身份申请STS权限。如果RAM角色的信任策略未正确配置,可能导致MaxCompute无法成功获取STS Token。
odps.aliyuncs.com
的信任关系。示例信任策略如下:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": ["odps.aliyuncs.com"]
}
}
],
"Version": "1"
}
即使STS Token和RAM角色配置正确,如果OSS Bucket本身的权限设置限制了访问,也会导致权限不足的问题。
{
"Statement": [
{
"Action": ["oss:GetObject", "oss:ListObjects"],
"Effect": "Allow",
"Principal": {
"RAM": ["acs:ram::123456789012:role/AliyunODPSDefaultRole"]
},
"Resource": ["acs:oss::123456789012:my-bucket/*"]
}
],
"Version": "1"
}
MaxCompute与OSS是独立的服务,网络连通性可能影响访问权限的可达性。
-internal.aliyuncs.com
结尾)进行访问。一键授权可能因某些原因未成功完成,例如授权过程中断或权限未正确同步。
AliyunOSSFullAccess
或自定义权限策略。根据上述分析,建议按照以下步骤排查问题: 1. 检查STS Token的Policy配置是否正确。 2. 确认RAM角色的信任策略是否包含对odps.aliyuncs.com
的信任。 3. 检查OSS Bucket的权限设置,确保允许MaxCompute访问。 4. 确保网络连通性正常,优先使用OSS私网地址。 5. 重新执行一键授权或手动进行RAM授权。
如果以上步骤仍无法解决问题,请联系阿里云技术支持,提供具体的错误信息和日志以便进一步排查。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。