Lorsque votre cluster EMR accède à plusieurs buckets OSS ou OSS-HDFS appartenant à différents comptes ou soumis à des exigences de sécurité distinctes, vous pouvez attribuer un fournisseur d’identifiants spécifique à chaque bucket. Ce paramètre au niveau du bucket remplace la configuration globale des identifiants pour ce bucket précis, sans affecter les autres buckets.
Fonctionnement
Définissez la propriété fs.oss.bucket.<bucket-name>.credentials.provider pour attribuer un fournisseur d’identifiants à un bucket spécifique. Remplacez <bucket-name> par le nom réel du bucket.
Cette propriété accepte une liste de noms de classes de fournisseurs séparés par des virgules. Le système tente chaque fournisseur dans l’ordre indiqué et utilise le premier qui renvoie des identifiants valides.
<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>
Dans l’exemple de code ci-dessus, XXX représente le nom d’un bucket OSS ou OSS-HDFS.
Choisir un fournisseur d’identifiants
Sélectionnez un fournisseur en fonction de votre cas d’utilisation :
| Fournisseur | Nom complet de la classe | Cas d'utilisation |
|---|---|---|
| TemporaryCredentialsProvider | com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider |
Accès à OSS ou OSS-HDFS avec une paire AccessKey et un jeton de sécurité temporaires |
| SimpleCredentialsProvider | com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider |
Accès à OSS ou OSS-HDFS avec une paire AccessKey valide en permanence |
| EnvironmentVariableCredentialsProvider | com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider |
Lecture de la paire AccessKey depuis les variables d’environnement |
| CommonCredentialsProvider | com.aliyun.jindodata.oss.auth.CommonCredentialsProvider |
Scénarios polyvalents |
TemporaryCredentialsProvider
Utilisez ce fournisseur lorsque vous accédez à OSS ou OSS-HDFS avec une paire AccessKey et un jeton de sécurité limités dans le temps.
Configurer le fournisseur
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider</value>
</property>
</configuration>
Configurer les identifiants
<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
Utilisez ce fournisseur lorsque vous accédez à OSS ou OSS-HDFS avec une paire AccessKey valide en permanence.
Configurer le fournisseur
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider</value>
</property>
</configuration>
Configurer les identifiants
<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
Utilisez ce fournisseur lorsque la paire AccessKey est injectée via des variables d’environnement.
Configurer le fournisseur
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider</value>
</property>
</configuration>
Configurer les variables d’environnement
Définissez les variables suivantes dans votre fichier de variables d’environnement :
| Variable d'environnement | Description |
|---|---|
OSS_ACCESS_KEY_ID |
L’AccessKey ID utilisé pour accéder à OSS ou OSS-HDFS |
OSS_ACCESS_KEY_SECRET |
L’AccessKey Secret utilisé pour accéder à OSS ou OSS-HDFS |
OSS_SECURITY_TOKEN |
Le jeton de sécurité utilisé pour accéder à OSS ou OSS-HDFS. Requis uniquement lors de l’utilisation d’un jeton de sécurité temporaire. |
CommonCredentialsProvider
Utilisez ce fournisseur pour des scénarios généraux où les identifiants sont partagés entre plusieurs configurations.
Configurer le fournisseur
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value>
</property>
</configuration>
Configurer les identifiants
<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>