SmartData 3.4.0及后续版本支持JindoFS OSS Credential Provider,您可以通过配置JindoFS OSS Credential Provider,将加密后的AccessKey信息添加至文件中,以避免泄露AccessKey信息。

使用限制

JindoRangerCredentialsProvider和AssumeRoleStsCredentialsProvider仅适用于SmartData 3.8.0及后续版本。

配置JindoFS OSS Credential Provider

  1. 进入SmartData服务的配置页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,单击集群服务 > SmartData
    6. 单击配置页签。
  2. 根据配置方式修改或新增配置信息。
    配置方式 描述
    全局方式配置(所有Bucket使用同一种方式) 在配置搜索区域,搜索参数fs.jfs.cache.oss.credentials.provider,在参数值后追加AliyunCredentialsProvider的实现类,多个类时使用英文逗号(, )隔开,按照先后顺序读取Credential直至读到有效的Credential,需要添加的参数详情,请参见全局方式配置

    例如,com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider, com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,com. aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider。

    按照Bucket配置 新增配置项的操作步骤如下:
    1. smartdata-site页签,单击右上角的自定义配置。
      注意 JindoRangerCredentialsProvider类型需要在namespace页签添加自定义配置。
    2. 新增配置项对话框中,设置Keyfs.jfs.cache.oss.bucket.XXX.credentials.providerValue为com.aliyun.emr.fs.auth.AliyunCredentialsProvider的实现类,多个类时使用英文逗号(, )隔开,按照先后顺序读取Credential直至读到有效的Credential,其余需要添加的参数详情,请参见按照Bucket配置

      例如,com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider, com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,com. aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider。

      说明 fs.jfs.cache.oss.bucket.XXX.credentials.provider中的XXX为OSS的Bucket名称。
    3. 单击确定
  3. 保存配置。
    1. 单击右上角的保存
    2. 确认修改对话框中,输入执行原因,开启自动更新配置
    3. 单击确定

全局方式配置

您可以根据情况,选择不同的Provider。Provider类型如下表。

类型 描述
TemporaryAliyunCredentialsProvider 适合使用有时效性的AccessKey和SecurityToken访问OSS的情况。
需要在fs.jfs.cache.oss.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider,并需在smartdata-site页签新增以下配置:
  • fs.jfs.cache.oss.accessKeyId:OSS Bucket的AccessKey ID。
  • fs.jfs.cache.oss.accessKeySecret:OSS Bucket的AccessKey Secret。
  • fs.jfs.cache.oss.securityToken:OSS Bucket的SecurityToken(临时安全令牌)。
SimpleAliyunCredentialsProvider 适合使用长期有效的AccessKey访问OSS的情况。
需要在fs.jfs.cache.oss.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,并需在smartdata-site页签新增以下配置:
  • fs.jfs.cache.oss.accessKeyId:OSS Bucket的AccessKey ID。
  • fs.jfs.cache.oss.accessKeySecret:OSS Bucket的AccessKey Secret。
EnvironmentVariableCredentialsProvider 该方式需要在环境变量中配置以下参数:
  • fs.jfs.cache.oss.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时需要。
JindoCommonCredentialsProvider 该方式为通用配置,配置后JindoOSS和JindoFS均可以使用。
需要在fs.jfs.cache.oss.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.JindoCommonCredentialsProvider,并需在smartdata-site页签新增以下配置:
  • jindo.common.accessKeyId:OSS Bucket的AccessKey ID。
  • jindo.common.accessKeySecret:OSS Bucket的AccessKey Secret。
  • jindo.common.securityToken:OSS Bucket的SecurityToken(临时安全令牌)。
EcsStsCredentialsProvider 该方式无需配置AccessKey,可以免密方式访问OSS。

需要在fs.jfs.cache.oss.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.EcsStsCredentialsProvider

JindoRangerCredentialsProvider 该方式适用于通过配置Ranger来控制用户访问OSS权限的情况。

需要在fs.jfs.cache.oss.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.JindoRangerCredentialsProvider,并需在namespace页签新增参数namespace.oss.permission.method,参数值为ranger的配置项。

