Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Proveedor de credenciales de proceso
nota
Para obtener ayuda para comprender el diseño de las páginas de configuración o para interpretar la tabla Support by AWS SDKs and tools que aparece a continuación, consulteDescripción de las páginas de configuración de esta guía.
SDKs proporcionan una forma de ampliar la cadena de proveedores de credenciales para casos de uso personalizados. Este proveedor se puede utilizar para proporcionar implementaciones personalizadas, como recuperar credenciales de un almacén de credenciales local o integrarlas con su proveedor de identificación local.
Por ejemplo, IAM Roles Anywhere utiliza credential_process
para obtener credenciales temporales en nombre de su aplicación. Para configurar credential_process
para este uso, consulte Uso de funciones de IAM en cualquier lugar para AWS SDKs autenticar y utilizar herramientas.
nota
A continuación se describe un método para obtener credenciales de un proceso externo y se puede utilizar si se ejecuta software fuera de AWSél. Si se basa en un recurso AWS informático, utilice otros proveedores de credenciales. Si utilizas esta opción, asegúrate de que el archivo de configuración esté lo más bloqueado posible siguiendo las prácticas recomendadas de seguridad para tu sistema operativo. Confirme que su herramienta de credenciales personalizada no escriba información secreta en ellaStdErr
, ya que AWS CLI puede capturar SDKs y registrar dicha información, lo que podría exponerla a usuarios no autorizados.
Configure esta funcionalidad mediante lo siguiente:
credential_process
- configuración de AWSconfig
archivos compartidos-
Especifica un comando externo que el SDK o la herramienta ejecuta para generar o recuperar las credenciales de autenticación que se van a utilizar. La configuración especifica el nombre del programa o comando que invocará el SDK. Cuando el SDK invoca el proceso, espera a que el proceso escriba los datos de JSON a
stdout
. El proveedor personalizado debe devolver la información en un formato específico. Esa información contiene las credenciales que el SDK o la herramienta pueden usar para autenticarlo.
nota
El proveedor de credenciales del proceso forma parte del Comprenda la cadena de proveedores de credenciales. Sin embargo, el proveedor de credenciales del proceso solo se comprueba después de varios otros proveedores de esta serie. Por lo tanto, si desea que su programa utilice las credenciales de este proveedor, debe eliminar otros proveedores de credenciales válidos de la configuración o utilizar un perfil diferente. Como alternativa, en lugar de confiar en la cadena de proveedores de credenciales para descubrir automáticamente qué proveedor devuelve credenciales válidas, especifique el uso del proveedor de credenciales de proceso en el código. Puede especificar las fuentes de credenciales directamente al crear clientes de servicio.
Especificar la ruta al programa de credenciales
El valor de la configuración es una cadena que contiene una ruta a un programa que el SDK o la herramienta de desarrollo ejecutan en su nombre:
-
La ruta y el nombre del archivo solo pueden constar de los siguientes caracteres: A-Z, a-z, 0-9, guion ( - ), guion bajo ( _ ), punto ( . ), barra oblicua ( / ), barra diagonal inversa ( \ ) y espacio.
-
Si la ruta de acceso o el nombre del archivo contienen un espacio, rodee la ruta completa y el nombre del archivo con comillas dobles (" ").
-
Si un nombre de parámetro o un valor de parámetro contienen un espacio, rodee ese elemento con comillas dobles (" "). Incluya solo el nombre o el valor, no el par.
-
No incluya ninguna variable de entorno en las cadenas. Por ejemplo, no puede incluir
$HOME
ni%USERPROFILE%
. -
No especifique la carpeta de inicio como
~
. * En la solicitud debe especificar la ruta completa o el nombre del archivo base. Si hay un nombre de archivo base, el sistema intentará encontrar el programa en las carpetas especificadas por la variable del entornoPATH
. La ruta varía según el sistema operativo:El siguiente ejemplo muestra la configuración de credential_process en el archivo
config
compartido en Linux/macOS.credential_process =
"/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
El siguiente ejemplo muestra la configuración de credential_process en el archivo
config
compartido en Windows.credential_process =
"C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
-
Se puede especificar dentro de un perfil específico:
[profile
cred_process
] credential_process =/Users/username/process.sh
region =us-east-1
Salida válida del programa de credenciales
El SDK ejecuta el comando tal y como se especifica en el perfil y luego lee datos de la secuencia de salida estándar. El comando que especifique, ya se trate de una secuencia de comandos o de un programa binario, debe generar una salida JSON en STDOUT
que se ajuste a la siguiente sintaxis.
{ "Version": 1, "AccessKeyId": "
an AWS access key
", "SecretAccessKey": "your AWS secret access key
", "SessionToken": "the AWS session token for temporary credentials
", "Expiration": "RFC3339 timestamp for when the credentials expire
" }
nota
En la fecha de publicación del presente documento, la clave Version
debe establecerse en 1
. Puede aumentar con el paso del tiempo a medida que la estructura evolucione.
La Expiration
clave es una marca de tiempo RFC3339 formateada. Si la clave Expiration
no está presente en la salida de la herramienta, el SDK da por hecho que las credenciales son credenciales a largo plazo que no se actualizan. De otro modo, las credenciales se consideran credenciales temporales y se actualizan automáticamente volviendo a ejecutar el comando credential_process
antes de que caduquen las credenciales.
nota
El SDK no almacena en caché credenciales de procesos externos de la forma que lo hace con las credenciales de asunción de rol. Si se requiere el almacenamiento en caché, debe implementarlo en el proceso externo.
El proceso externo puede devolver un código de devolución distinto de cero para indicar que se ha producido un error al intentar recuperar las credenciales.
Support by AWS SDKs and tools
Las siguientes SDKs son compatibles con las funciones y configuraciones descritas en este tema. Se anotan todas las excepciones parciales. Todos los ajustes de propiedades del sistema JVM son compatibles con AWS SDK para Java y AWS SDK para Kotlin únicamente.
SDK | Compatible | Notas o más información |
---|---|---|
AWS CLI v2 | Sí | |
SDK para C++ | Sí | |
SDK para Go V2 (1.x) |
Sí | |
SDK para Go 1.x (V1) | Sí | Para usar la configuración de archivos compartidos config , debe activar la carga desde el archivo de configuración; consulte Sesiones. |
SDK para Java 2.x | Sí | |
SDK para Java 1.x | Sí | |
SDK para 3.x JavaScript | Sí | |
SDK para 2.x JavaScript | Sí | |
SDK para Kotlin | Sí | |
SDK para .NET 4.x | Sí | |
SDK para .NET 3.x | Sí | |
SDK para PHP 3.x | Sí | |
SDK para Python (Boto3) |
Sí | |
SDK para Ruby 3.x | Sí | |
SDK para Rust | Sí | |
SDK para Swift | Sí | |
Herramientas para PowerShell | Sí |