Topik ini menjelaskan cara mengonfigurasi penyedia kredensial OSS/OSS-HDFS.
Konfigurasi dasar
Anda dapat mengonfigurasi ID AccessKey, Rahasia AccessKey, dan Titik akhir untuk OSS atau OSS-HDFS terlebih dahulu dalam file core-site.xml Hadoop. Untuk mengonfigurasi parameter tersebut pada kluster EMR, ikuti langkah-langkah berikut:
Pada halaman konfigurasi layanan Hadoop-Common, klik tab core-site.xml.
Klik Add Configuration Item, lalu tambahkan item konfigurasi fs.oss.accessKeyId dan fs.oss.accessKeySecret.
Klik OK, masukkan alasan eksekusi, lalu klik OK.
Klik Save di bagian bawah.
Menyimpan AccessKey dengan penyedia kredensial Hadoop
Pada metode konfigurasi dasar, fs.oss.accessKeyId dan fs.oss.accessKeySecret disimpan dalam teks biasa di core-site.xml. Anda dapat menyimpannya sebagai pasangan terenkripsi dalam file Penyedia Kredensial Hadoop.
Simpan ID AccessKey, Rahasia AccessKey, dan token keamanan dalam file kredensial menggunakan perintah Hadoop berikut:
hadoop credential <subcommand> [options]Selain izin file, Anda juga dapat menentukan kata sandi untuk mengenkripsi kredensial. Jika tidak menentukan kata sandi, sistem akan menggunakan string default untuk enkripsi.
hadoop credential create fs.oss.accessKeyId -value AAA -provider jceks://file/root/oss.jceks
hadoop credential create fs.oss.accessKeySecret -value BBB -provider jceks://file/root/oss.jceks
hadoop credential create fs.oss.securityToken -value CCC -provider jceks://file/root/oss.jceksSetelah menghasilkan file kredensial, konfigurasikan properti berikut untuk menentukan jenis dan lokasi penyedia:
<configuration>
<property>
<name>fs.oss.security.credential.provider.path</name>
<value>jceks://file/root/oss.jceks</value>
<description>Menentukan file kredensial yang menyimpan kunci akses Anda. Misalnya, jceks://file/${user.home}/oss.jceks mengarah ke file oss.jceks di direktori home Anda.</description>
</property>
</configuration>Menggunakan penyedia kredensial JindoSDK
Secara default, JindoSDK dikonfigurasi dengan SimpleCredentialsProvider, EnvironmentVariableCredentialsProvider, dan CommonCredentialsProvider. Sistem memeriksa setiap penyedia secara berurutan hingga mendapatkan kredensial yang valid.
<configuration>
<property>
<name>fs.oss.credentials.provider</name>
<value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider,com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider,com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value>
<description>Menentukan com.aliyun.jindodata.oss.auth.JindoCredentialsProvider. Untuk menggunakan beberapa penyedia, pisahkan nama kelas dengan koma (,). Sistem mencoba mengambil kredensial dari setiap penyedia secara berurutan. Untuk informasi lebih lanjut tentang penyedia, lihat Jenis penyedia kredensial.</description>
</property>
</configuration>Pilih penyedia kredensial dari opsi berikut:
Jenis penyedia kredensial | Deskripsi |
TemporaryCredentialsProvider | Gunakan penyedia ini untuk mengakses OSS atau OSS-HDFS dengan ID AccessKey, Rahasia AccessKey, dan token keamanan yang berlaku sementara. |
SimpleCredentialsProvider | Gunakan penyedia ini untuk mengakses OSS atau OSS-HDFS dengan ID AccessKey dan Rahasia AccessKey jangka panjang. |
EnvironmentVariableCredentialsProvider | Mengambil kredensial dari variabel lingkungan. |
CommonCredentialsProvider | Penyedia yang mengambil kredensial dari parameter konfigurasi Jindo umum. |
CustomCredentialsProvider | Terintegrasi dengan layanan bebas password kustom. |
TemporaryCredentialsProvider
Konfigurasikan jenis penyedia
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider</value> </property> </configuration>Konfigurasikan kredensial OSS atau OSS-HDFS
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>YOUR_ACCESS_KEY_ID</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>YOUR_ACCESS_KEY_SECRET</value> </property> <property> <name>fs.oss.securityToken</name> <value>YOUR_SECURITY_TOKEN</value> </property> </configuration>
SimpleCredentialsProvider
Konfigurasikan jenis penyedia
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider</value> </property> </configuration>Konfigurasikan kredensial OSS atau OSS-HDFS
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>YOUR_ACCESS_KEY_ID</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>YOUR_ACCESS_KEY_SECRET</value> </property> </configuration>
EnvironmentVariableCredentialsProvider
Konfigurasikan jenis penyedia
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider</value> </property> </configuration>Konfigurasikan kredensial OSS atau OSS-HDFS
Tetapkan variabel lingkungan berikut:
Parameter
Deskripsi
OSS_ACCESS_KEY_ID
ID AccessKey untuk OSS atau OSS-HDFS.
OSS_ACCESS_KEY_SECRET
Rahasia AccessKey untuk OSS atau OSS-HDFS.
OSS_SECURITY_TOKEN
Token keamanan untuk OSS atau OSS-HDFS.
CatatanDiperlukan hanya saat menggunakan token yang dibatasi waktu.
CommonCredentialsProvider
Konfigurasikan jenis penyedia
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value> </property> </configuration>Konfigurasikan kredensial OSS atau OSS-HDFS
<configuration> <property> <name>jindo.common.accessKeyId</name> <value>YOUR_ACCESS_KEY_ID</value> </property> <property> <name>jindo.common.accessKeySecret</name> <value>YOUR_ACCESS_KEY_SECRET</value> </property> <property> <name>jindo.common.securityToken</name> <value>YOUR_SECURITY_TOKEN. (Diperlukan untuk token berlaku sementara)</value> </property> </configuration>
CustomCredentialsProvider
Konfigurasikan jenis penyedia
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.CustomCredentialsProvider</value> </property> </configuration>Konfigurasikan URL layanan bebas kata sandi
<configuration> <property> <name>aliyun.oss.provider.url</name> <value>The URL of the password-free service.</value> </property> </configuration>aliyun.oss.provider.url mendukung protokol http(s) dan Secrets:
Protokol HTTP(S)
Format URL untuk layanan bebas kata sandi HTTP(S) adalah
http://localhost:1234/sts. Protokol HTTP bebas kata sandi memerlukan respons dalam format JSON.{ "AccessKeyId" : "XXXXXXXXX", "AccessKeySecret" : "XXXXXXXXX", "Expiration" : "2020-11-01T05:20:01Z", "SecurityToken" : "XXXXXXXXX", "LastUpdated" : "2020-10-31T23:20:01Z", "Code" : "Success" }Protokol Secrets
Format alamat untuk layanan bebas kata sandi Secrets adalah
secrets:///local_path_prefix, yang umum digunakan dalam skenario Kubernetes. Di sini, local_path_prefix adalah awalan path:Jika local_path_prefix adalah secrets:///secret/JindoOss, file seperti /secret/JindoOssAccessKeyId, /secret/JindoOssAccessKeySecret, dan /secret/JindoOssSecurityToken akan dicari di node.
Jika local_path_prefix adalah secrets:///secret/JindoOss/, file seperti /secret/JindoOss/AccessKeyId, /secret/JindoOss/AccessKeySecret, dan /secret/JindoOss/SecurityToken akan dicari di node.