Se o cluster EMR acessar vários buckets do OSS ou OSS-HDFS pertencentes a contas diferentes ou com requisitos de segurança distintos, atribua um provedor de credenciais separado a cada bucket. A configuração no nível do bucket substitui a configuração global de credenciais apenas para esse bucket específico, sem afetar os demais.
Como funciona
Defina fs.oss.bucket.<bucket-name>.credentials.provider para atribuir um provedor de credenciais a um bucket específico. Substitua <bucket-name> pelo nome real do bucket.
Essa propriedade aceita uma lista de nomes de classes de provedor separados por vírgulas. O sistema testa cada provedor em ordem e utiliza o primeiro que retornar credenciais válidas.
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.SimpleAliyunCredentialsProvider,com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider,com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value>
<description>Specify the credential provider implementation classes. Separate multiple classes with commas. The system reads credential values in sequence until a valid credential is found.</description>
</property>
</configuration>
No código anterior, XXX indica o nome de um bucket do OSS ou OSS-HDFS.
Escolher um provedor de credenciais
Selecione um provedor com base no seu caso de uso:
|
Provedor |
Nome completo da classe |
Quando usar |
|
TemporaryCredentialsProvider |
|
Acesso ao OSS ou OSS-HDFS com par de AccessKey e token de segurança temporários |
|
SimpleCredentialsProvider |
|
Acesso ao OSS ou OSS-HDFS com par de AccessKey permanente |
|
EnvironmentVariableCredentialsProvider |
|
Leitura do par de AccessKey a partir de variáveis de ambiente |
|
CommonCredentialsProvider |
|
Cenários de uso geral |
TemporaryCredentialsProvider
Use este provedor ao acessar o OSS ou OSS-HDFS com um par de AccessKey e um token de segurança temporários.
Configurar o provedor
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider</value>
</property>
</configuration>
Configurar as credenciais
<configuration>
<property>
<name>fs.oss.bucket.XXX.accessKeyId</name>
<value>The AccessKey ID of the OSS or OSS-HDFS bucket</value>
</property>
<property>
<name>fs.oss.bucket.XXX.accessKeySecret</name>
<value>The AccessKey secret of the OSS or OSS-HDFS bucket</value>
</property>
<property>
<name>fs.oss.bucket.XXX.securityToken</name>
<value>The security token of the OSS or OSS-HDFS bucket</value>
</property>
</configuration>
SimpleCredentialsProvider
Use este provedor para acessar o OSS ou OSS-HDFS com um par de AccessKey permanente.
Configurar o provedor
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider</value>
</property>
</configuration>
Configurar as credenciais
<configuration>
<property>
<name>fs.oss.bucket.XXX.accessKeyId</name>
<value>The AccessKey ID of the OSS or OSS-HDFS bucket</value>
</property>
<property>
<name>fs.oss.bucket.XXX.accessKeySecret</name>
<value>The AccessKey secret of the OSS or OSS-HDFS bucket</value>
</property>
</configuration>
EnvironmentVariableCredentialsProvider
Use este provedor quando o par de AccessKey for injetado por variáveis de ambiente.
Configurar o provedor
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider</value>
</property>
</configuration>
Configurar as variáveis de ambiente
Defina as seguintes variáveis no arquivo de variáveis de ambiente:
|
Variável de ambiente |
Descrição |
|
|
AccessKey ID usado para acessar o OSS ou OSS-HDFS |
|
|
AccessKey secret usado para acessar o OSS ou OSS-HDFS |
|
|
Token de segurança usado para acessar o OSS ou OSS-HDFS. Necessário apenas ao utilizar um token de segurança temporário. |
CommonCredentialsProvider
Use este provedor em cenários de uso geral nos quais as credenciais são compartilhadas entre várias configurações.
Configurar o provedor
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value>
</property>
</configuration>
Configurar as credenciais
<configuration>
<property>
<name>jindo.common.accessKeyId</name>
<value>The AccessKey ID of the OSS or OSS-HDFS bucket</value>
</property>
<property>
<name>jindo.common.accessKeySecret</name>
<value>The AccessKey secret of the OSS or OSS-HDFS bucket</value>
</property>
<property>
<name>jindo.common.securityToken</name>
<value>The security token of the OSS or OSS-HDFS bucket. Required only when using a time-limited security token.</value>
</property>
</configuration>