Obtención de credenciales con un proceso externo en el AWS CLI - AWS Command Line Interface

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 ISO8601. Si la Expiration 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.