JindoFS OSS Credential Provider使用說明

更新時間:
Copy as MD

SmartData 3.4.0及後續版本支援JindoFS OSS Credential Provider,您可以通過配置JindoFS OSS Credential Provider,將加密後的AccessKey資訊添加至檔案中,以避免泄露AccessKey資訊。

使用限制

JindoRangerCredentialsProviderAssumeRoleStsCredentialsProvider僅適用於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.providerValuecom.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中的XXXOSSBucket名稱。
    3. 單擊确定
  3. 儲存配置。
    1. 單擊右上方的保存
    2. 确认修改對話方塊中,輸入执行原因,開啟自動更新配置
    3. 單擊确定

全域方式配置

您可以根據情況,選擇不同的Provider。Provider類型如下表。

類型 描述
TemporaryAliyunCredentialsProvider 適合使用有時效性的AccessKeySecurityToken訪問OSS的情況。
需要在fs.jfs.cache.oss.credentials.provider的參數值中追加com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider,並需在smartdata-site頁簽新增以下配置:
  • fs.jfs.cache.oss.accessKeyId:OSS BucketAccessKey ID。
  • fs.jfs.cache.oss.accessKeySecret:OSS BucketAccessKey Secret。
  • fs.jfs.cache.oss.securityToken:OSS BucketSecurityToken(臨時安全性權杖)。
SimpleAliyunCredentialsProvider 適合使用長期有效AccessKey訪問OSS的情況。
需要在fs.jfs.cache.oss.credentials.provider的參數值中追加com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,並需在smartdata-site頁簽新增以下配置:
  • fs.jfs.cache.oss.accessKeyId:OSS BucketAccessKey ID。
  • fs.jfs.cache.oss.accessKeySecret:OSS BucketAccessKey Secret。
EnvironmentVariableCredentialsProvider 該方式需要在環境變數中配置以下參數:
  • fs.jfs.cache.oss.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時需要。
JindoCommonCredentialsProvider 該方式為通用配置,配置後JindoOSSJindoFS均可以使用。
需要在fs.jfs.cache.oss.credentials.provider的參數值中追加com.aliyun.emr.fs.auth.JindoCommonCredentialsProvider,並需在smartdata-site頁簽新增以下配置:
  • jindo.common.accessKeyId:OSS BucketAccessKey ID。
  • jindo.common.accessKeySecret:OSS BucketAccessKey Secret。
  • jindo.common.securityToken:OSS BucketSecurityToken(臨時安全性權杖)。
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:阿里雲STSAccessKey Secret。
  • assume.role.sts.endpoint:阿里雲STSEndpoint,詳情請參見接入地址
  • assume.role.roleArn:要扮演RAM角色ARN。格式為acs:ram::$accountID:role/$roleName。查看ARN詳情請參見如何查看RAM角色的ARN?
  • assume.role.roleSessionName:角色會話名稱。該參數為自訂參數,例如:使用者名稱。

按照Bucket配置

您可以根據情況,選擇不同的Provider。Provider類型如下表。

類型 描述
TemporaryAliyunCredentialsProvider 適合使用有時效性的AccessKeySecurityToken訪問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 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,並需在smartdata-site頁簽新增以下配置:
  • 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時需要。
JindoCommonCredentialsProvider 該方式為通用配置,配置後JindoOSSJindoFS均可以使用。
設定fs.jfs.cache.oss.bucket.XXX.credentials.provider的參數值為com.aliyun.emr.fs.auth.JindoCommonCredentialsProvider,並需在smartdata-site頁簽新增以下配置:
  • jindo.common.accessKeyId:OSS BucketAccessKey ID。
  • jindo.common.accessKeySecret:OSS BucketAccessKey Secret。
  • jindo.common.securityToken:OSS BucketSecurityToken(臨時安全性權杖)。
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:阿里雲STSAccessKey Secret。
  • assume.role.sts.endpoint:阿里雲STSEndpoint,詳情請參見接入地址
  • 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. 在彈出的确认對話方塊中,單擊确定