すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:OSS/OSS-HDFS クレデンシャルプロバイダーの設定

最終更新日:May 13, 2026

このトピックでは、OSS/OSS-HDFS クレデンシャルプロバイダーの設定方法について説明します。

基本的な設定

Hadoop の core-site.xml ファイルに、OSS または OSS-HDFS の AccessKey ID、AccessKey secret、エンドポイントを事前に設定できます。 EMR クラスターでこれらのパラメーターを設定するには、次の手順を実行します。

  1. Hadoop-Common サービスの構成ページで、core-site.xml タブをクリックします。

  2. [設定項目の追加] をクリックし、設定項目 fs.oss.accessKeyIdfs.oss.accessKeySecret を追加します。

  3. [OK] をクリックし、実行理由を入力して、[OK] をクリックします。

  4. 下の [保存] をクリックします。

Hadoop クレデンシャルプロバイダーを使用した AccessKey の保存

基本的な設定方法では、fs.oss.accessKeyIdfs.oss.accessKeySecretcore-site.xml に平文で保存されます。これらを Hadoop Credential Providers ファイルに暗号化されたペアとして保存できます。

次の Hadoop コマンドを使用して、AccessKey ID、AccessKey secret、セキュリティトークンをクレデンシャルファイルに保存します。

hadoop credential <subcommand> [options]

ファイルのアクセス許可に加えて、パスワードを指定してクレデンシャルを暗号化することもできます。 パスワードを省略した場合、システムは暗号化にデフォルトの文字列を使用します。

hadoop credential create fs.oss.accessKeyId -value AAA -provider jceks://file/root/oss.jceks
hadoop credential create fs.oss.accessKeySecret -value BBB -provider jceks://file/root/oss.jceks
hadoop credential create fs.oss.securityToken -value CCC -provider jceks://file/root/oss.jceks

クレデンシャルファイルを生成した後、次のプロパティを設定してプロバイダーのタイプと場所を指定します。

<configuration>
    <property>
        <name>fs.oss.security.credential.provider.path</name>
        <value>jceks://file/root/oss.jceks</value>
        <description>アクセスキーを保存するクレデンシャルファイルを指定します。 たとえば、jceks://file/${user.home}/oss.jceks は、ホームディレクトリにある oss.jceks ファイルを指します。</description>
    </property>
</configuration>

JindoSDK クレデンシャルプロバイダーの使用

デフォルトでは、JindoSDK には SimpleCredentialsProviderEnvironmentVariableCredentialsProviderCommonCredentialsProvider が設定されています。システムは、有効なクレデンシャルを取得するまで、各プロバイダーに順番にクエリを実行します。

<configuration>
    <property>
        <name>fs.oss.credentials.provider</name>
        <value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider,com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider,com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value>
        <description>com.aliyun.jindodata.oss.auth.JindoCredentialsProvider を指定します。 複数のプロバイダーを使用するには、クラス名をコンマ (,) で区切ります。 システムは、各プロバイダーから順番にクレデンシャルの取得を試みます。 プロバイダーの詳細については、「クレデンシャルプロバイダーのタイプ」をご参照ください。</description>
    </property>
</configuration>

次のオプションからクレデンシャルプロバイダーを選択してください。

クレデンシャルプロバイダーのタイプ

説明

TemporaryCredentialsProvider

このプロバイダーを使用して、期限付きの AccessKey ID、AccessKey secret、セキュリティトークンで OSS または OSS-HDFS にアクセスします。

SimpleCredentialsProvider

このプロバイダーを使用して、長期の AccessKey ID と AccessKey secret で OSS または OSS-HDFS にアクセスします。

EnvironmentVariableCredentialsProvider

環境変数からクレデンシャルを取得します。

CommonCredentialsProvider

一般的な Jindo 設定パラメーターからクレデンシャルを取得するプロバイダーです。

CustomCredentialsProvider

カスタムのパスワードレスサービスと統合します。

TemporaryCredentialsProvider

  • プロバイダーのタイプを設定

    <configuration>
        <property>
            <name>fs.oss.credentials.provider</name>
            <value>com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider</value>
        </property>
    </configuration>
  • OSS または OSS-HDFS のクレデンシャルを設定

    <configuration>
        <property>
            <name>fs.oss.accessKeyId</name>
            <value>YOUR_ACCESS_KEY_ID</value>
        </property>
        <property>
            <name>fs.oss.accessKeySecret</name>
            <value>YOUR_ACCESS_KEY_SECRET</value>
        </property>
        <property>
            <name>fs.oss.securityToken</name>
            <value>YOUR_SECURITY_TOKEN</value>
        </property>
    </configuration>

