このトピックでは、E-MapReduce(EMR)を使用して Alibaba Cloud Object Storage Service(OSS)または OSS-HDFS にアクセスする際の AccessKey ペアに関するよくある質問への回答を提供します。
EMR クラスタでパスワードなしモードで OSS または OSS-HDFS にアクセスするにはどうすればよいですか?
EMR クラスタが作成されると、Elastic Compute Service(ECS)のアプリケーションロールがクラスタに関連付けられます。デフォルトでは、アプリケーションロールは AliyunECSInstanceForEMRRole です。JindoSDK は、このロールを使用してセキュリティトークンを取得し、OSS または OSS-HDFS にアクセスします。
パスワードなしモードで OSS または OSS-HDFS にアクセスするには、次の手順を実行します。Hadoop-Common サービスページの [設定] タブで、[core-site.xml] タブをクリックし、fs.oss.credentials.provider パラメータの値に com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider が含まれているかどうかを確認します。パラメータ値に com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider が含まれていない場合は、パラメータ値に com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider を追加し、[保存] をクリックします。
EMR クラスタで OSS または OSS-HDFS へのパスワードなしアクセスが利用可能かどうかを確認するにはどうすればよいですか?
方法 1:次のコマンドを実行して、RAM ロールの資格情報を照会します。
curl http://100.100.100.200/latest/meta-data/Ram/Security-credentials/AliyunECSInstanceForEMRRole次の結果が返された場合、OSS または OSS-HDFS へのパスワードなしアクセスが利用可能です。
{ "AccessKeyId" : "STS.NUreXXXXXX", "AccessKeySecret" : "BsmbnDoXXXXXXXX", "Expiration" : "2022-11-22T11:27:39Z", "SecurityToken" : "CAISlwJ1q6FXXXXXXX", "LastUpdated" : "2022-11-22T05:27:39Z", "Code" : "Success" }方法 2:EcsStsCredentialsProvider を設定して、パスワードなしモードで OSS または OSS-HDFS にアクセスします。
Hadoop-Common サービスページの [設定] タブで、[core-site.xml] タブをクリックし、fs.oss.credentials.provider パラメータの値に com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider が含まれているかどうかを確認します。パラメータ値に com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider が含まれていない場合は、パラメータ値に com.aliyun.jindodata.oss.auth.EcsStsCredentialsProvider を追加し、[保存] をクリックします。
Hadoop Distributed File System(HDFS)のシェルコマンドを使用して、OSS または OSS-HDFS にアクセスします。OSS または OSS-HDFS にアクセスできる場合、OSS または OSS-HDFS へのパスワードなしアクセスが利用可能です。
HiveServer2 または Presto を使用して 5 ~ 6 時間ごとに OSS または OSS-HDFS にアクセスできない場合はどうすればよいですか?
JindoData の一部のバージョンでは、パスワードなしアクセスに関する既知の問題がいくつか存在します。詳細については、「JindoData 4.X の既知の問題」をご参照ください。
方法 1:固定の AccessKey ペアを使用します。
SimpleCredentialsProvider を設定します。詳細については、「OSS または OSS-HDFS の資格情報プロバイダーを設定する」をご参照ください。
方法 2:JindoSDK を最新バージョンにアップグレードします。詳細については、「EMR クラスタで JindoSDK をアップグレードする」をご参照ください。
OSS または OSS-HDFS パスに AccessKey ペアが含まれていることを示すエラーが報告された場合はどうすればよいですか?
エラーメッセージ:
The Filesystem URI contains login details. This authentication mechanism is no longer supported.原因:
AccessKey ペアの漏洩などのセキュリティ問題を防ぐため、JindoSDK V4.0.0 以降のバージョンでは、アクセスパスに AccessKey ペアを含めることはできません。
解決策:
方法 1:アクセスパスから AccessKey ペアを削除します。
方法 2:アクセスパスに AccessKey ペアを含める場合は、Hadoop-Common サービスページの [設定] タブに移動し、[core-site.xml] タブをクリックします。タブで、[設定項目の追加] をクリックして、次の設定項目を追加します。
設定項目
値
fs.oss.uri-with-secrets.enable
true
設定項目を追加した後、[保存] をクリックします。