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