您可以使用Credential Provider配置加密後的AccessKey資訊至檔案中,避免泄露AccessKey資訊。
背景資訊
您可以通過使用Hadoop Credential Provider將加密後的AccessKey資訊存入檔案,從而避免配置明文AccessKey,根據不同情況選擇合適的JindoOSS Credential Provider。
配置JindoOSS Credential Provider
- 進入SmartData服務。
- 登入阿里雲E-MapReduce控制台。
- 在頂部功能表列處,根據實際情況選擇地區和資源群組。
- 單擊上方的叢集管理頁簽。
- 在叢集管理頁面,單擊相應叢集所在行的詳情。
- 在左側導覽列,選擇。
- 登入阿里雲E-MapReduce控制台。
進入smartdata-site服務配置。
- 單擊配置頁簽。
在服務配置地區,單擊smartdata-site頁簽。
添加配置資訊。
在smartdata-site頁簽,單擊右上方的自訂配置。
在新增配置項對話方塊中,新增如下配置。
全域方式配置(所有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類型。
說明XXX為OSS bucket名稱。
Provider類型
您可以根據情況,選擇不同的Credential Provider,支援如下Provider:
全域方式配置
TemporaryAliyunCredentialsProvider
適合使用有時效性的AccessKey和SecurityToken訪問OSS的情況。
參數
參數說明
fs.jfs.cache.oss.credentials.provider
com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider
fs.jfs.cache.oss.accessKeyId
OSS的AccessKey ID。
fs.jfs.cache.oss.accessKeySecret
OSS的AccessKey Secret。
fs.jfs.cache.oss.securityToken
OSS的SecurityToken(臨時安全性權杖)。
SimpleAliyunCredentialsProvider
適合使用長期有效AccessKey訪問OSS的情況。
參數
參數說明
fs.jfs.cache.oss.credentials.provider
com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider
fs.jfs.cache.oss.accessKeyId
OSS的AccessKey ID。
fs.jfs.cache.oss.accessKeySecret
OSS的AccessKey Secret。
EnvironmentVariableCredentialsProvider
該方式需要在環境變數中配置以下參數。
參數
參數說明
fs.jfs.cache.oss.credentials.provider
com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider
ALIYUN_ACCESS_KEY_ID
OSS的AccessKey ID。
ALIYUN_ACCESS_KEY_SECRET
OSS的AccessKey Secret。
ALIYUN_SECURITY_TOKEN
OSS的SecurityToken(臨時安全性權杖)。
說明僅配置有時效Token時需要。
InstanceProfileCredentialsProvider
該方式無需配置AccessKey,可以免密方式訪問OSS。
參數
參數說明
fs.jfs.cache.oss.credentials.provider
com.aliyun.emr.fs.auth.InstanceProfileCredentialsProvider
按照bucket配置
TemporaryAliyunCredentialsProvider
適合使用有時效性的AccessKey和SecurityToken訪問OSS的情況。
參數
參數說明
fs.jfs.cache.oss.bucket.XXX.credentials.provider
com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider
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
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時需要。
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提供的命令,儲存AccessKey和SecurityToken資訊至Credential檔案中。命令格式如下。
hadoop credential <subcommand> [options]例如,使用全域配置方式,儲存AccessKey和Token資訊至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 | 配置儲存AccessKey的Credential檔案。 例如,jceks://file/${user.home}/oss.jceks為HOME下的oss.jceks檔案。 |