Credential Provider使用說明

更新時間:
Copy as MD

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

背景資訊

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

配置JindoOSS Credential Provider

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

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

  3. 添加配置資訊。

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

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

      參數

      描述

      fs.jfs.cache.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類型

使用Hadoop Credential Providers儲存AccessKey資訊

說明

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

fs.jfs.cache.oss.accessKeyIdfs.jfs.cache.oss.accessKeySecretfs.jfs.cache.oss.securityToken可以儲存至Hadoop Credential Providers。

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

hadoop credential <subcommand> [options]

例如,儲存AccessKeyToken資訊至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

配置儲存AccessKeyCredential檔案。

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

Provider類型

  • TemporaryAliyunCredentialsProvider

    適合使用有時效性的AccessKeySecurityToken訪問OSS的情況。

    參數

    參數說明

    fs.jfs.cache.oss.credentials.provider

    com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider

    fs.jfs.cache.oss.accessKeyId

    OSSAccessKey ID。

    fs.jfs.cache.oss.accessKeySecret

    OSSAccessKey Secret。

    fs.jfs.cache.oss.securityToken

    OSSSecurityToken(臨時安全性權杖)。

  • SimpleAliyunCredentialsProvider

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

    參數

    參數說明

    fs.jfs.cache.oss.credentials.provider

    com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider

    fs.jfs.cache.oss.accessKeyId

    OSSAccessKey ID。

    fs.jfs.cache.oss.accessKeySecret

    OSSAccessKey Secret。

  • EnvironmentVariableCredentialsProvider

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

    參數

    參數說明

    fs.jfs.cache.oss.credentials.provider

    com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider

    ALIYUN_ACCESS_KEY_ID

    OSSAccessKey ID。

    ALIYUN_ACCESS_KEY_SECRET

    OSSAccessKey Secret。

    ALIYUN_SECURITY_TOKEN

    OSSSecurityToken(臨時安全性權杖)。

    說明

    僅配置有時效Token時需要。

  • InstanceProfileCredentialsProvider

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

    參數

    參數說明

    fs.jfs.cache.oss.credentials.provider

    com.aliyun.emr.fs.auth.InstanceProfileCredentialsProvider