EMR kümeniz farklı hesaplara ait olan veya farklı güvenlik gereksinimlerine sahip birden fazla OSS veya OSS-HDFS paketine eriştiğinde, her bir paket için ayrı bir kimlik bilgisi sağlayıcısı atayabilirsiniz. Paket düzeyindeki ayar, ilgili paket için genel kimlik bilgisi yapılandırmasını geçersiz kılar ve diğer paketleri etkilemez.
Çalışma mantığı
Belirli bir paket için bir kimlik bilgisi sağlayıcısı atamak üzere fs.oss.bucket.<bucket-name>.credentials.provider özelliğini kullanın. <bucket-name> ifadesini gerçek paket adıyla değiştirin.
Bu özellik, virgülle ayrılmış sağlayıcı sınıf adı listesini kabul eder. Sistem sağlayıcıları sırayla dener ve geçerli kimlik bilgilerini döndüren ilk sağlayıcıyı kullanır.
<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>
Önceki kodda XXX bir OSS veya OSS-HDFS paketinin adını belirtir.
Kimlik bilgisi sağlayıcısını seçme
Kullanım durumunuza göre bir sağlayıcı seçin:
| Sağlayıcı | Tam sınıf adı | Ne zaman kullanılır |
|---|---|---|
| TemporaryCredentialsProvider | com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider |
Süresi sınırlı bir AccessKey çifti ve güvenlik belirteci ile OSS veya OSS-HDFS'e erişirken |
| SimpleCredentialsProvider | com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider |
Kalıcı olarak geçerli bir AccessKey çifti ile OSS veya OSS-HDFS'e erişirken |
| EnvironmentVariableCredentialsProvider | com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider |
AccessKey çiftini ortam değişkenlerinden okurken |
| CommonCredentialsProvider | com.aliyun.jindodata.oss.auth.CommonCredentialsProvider |
Genel amaçlı senaryolarda |
TemporaryCredentialsProvider
Süresi sınırlı bir AccessKey çifti ve güvenlik belirteci kullanarak OSS veya OSS-HDFS'e erişirken bu sağlayıcıyı kullanın.
Sağlayıcıyı yapılandırma
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider</value>
</property>
</configuration>
Kimlik bilgilerini yapılandırma
<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
Kalıcı olarak geçerli bir AccessKey çifti kullanarak OSS veya OSS-HDFS'e erişirken bu sağlayıcıyı kullanın.
Sağlayıcıyı yapılandırma
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider</value>
</property>
</configuration>
Kimlik bilgilerini yapılandırma
<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
AccessKey çifti ortam değişkenleri aracılığıyla enjekte edildiğinde bu sağlayıcıyı kullanın.
Sağlayıcıyı yapılandırma
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider</value>
</property>
</configuration>
Ortam değişkenlerini yapılandırma
Ortam değişkeni dosyanızda aşağıdaki değişkenleri ayarlayın:
| Ortam değişkeni | Açıklama |
|---|---|
OSS_ACCESS_KEY_ID |
OSS veya OSS-HDFS'e erişmek için kullanılan AccessKey ID |
OSS_ACCESS_KEY_SECRET |
OSS veya OSS-HDFS'e erişmek için kullanılan AccessKey gizli anahtarı |
OSS_SECURITY_TOKEN |
OSS veya OSS-HDFS'e erişmek için kullanılan güvenlik belirteci. Yalnızca süresi sınırlı bir güvenlik belirteci kullanılırken gereklidir. |
CommonCredentialsProvider
Kimlik bilgilerinin birden fazla yapılandırma arasında paylaşıldığı genel amaçlı senaryolar için bu sağlayıcıyı kullanın.
Sağlayıcıyı yapılandırma
<configuration>
<property>
<name>fs.oss.bucket.XXX.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value>
</property>
</configuration>
Kimlik bilgilerini yapılandırma
<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>