本文为您介绍了通过EMR访问阿里云OSS或OSS HDFS时遇到的关于AccessKey的常见问题及解决方法。
EMR集群内如何免密访问OSS/OSS-HDFS?
JindoSDK会使用创建集群时绑定的ECS应用角色(默认为AliyunECSInstanceForEMRRole)获取Security Token访问OSS或OSS-HDFS。
您可以在Hadoop-Common服务配置页面,单击core-site.xml页签,查看参数fs.oss.credentials.provider是否有参数值com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider。若没有,请添加该参数值,并单击下方的保存,即可免密访问OSS/OSS-HDFS。
如何检查EMR集群内免密服务是否可用?
方法一:执行如下命令,检索RAM角色凭证。
curl http://100.100.100.200/latest/meta-data/Ram/Security-credentials/AliyunECSInstanceForEMRRole
返回结果如果为如下格式,则表示免密服务可用。
{ "AccessKeyId" : "STS.NUreXXXXXX", "AccessKeySecret" : "BsmbnDoXXXXXXXX", "Expiration" : "2022-11-22T11:27:39Z", "SecurityToken" : "CAISlwJ1q6FXXXXXXX", "LastUpdated" : "2022-11-22T05:27:39Z", "Code" : "Success" }
方法二:配置为ECS免密。
在Hadoop-Common服务配置页面,单击core-site.xml页签,查看参数fs.oss.credentials.provider是否有参数值com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider。若没有,请添加该参数值,并单击下方的保存。
使用HDFS Shell访问OSS/OSS-HDFS,若能正常访问,则表示免密服务可用。
HiveServer2、Presto每5~6小时访问OSS/OSS-HDFS失败
部分版本有已知的免密问题。详情请参见JindoData版本已知问题。
方法一:使用固定AccessKey。
配置使用SimpleCredentialsProvider,详情请参见配置OSS/OSS-HDFS Credential Provider。
方法二:升级JindoSDK为最新版本,详情请参见EMR集群JindoSDK升级流程(新版控制台)。
访问OSS/OSS-HDFS路径中包含AccessKey信息报错
报错详情:
The Filesystem URI contains login details. This authentication mechanism is no longer supported.
报错原因:
为了防止AccessKey(AccessKey ID和AccessKey Secret)信息泄露等安全问题,JindoSDK 4.0.0及以上版本不支持路径中携带AccessKey信息。
解决方法:
方法1:删除该访问路径中的AccessKey信息。
方法2:如果确认要在路径中携带AccessKey信息,您可在Hadoop-Common服务配置页面,单击core-site.xml页签,单击新增配置项,具体配置信息如下:
参数
值
fs.oss.uri-with-secrets.enable
true
配置后,单击下方的保存。