全部產品
Search
文件中心

E-MapReduce:Credential Provider使用說明

更新時間:Mar 13, 2025

您可以使用Credential Provider配置加密後的AccessKey資訊至檔案中,避免泄露AccessKey資訊。

背景資訊

您可以通過使用Hadoop Credential Provider將加密後的AccessKey資訊存入檔案,從而避免配置明文AccessKey,根據不同情況選擇合適的JindoOSS Credential Provider。

配置JindoOSS Credential Provider

  1. 進入SmartData服務。
    1. 登入阿里雲E-MapReduce控制台
    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組
    3. 單擊上方的叢集管理頁簽。
    4. 叢集管理頁面,單擊相應叢集所在行的詳情
    5. 在左側導覽列,選擇叢集服務 > SmartData
  2. 進入smartdata-site服務配置。

    1. 單擊配置頁簽。
    2. 服務配置地區,單擊smartdata-site頁簽。

  3. 添加配置資訊。

    1. smartdata-site頁簽,單擊右上方的自訂配置

    2. 新增配置項對話方塊中,新增如下配置。

      • 全域方式配置(所有bucket使用同一種方式)

        參數

        描述

        fs.jfs.cache.oss.credentials.provider

        配置com.aliyun.emr.fs.auth.AliyunCredentialsProvider的實作類別,多個類時使用英文逗號(, )隔開,按照先後順序讀取Credential直至讀到有效Credential。例如,com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider,com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider

        Provider詳情請參見Provider類型

      • 按照bucket配置

        參數

        描述

        fs.jfs.cache.oss.bucket.XXX.credentials.provider

        配置com.aliyun.emr.fs.auth.AliyunCredentialsProvider的實作類別,多個類時使用英文逗號(, )隔開,按照先後順序讀取Credential直至讀到有效Credential。例如,com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider, com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,com. aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider

        Provider詳情請參見Provider類型

        說明

        XXX為OSS bucket名稱。

Provider類型

您可以根據情況,選擇不同的Credential Provider,支援如下Provider:

  • 全域方式配置

    • TemporaryAliyunCredentialsProvider

      適合使用有時效性的AccessKey和SecurityToken訪問OSS的情況。

      參數

      參數說明

      fs.jfs.cache.oss.credentials.provider

      com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider

      fs.jfs.cache.oss.accessKeyId

      OSS的AccessKey ID。

      fs.jfs.cache.oss.accessKeySecret

      OSS的AccessKey Secret。

      fs.jfs.cache.oss.securityToken

      OSS的SecurityToken(臨時安全性權杖)。

    • SimpleAliyunCredentialsProvider

      適合使用長期有效AccessKey訪問OSS的情況。

      參數

      參數說明

      fs.jfs.cache.oss.credentials.provider

      com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider

      fs.jfs.cache.oss.accessKeyId

      OSS的AccessKey ID。

      fs.jfs.cache.oss.accessKeySecret

      OSS的AccessKey Secret。

    • EnvironmentVariableCredentialsProvider

      該方式需要在環境變數中配置以下參數。

      參數

      參數說明

      fs.jfs.cache.oss.credentials.provider

      com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider

      ALIYUN_ACCESS_KEY_ID

      OSS的AccessKey ID。

      ALIYUN_ACCESS_KEY_SECRET

      OSS的AccessKey Secret。

      ALIYUN_SECURITY_TOKEN

      OSS的SecurityToken(臨時安全性權杖)。

      說明

      僅配置有時效Token時需要。

    • InstanceProfileCredentialsProvider

      該方式無需配置AccessKey,可以免密方式訪問OSS。

      參數

      參數說明

      fs.jfs.cache.oss.credentials.provider

      com.aliyun.emr.fs.auth.InstanceProfileCredentialsProvider

  • 按照bucket配置

    • TemporaryAliyunCredentialsProvider

      適合使用有時效性的AccessKey和SecurityToken訪問OSS的情況。

      參數

      參數說明

      fs.jfs.cache.oss.bucket.XXX.credentials.provider

      com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider

      fs.jfs.cache.oss.bucket.XXX.accessKeyId

      OSS bucket的AccessKey ID。

      fs.jfs.cache.oss.bucket.XXX.accessKeySecret

      OSS bucket的AccessKey Secret。

      fs.jfs.cache.oss.bucket.XXX.securityToken

      OSS bucket的SecurityToken(臨時安全性權杖)。

    • SimpleAliyunCredentialsProvider

      適合使用長期有效AccessKey訪問OSS的情況。

      參數

      參數說明

      fs.jfs.cache.oss.bucket.XXX.credentials.provider

      com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider

      fs.jfs.cache.oss.bucket.XXX.accessKeyId

      OSS bucket的AccessKey ID。

      fs.jfs.cache.oss.bucket.XXX.accessKeySecret

      OSS bucket的AccessKey Secret。

    • EnvironmentVariableCredentialsProvider

      該方式需要在環境變數中配置以下參數。

      參數

      參數說明

      fs.jfs.cache.oss.bucket.XXX.credentials.provider

      com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider

      ALIYUN_ACCESS_KEY_ID

      OSS bucket的AccessKey ID。

      ALIYUN_ACCESS_KEY_SECRET

      OSS bucket的AccessKey Secret。

      ALIYUN_SECURITY_TOKEN

      OSS bucket的SecurityToken(臨時安全性權杖)。

      說明

      僅配置有時效Token時需要。

    • InstanceProfileCredentialsProvider

      該方式無需配置AccessKey,可以免密方式訪問OSS。

      參數

      參數說明

      fs.jfs.cache.oss.bucket.XXX.credentials.provider

      com.aliyun.emr.fs.auth.InstanceProfileCredentialsProvider

使用Hadoop Credential Providers儲存AccessKey資訊

說明

Hadoop Credential Provider詳情的使用方法,請參見CredentialProvider API Guide

使用Hadoop提供的命令,儲存AccessKey和SecurityToken資訊至Credential檔案中。命令格式如下。

hadoop credential <subcommand> [options]

例如,使用全域配置方式,儲存AccessKey和Token資訊至JCEKS檔案中,除了使用檔案許可權保護該檔案外,您也可以指定密碼加密儲存資訊,如果不指定密碼則使用預設字串加密。

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

產生Credential檔案後,您需要配置下面的參數來指定Provider的類型和位置。

參數

描述

fs.jfs.cache.oss.security.credential.provider.path

配置儲存AccessKey的Credential檔案。

例如,jceks://file/${user.home}/oss.jceks為HOME下的oss.jceks檔案。