Esta documentación es AWS CLI únicamente para la versión 1 de la versión. Para ver la documentación relacionada con la versión 2 de AWS CLI, consulte la Guía del usuario de la versión 2.
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.
Obtención de credenciales con un proceso externo en el AWS CLI
aviso
En el siguiente tema, se explica cómo se obtienen credenciales desde un proceso externo. Esto puede suponer un riesgo para la seguridad si el comando que genera las credenciales llega a estar accesible para usuarios o procesos no aprobados. Le recomendamos que utilice las alternativas seguras y compatibles que ofrece AWS CLI y AWS para reducir el riesgo de comprometer sus credenciales. Asegúrese de proteger el archivo config
y todos los archivos auxiliares y herramientas para evitar su divulgación.
Asegúrese de que su herramienta de credenciales personalizada no escriba ninguna información secreta en ella, StdErr
ya que AWS CLI puede capturarla y registrarla, lo que podría exponerla a usuarios no autorizados. SDKs
Si dispone de un método para generar o buscar credenciales que no sea compatible directamente con el AWS CLI, puede configurarlo AWS CLI para que lo utilice configurando los credential_process
parámetros del config
archivo.
Por ejemplo, puede incluir una entrada similar a la siguiente en el archivo config
:
[profile developer] credential_process = /opt/bin/awscreds-custom --username helen
Sintaxis
Para crear esta cadena de forma que sea compatible con cualquier sistema operativo, siga estas reglas:
-
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 (" "). La ruta y el nombre de archivo solo pueden constar de los caracteres: A-Z a-z 0-9 - _ . espacio
-
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
~
. Debe especificar la ruta completa.
Ejemplo para Windows
credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
Ejemplo para Linux o macOS
credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
Salida prevista del programa Credentials
AWS CLI Ejecuta el comando tal como se especifica en el perfil y, a continuación, lee los datosSTDOUT
. El comando que especifique debe generar un JSON resultado STDOUT
que coincida con 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": "ISO8601 timestamp 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 con formato ISO8601Expiration
clave no está presente en la salida de la herramienta, se CLI supone que las credenciales son credenciales de larga duración 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.
nota
AWS CLI No almacena en caché las credenciales de los procesos externos de la misma forma en que lo hace con las credenciales de los roles. 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.