本文為您介紹了通過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
配置后,單擊下方的保存。