Credential Provider使用说明

您可以使用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类型

        说明

        XXXOSS bucket名称。

Provider类型

您可以根据情况,选择不同的Credential Provider,支持如下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

  • 按照bucket配置

    • TemporaryAliyunCredentialsProvider

      适合使用有时效性的AccessKeySecurityToken访问OSS的情况。

      参数

      参数说明

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

      com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider

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

      OSS bucketAccessKey ID。

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

      OSS bucketAccessKey Secret。

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

      OSS bucketSecurityToken(临时安全令牌)。

    • 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 bucketAccessKey ID。

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

      OSS bucketAccessKey Secret。

    • EnvironmentVariableCredentialsProvider

      该方式需要在环境变量中配置以下参数。

      参数

      参数说明

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

      com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider

      ALIYUN_ACCESS_KEY_ID

      OSS bucketAccessKey ID。

      ALIYUN_ACCESS_KEY_SECRET

      OSS bucketAccessKey Secret。

      ALIYUN_SECURITY_TOKEN

      OSS bucketSecurityToken(临时安全令牌)。

      说明

      仅配置有时效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提供的命令,存储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文件。