全部產品
Search
文件中心

E-MapReduce:JindoFS OSS Credential Provider使用說明

更新時間:Jul 01, 2024

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. 在彈出的確認對話方塊中,單擊確定