Este tema explica cómo configurar un proveedor de credenciales de OSS/OSS-HDFS.
Configuración básica
Puede preconfigurar el AccessKey ID, el AccessKey secret y el endpoint para OSS u OSS-HDFS en el archivo core-site.xml de Hadoop. Para configurar estos parámetros en un clúster de EMR, siga estos pasos:
En la página de configuración del servicio Hadoop-Common, haga clic en la pestaña core-site.xml.
Haga clic en Add Configuration Item y agregue los elementos de configuración fs.oss.accessKeyId y fs.oss.accessKeySecret.
Haga clic en OK, introduzca el motivo de la ejecución y haga clic en OK.
Haga clic en Save a continuación.
Almacenar AccessKeys con proveedores de credenciales de Hadoop
En el método de configuración básica, fs.oss.accessKeyId y fs.oss.accessKeySecret se almacenan en texto sin formato en core-site.xml. Puede almacenarlos como un par cifrado en un archivo de proveedores de credenciales de Hadoop.
Almacene el AccessKey ID, el AccessKey secret y el token de seguridad en un archivo de credenciales mediante el siguiente comando de Hadoop:
hadoop credential <subcommand> [options]
Además de los permisos de archivo, también puede especificar una contraseña para cifrar las credenciales. Si omite la contraseña, el sistema utiliza una cadena predeterminada para el cifrado.
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.jceks
Después de generar el archivo de credenciales, configure la siguiente propiedad para especificar el tipo y la ubicación del proveedor:
<configuration>
<property>
<name>fs.oss.security.credential.provider.path</name>
<value>jceks://file/root/oss.jceks</value>
<description>Specifies the credential file that stores your access keys. For example, jceks://file/${user.home}/oss.jceks points to the oss.jceks file in your home directory.</description>
</property>
</configuration>
Usar proveedores de credenciales de JindoSDK
De forma predeterminada, JindoSDK se configura con SimpleCredentialsProvider, EnvironmentVariableCredentialsProvider y CommonCredentialsProvider. El sistema consulta cada proveedor secuencialmente hasta que recupera credenciales válidas.
<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>Specifies the com.aliyun.jindodata.oss.auth.JindoCredentialsProvider. To use multiple providers, separate the class names with a comma (,). The system attempts to retrieve credentials from each provider in order. For more information about the providers, see Credential provider types.</description>
</property>
</configuration>
Seleccione un proveedor de credenciales entre las siguientes opciones:
|
Tipo de proveedor de credenciales |
Descripción |
|
TemporaryCredentialsProvider |
Utilice este proveedor para acceder a OSS u OSS-HDFS con un AccessKey ID, un AccessKey secret y un token de seguridad con límite de tiempo. |
|
SimpleCredentialsProvider |
Utilice este proveedor para acceder a OSS u OSS-HDFS con un AccessKey ID y un AccessKey secret de larga duración. |
|
EnvironmentVariableCredentialsProvider |
Recupera credenciales de variables de entorno. |
|
CommonCredentialsProvider |
Proveedor que recupera credenciales de parámetros de configuración comunes de Jindo. |
|
CustomCredentialsProvider |
Se integra con un servicio personalizado sin contraseña. |
TemporaryCredentialsProvider
-
Configure el tipo de proveedor
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.TemporaryCredentialsProvider</value> </property> </configuration> -
Configure las credenciales de OSS u 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
-
Configure el tipo de proveedor
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider</value> </property> </configuration> -
Configure las credenciales de OSS u 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
-
Configure el tipo de proveedor
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.EnvironmentVariableCredentialsProvider</value> </property> </configuration> -
Configure las credenciales de OSS u OSS-HDFS
Establezca las siguientes variables de entorno:
Parámetro
Descripción
OSS_ACCESS_KEY_ID
El AccessKey ID para OSS u OSS-HDFS.
OSS_ACCESS_KEY_SECRET
El AccessKey secret para OSS u OSS-HDFS.
OSS_SECURITY_TOKEN
El token de seguridad para OSS u OSS-HDFS.
NotaObligatorio solo cuando se usa un token con límite de tiempo.
CommonCredentialsProvider
-
Configure el tipo de proveedor
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.CommonCredentialsProvider</value> </property> </configuration> -
Configure las credenciales de OSS u 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. (Required for time-bound tokens)</value> </property> </configuration>
CustomCredentialsProvider
-
Configure el tipo de proveedor
<configuration> <property> <name>fs.oss.credentials.provider</name> <value>com.aliyun.jindodata.oss.auth.CustomCredentialsProvider</value> </property> </configuration> -
Configure la URL del servicio sin contraseña
<configuration> <property> <name>aliyun.oss.provider.url</name> <value>The URL of the password-free service.</value> </property> </configuration>aliyun.oss.provider.url admite los protocolos http(s) y Secrets:
-
Protocolo HTTP(S)
El formato de URL para el servicio sin contraseña HTTP(S) es
http://localhost:1234/sts. El protocolo sin contraseña HTTP requiere que la respuesta esté en formato JSON.{ "AccessKeyId" : "XXXXXXXXX", "AccessKeySecret" : "XXXXXXXXX", "Expiration" : "2020-11-01T05:20:01Z", "SecurityToken" : "XXXXXXXXX", "LastUpdated" : "2020-10-31T23:20:01Z", "Code" : "Success" } -
Protocolo Secrets
El formato de dirección para el servicio sin contraseña Secrets es
secrets:///local_path_prefix, que se usa comúnmente en escenarios de Kubernetes. Aquí, local_path_prefix es el prefijo de ruta:Si local_path_prefix es secrets:///secret/JindoOss, se buscan archivos como /secret/JindoOssAccessKeyId, /secret/JindoOssAccessKeySecret y /secret/JindoOssSecurityToken en el nodo.
Si local_path_prefix es secrets:///secret/JindoOss/, se buscarán archivos como /secret/JindoOss/AccessKeyId, /secret/JindoOss/AccessKeySecret y /secret/JindoOss/SecurityToken en el nodo.
-