SimpleCredentialsProvider

  • プロバイダーのタイプを設定

    <configuration>
        <property>
            <name>fs.oss.credentials.provider</name>
            <value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider</value>
        </property>
    </configuration>
  • OSS または OSS-HDFS のクレデンシャルを設定

    <configuration>
        <property>
            <name>fs.oss.accessKeyId</name>
            <value>YOUR_ACCESS_KEY_ID</value>
        </property>
        <property>
            <name>fs.oss.accessKeySecret</name>
            <value>YOUR_ACCESS_KEY_SECRET</value>
        </property>
    </configuration>

EnvironmentVariableCredentialsProvider

  • プロバイダーのタイプを設定

    <configuration>
        <property>
            <name>fs.oss.credentials.provider</name>
            <value>com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider</value>
        </property>
    </configuration>
  • OSS または OSS-HDFS のクレデンシャルを設定

    次の環境変数を設定してください。

    パラメーター

    説明

    OSS_ACCESS_KEY_ID

    OSS または OSS-HDFS の AccessKey ID。

    OSS_ACCESS_KEY_SECRET

    OSS または OSS-HDFS の AccessKey secret。

    OSS_SECURITY_TOKEN

    OSS または OSS-HDFS のセキュリティトークン。

    説明

    注:期限付きトークンを使用する場合にのみ必須です。

CommonCredentialsProvider

  • プロバイダーのタイプを設定

    <configuration>
        <property>
            <name>fs.oss.credentials.provider</name>
            <value>com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value>
        </property>
    </configuration>
  • OSS または OSS-HDFS のクレデンシャルを設定

    <configuration>
        <property>
            <name>jindo.common.accessKeyId</name>
            <value>YOUR_ACCESS_KEY_ID</value>
        </property>
        <property>
            <name>jindo.common.accessKeySecret</name>
            <value>YOUR_ACCESS_KEY_SECRET</value>
        </property>
        <property>
            <name>jindo.common.securityToken</name>
            <value>YOUR_SECURITY_TOKEN(期限付きトークンに必須)</value>
        </property>
    </configuration>

CustomCredentialsProvider

  • プロバイダーのタイプを設定

    <configuration>
        <property>
            <name>fs.oss.credentials.provider</name>
            <value>com.aliyun.jindodata.oss.auth.CustomCredentialsProvider</value>
        </property>
    </configuration>
  • パスワードレスサービスの URL を設定

    <configuration>
        <property>
            <name>aliyun.oss.provider.url</name>
            <value>パスワードレスサービスの URL。</value>
        </property>
    </configuration>

    aliyun.oss.provider.url は、http(s) および Secrets プロトコルをサポートしています:

    • HTTP(S) プロトコル

      HTTP(S) パスワードフリーサービスの URL 形式は http://localhost:1234/sts です。HTTP パスワードフリープロトコルでは、レスポンスを JSON 形式にする必要があります。

      {
      "AccessKeyId" : "XXXXXXXXX",
      "AccessKeySecret" : "XXXXXXXXX",
      "Expiration" : "2020-11-01T05:20:01Z",
      "SecurityToken" : "XXXXXXXXX",
      "LastUpdated" : "2020-10-31T23:20:01Z",
      "Code" : "Success"
      }
    • Secrets プロトコル

      Secrets パスワードフリーサービスのアドレス形式は secrets:///local_path_prefix であり、Kubernetes シナリオで一般的に使用されます。 ここで、local_path_prefix はパスプレフィックスです:

      • local_path_prefixsecrets:///secret/JindoOss の場合、ノード上で /secret/JindoOssAccessKeyId/secret/JindoOssAccessKeySecret/secret/JindoOssSecurityToken などのファイルが検索されます。

      • local_path_prefixsecrets:///secret/JindoOss/ の場合、/secret/JindoOss/AccessKeyId/secret/JindoOss/AccessKeySecret/secret/JindoOss/SecurityToken などのファイルがノード上で検索されます。