说明 JindoRangerCredentialsProvider类型,添加完自定义配置后,必须启动JindoFS Namespace服务。重启服务详情请参见启动JindoFS Namespace服务
AssumeRoleStsCredentialsProvider 该方式适用于获取一个扮演RAM角色的临时AccessKey访问OSS的情况。
需要在fs.jfs.cache.oss.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.AssumeRoleStsCredentialsProvider,并需在smartdata-site页签新增以下配置:
  • assume.role.sts.accessKeyId:阿里云STS(Security Token Service)的AccessKey ID。
  • assume.role.sts.accessKeySecret:阿里云STS的AccessKey Secret。
  • assume.role.sts.endpoint:阿里云STS的Endpoint,详情请参见接入地址
  • assume.role.roleArn:要扮演RAM角色ARN。格式为acs:ram::$accountID:role/$roleName。查看ARN详情请参见如何查看RAM角色的ARN?
  • assume.role.roleSessionName:角色会话名称。该参数为自定义参数,例如:用户名。

按照Bucket配置

您可以根据情况,选择不同的Provider。Provider类型如下表。

类型 描述
TemporaryAliyunCredentialsProvider 适合使用有时效性的AccessKey和SecurityToken访问OSS的情况。
设置fs.jfs.cache.oss.bucket.XXX.credentials.provider的参数值为com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider,并需在smartdata-site页签新增以下配置:
  • 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,并需在smartdata-site页签新增以下配置:
  • 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时需要。
JindoCommonCredentialsProvider 该方式为通用配置,配置后JindoOSS和JindoFS均可以使用。
设置fs.jfs.cache.oss.bucket.XXX.credentials.provider的参数值为com.aliyun.emr.fs.auth.JindoCommonCredentialsProvider,并需在smartdata-site页签新增以下配置:
  • jindo.common.accessKeyId:OSS Bucket的AccessKey ID。
  • jindo.common.accessKeySecret:OSS Bucket的AccessKey Secret。
  • jindo.common.securityToken:OSS Bucket的SecurityToken(临时安全令牌)。
EcsStsCredentialsProvider 该方式无需配置AccessKey,可以免密方式访问OSS。

设置fs.jfs.cache.oss.bucket.XXX.credentials.provider的参数值为com.aliyun.emr.fs.auth.EcsStsCredentialsProvider

JindoRangerCredentialsProvider 该方式适用于通过配置Ranger来控制用户访问OSS权限的情况。

需要在fs.jfs.cache.oss.bucket.XXX.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.JindoRangerCredentialsProvider,并需在namespace页签新增参数namespace.oss.permission.method,参数值为ranger的配置项。

说明 JindoRangerCredentialsProvider类型,添加完自定义配置后,必须启动JindoFS Namespace服务。重启服务详情请参见启动JindoFS Namespace服务
AssumeRoleStsCredentialsProvider 该方式适用于获取一个扮演RAM角色的临时AccessKey访问OSS的情况。
需要在fs.jfs.cache.oss.bucket.XXX.credentials.provider的参数值中追加com.aliyun.emr.fs.auth.AssumeRoleStsCredentialsProvider,并需在smartdata-site页签新增以下配置:
  • assume.role.sts.accessKeyId:阿里云STS(Security Token Service)的AccessKey ID。
  • assume.role.sts.accessKeySecret:阿里云STS的AccessKey Secret。
  • assume.role.sts.endpoint:阿里云STS的Endpoint,详情请参见接入地址
  • assume.role.roleArn:要扮演的RAM角色ARN。格式为acs:ram::$accountID:role/$roleName。查看ARN详情请参见如何查看RAM角色的ARN?
  • assume.role.roleSessionName:角色会话名称。该参数为自定义参数,例如:用户名。

启动JindoFS Namespace服务

JindoRangerCredentialsProvider类型配置完成后,必须启动JindoFS Namespace服务。

  1. 在SmartData服务的配置页面,选择右上角的操作 > 重启Jindo Namespace Service
  2. 执行集群操作对话框中,输入执行原因,单击确定
  3. 在弹出的确认对话框中,单击确定